Virtuelle private Netze (VPNs) sind ein beliebtes Mittel, um die Kommunikation zu und von geschützten Netzen zu sichern. Standardmäßig sind die meisten internen Unternehmensnetze mit einer Firewall gesichert, die jeglichen eingehenden und manchmal auch ausgehenden Datenverkehr über öffentliche Internetverbindungen verhindert. Ein VPN-Tunnel bietet eine bequeme Möglichkeit, die Kommunikation mit der Außenwelt dennoch zu ermöglichen. Der gesamte Verkehr, der durch ein VPN läuft, wird zwischen dem Endgerät und dem Ursprung verschlüsselt und läuft durch sogenannte Tunnel. Codesphere bietet eine bequeme Möglichkeit, eine solche VPN-Verbindung von Ihren Workspaces zu einem der internen Netzwerke Ihres Unternehmens zu konfigurieren. Zurzeit werden die Verschlüsselungsstandards der Palo Alto Network Firewall unterstützt. Sollten Sie weitere Standards benötigen, sprechen Sie uns bitte an.
Dadurch können Ihre Anwendungen z. B. mit eingeschränkten lokalen Datenbanken, internen APIs und mehr arbeiten.
Arbeiten mit privaten Netzwerken in Codesphere
In Codesphere werden VPN-Verbindungen auf Teamebene definiert und können dann mit einer beliebigen Anzahl von Workspaces in diesem Team verbunden werden. Um eine solche Verbindung einzurichten, gehen Sie zu VPNs in der Hauptnavigation (verfügbar für Teamadministratoren).
Klicken Sie auf den Button VPN erstellen, um das Konfigurationsmodal zu öffnen. Sie benötigen die folgenden Elemente, um eine Verbindung zu öffnen:
- Ein eindeutiger Name für diese Verbindung
- Pre-shared Key (Ihr Netzwerkteam kann diese auf Firewall-Ebene konfigurieren)
- Lifetime Values für Verbindungsversuche
- Von Ihrer Firewall verwendete Cipher Suites
- Ziel-IP-Adresse und privates Teilnetz (das auf die interne Ressource verweist, die Ihre Anwendung benötigt)
Sobald die Verbindung erstellt ist, wird sie in der Liste der verfügbaren Verbindungen angezeigt. Sie können nun jede VPN-Konfiguration über das Dropdown-Menü mit einer beliebigen Anzahl von Workspaces verbinden. Beachten Sie, dass eine Verbindung zwar von mehreren Workspaces genutzt werden kann, jeder Workspace aber nur mit einem einzigen VPN verbunden werden kann. Wenn Sie die VPN-Verbindung eines Workspaces ändern möchten, müssen Sie zunächst die vorherige Verbindung trennen. Bitte beachten Sie auch, dass eine Änderung der VPN-Einstellungen einen Neustart des VPN-Dienstes aller verbundenen Workspaces zur Folge hat.
Arbeiten mit VPN-Verbindungen in Preview Deployments
Sie können Preview Deployments auch mit bestehenden VPN-Verbindungen über unsere CI Integrationen für GitHub, Bitbucket und GitLab verknüpfen, indem Sie den Namen der VPN-Verbindung in der Deploy yaml referenzieren. So können Sie bequem mit privaten Netzwerken für Ihre Entwicklungsumgebungen arbeiten.
Bitbucket-Syntax
image: atlassian/default-image:3
pipelines:
pull-requests:
'**':
- step:
deployment: Test
script:
- pipe: docker://ghcr.io/codesphere-cloud/codesphere-monorepo/integrations/bitbucket-ci:latest
variables:
ACCESS_TOKEN: $ACCESS_TOKEN
EMAIL: $CODESPHERE_EMAIL
PASSWORD: $CODESPHERE_PASSWORD
TEAM: My Team
PLAN: Micro
VPN_CONFIG: vpnConfigName
ENV: |
testing=abc
GitHub-Syntax
on:
workflow_dispatch:
# open, reopen and synchronize will deploy a workspace for the current commit.
# If a workspce is already deployed, that workspace is updated to the newest version.
#
# closed: Workspace will be deleted
pull_request:
types:
- closed
- opened
- reopened
- synchronize
permissions:
contents: read
pull-requests: read
deployments: write
jobs:
deploy:
# prevent multiple workspaces to be created for the same branch
concurrency: codesphere
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Deploy
uses: codesphere-cloud/gh-action-deploy@main
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
with:
email: ${{ secrets.CODESPHERE_EMAIL }}
password: ${{ secrets.CODESPHERE_PASSWORD }}
team: 'My Team' # Change this to your team
plan: 'Boost' # Select the plan for your app (Micro, Boost or Pro)
onDemand: 'true' # Set this to true for on demand
vpnConfig: 'vpnConfigName'
env: |
MY_ENV=test
MY_SECRET=${{ secrets.MY_SECRET }}
Gitlab-Syntax
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
stages:
- deploy
codesphere-deploy:
image: ghcr.io/codesphere-cloud/codesphere-monorepo/integrations/gitlab-ci:latest
stage: deploy
script:
- /app/server
variables:
ACCESS_TOKEN: $CI_ACCESS_TOKEN
EMAIL: $CODESPHERE_EMAIL
PASSWORD: $CODESPHERE_PASSWORD
TEAM: 'Demo'
PLAN: 'Micro'
ON_DEMAND: 'false'
VPN_CONFIG: 'vpnConfigName'
environment:
name: 'Codesphere Preview MR_$CI_MERGE_REQUEST_IID'
on_stop: codesphere-teardown
codesphere-teardown:
when: manual
image: ghcr.io/codesphere-cloud/codesphere-monorepo/integrations/gitlab-ci:latest
stage: deploy
script:
- /app/server
variables:
ACCESS_TOKEN: $CI_ACCESS_TOKEN
EMAIL: $CODESPHERE_EMAIL
PASSWORD: $CODESPHERE_PASSWORD
TEAM: 'Demo'
environment:
name: 'Codesphere Preview MR_$CI_MERGE_REQUEST_IID'
action: stop