Freigegebene VPC mit Deployment Manager erstellen (Anleitung)

In dieser Anleitung wird gezeigt, wie Sie mit dem Deployment Manager eine freigegebene VPC einrichten. Damit können Sie für den Zugriff auf GCP-Ressourcen in der gesamten Organisation strenge Regeln der Netzwerksicherheit implementieren.

Einführung

In großen Organisationen kann es notwendig sein, verschiedene Abteilungen oder Anwendungen unterschiedlichen Projekten zuzuordnen, um die Kostenrechnung, die Zugriffssteuerung und anderes zu trennen. Mit einer freigegebenen VPC können Administratoren in Organisationen mehreren Projekten die Berechtigung zur Verwendung eines einzigen, gemeinsam genutzten VPC-Netzwerks und der entsprechenden Netzwerkressourcen gewähren.

Mit einer freigegebenen VPC haben Sie als Organisationsadministrator die Möglichkeit, Netzwerk- und Sicherheitsadministratoren Ihrer Organisation für ein VPC-Netzwerk zu autorisieren. Sie können ihnen die Berechtigung zur Verwaltung eines VPC-Netzwerks von RFC1918-IP-Bereichen und der zugehörigen Funktionen wie VPNs oder Firewallregeln gewähren, die die jeweils zugeordneten Projekte nutzen dürfen. Administratoren in zugeordneten Projekten können in den Bereichen des freigegebenen VPC-Netzwerks VM-Instanzen erstellen. Auf diese Weise können Sie in einer Organisation einheitliche Richtlinien durchsetzen.

Da eine freigegebene VPC oft in großen Organisationen oder solchen mit strengen Sicherheitsregeln verwendet wird, ist es wichtig, die Einrichtung der freigegebenen VPC leicht reproduzieren zu können. Hierfür können Sie den Deployment Manager, ein IaC-Tool (Infrastructure as Code), verwenden.

Ausführungshinweise für diese Anleitung

In dieser Anleitung wird davon ausgegangen, dass Sie mit den Organisationsressourcen in der Google Cloud Platform (GCP) vertraut und Administrator einer Organisationsressource sind. Kenntnisse über VPCs und den Deployment Manager sind für die Umsetzung dieser Anleitung ebenfalls hilfreich. In dieser Anleitung bezieht sich das Wort Bereitstellung auf die Bereitstellung mit dem Deployment Manager.

Zur Vereinfachung wird in dieser Anleitung nur ein IAM-Nutzer verwendet: Ihre bestehende Identität als Administrator einer Organisationsressource. Wenn Sie noch keine Organisationsressource haben, finden Sie im Abschnitt Vorbereitung Informationen zur Erstellung. An der Einrichtung des hier beschriebenen Szenarios sind in einem Unternehmen in der Regel drei Personen beteiligt: ein Ressourcenadministrator der Organisation, ein Netzwerkadministrator, der die freigegebene VPC verwaltet, und ein Nutzer der freigegebenen VPC.

Bereitstellungsarchitektur

Das folgende Diagramm zeigt die Architektur dieser Lösung:

Architektur einer freigegebenen VPC

In dieser Anleitung erstellen Sie drei der im Diagramm gezeigten Projekte:

  • Das Homeprojekt für den Deployment Manager wird von einem Ressourcenadministrator der Organisation verwaltet. In dieser Anleitung wird davon ausgegangen, dass Sie das sind. Dieses Projekt wird zum Erstellen anderer Projekte und zur Einrichtung der freigegebenen VPC verwendet.
  • Das Hostprojekt wird von Netzwerkadministratoren verwaltet und hostet die freigegebene VPC. In diesem Projekt wird die gesamte Netzwerkkonfiguration vorgenommen.
  • Das Dienstprojekt wird von den Nutzern der freigegebenen VPC verwaltet. In diesem Projekt können aus dem Hostprojekt Ressourcen in der freigegebenen VPC erstellt werden.

Ziele

  • Das Homeprojekt im Deployment Manager erstellen und konfigurieren
  • Mit dem Deployment Manager das Hostprojekt und das Dienstprojekt erstellen
  • Die Funktion für die freigegebene VPC konfigurieren
  • Im Hostprojekt die VPC und einige Subnetzwerke konfigurieren
  • Überprüfen, ob die VPC im Dienstprojekt genutzt werden kann

Kosten

In dieser Anleitung werden unter anderem diese kostenpflichtigen GCP-Komponenten verwendet:

  • Compute Engine

Mit dem Preisrechner können Sie eine Kostenschätzung für die voraussichtliche Nutzung erstellen.

Vorbereitung

Diese Anleitung bezieht sich auf den Kontext einer GCP-Organisation. Sollte diese nicht verfügbar sein, müssen Sie sie erstellen. Details hierzu finden Sie unter Organisationen erstellen und verwalten.

Weiter unten in dieser Anleitung erstellen Sie zwei GCP-Projekte durch Bereitstellung (mit dem Deployment Manager). Diese Bereitstellung erfolgt in einem dedizierten Projekt mit spezifischer Konfiguration. Nachstehend werden Schritt für Schritt die Ersteinrichtung dieses Projekts und dessen Konfiguration beschrieben.

Homeprojekt für Deployment Manager erstellen

  1. Öffnen Sie Cloud Shell.

    Cloud Shell öffnen

  2. Erstellen Sie ein Rechnungskonto, sofern Sie noch keines haben. Details hierzu finden Sie unter Rechnungskonto erstellen.

  3. Erstellen Sie in Ihrer Organisation ein neues Projekt und ordnen Sie diesem ein Rechnungskonto zu. Sie müssen dem Projekt eine eindeutige ID zuweisen. Verwenden Sie zum Beispiel einen Namen wie [YOUR_NAME]-[DATE]-dm-home.

    gcloud

    1. Öffnen Sie die Liste der Organisationen und notieren Sie die Organisations-ID:

      gcloud organizations list
    2. Stellen Sie für Werte, die Sie in dieser Anleitung wiederholt verwenden, Umgebungsvariablen ein. Ersetzen Sie [ORG_ID] durch den Wert, den Sie im vorangegangenen Schritt kopiert haben, und [DM_HOME_PROJECT_ID] durch die ID des Homeprojekts.

      export ORG_ID=[ORG_ID]
      export DM_HOME_PROJECT=[DM_HOME_PROJECT_ID]
    3. Erstellen Sie das neue Projekt:

      gcloud projects create $DM_HOME_PROJECT \
          --organization=$ORG_ID
    4. Rufen Sie die Liste der Abrechnungs-IDs auf und notieren Sie die Abrechnungs-ID.

      gcloud beta billing accounts list
    5. Wenn Sie Zugriff auf mehrere Rechnungskonten haben, überprüfen Sie Ihre internen Richtlinien für jedes dieser Konten und wählen Sie das entsprechende Konto aus.

    6. Definieren Sie für die ID des Rechnungskontos, die Sie im vorstehenden Schritt abgerufen haben, eine Umgebungsvariable. Ersetzen Sie [BILLING_ACCOUNT_ID] durch die Abrechnungs-ID, die Sie im vorstehenden Schritt abgerufen haben.

      export BILLING_ACCOUNT_ID=[BILLING_ACCOUNT_ID]
    7. Aktivieren Sie die Abrechnung für das neue Projekt:

      gcloud beta billing projects link $DM_HOME_PROJECT \
          --billing-account=$BILLING_ACCOUNT_ID

    Console

    1. Öffnen Sie in der GCP Console die Seite Ressourcen verwalten.

      [Zur Seite "Ressourcen verwalten"] (https://console.cloud.google.com/cloud-resource-manager) {: target = "console" class = "button button primary" track-type = "tutorial" -name = "consoleLink" track-metadata-position = "body"}

    2. Wählen Sie aus der Drop-down-Liste Organisation oben links Ihre Organisation aus.

    3. Klicken Sie auf Projekt erstellen und geben Sie die ID ein, die Sie als Projektname gewählt haben.

    4. Wenn Sie Zugriff auf mehrere Rechnungskonten haben, wählen Sie im Bereich Rechnungskonto das Konto aus, das Sie für die Ausführung dieser Anleitung verwenden möchten (prüfen Sie Ihre internen Richtlinien für jedes dieser Konten).

    5. Prüfen Sie im Bereich Organisation, ob die Organisation ausgewählt ist.

    6. Klicken Sie auf Erstellen.

  4. Aktivieren Sie die APIs, die Sie für die weitere Ausführung dieser Anleitung benötigen.

    gcloud

    gcloud services enable cloudbilling.googleapis.com \
        deploymentmanager.googleapis.com \
        cloudresourcemanager.googleapis.com \
        iam.googleapis.com \
        servicemanagement.googleapis.com \
        --project $DM_HOME_PROJECT

    Console

    1. Prüfen Sie, ob Ihr neues Projekt in der GCP Console ausgewählt ist. Falls nicht, wechseln Sie auf der Seite Ressourcen verwalten zu dem neuen Projekt.

      [Zur Seite "Ressourcen verwalten"] (https://console.cloud.google.com/cloud-resource-manager) {: target = "console" class = "button button primary" track-type = "tutorial" -name = "consoleLink" track-metadata-position = "body"}

    2. Öffnen Sie die Seite API-Bibliothek.

      [Zur API-Bibliotheksseite] (https://console.cloud.google.com/apis/library) {: target = "console" class = "button button primary" track-type = "tutorial" track-name = "consoleLink" track-metadata-position = "body"}

    3. Aktivieren Sie folgende APIs:

      • Google Cloud Billing API
      • Google Identity and Access Management (IAM) API
      • Google Service Management API
      • Google Cloud Deployment Manager V2 API
      • Google Cloud Resource Manager API

Richtlinien für Organisationsressource konfigurieren

Die freigegebene VPC ist eine Funktion auf Organisationsebene. Daher müssen einige Organisationsrichtlinien konfiguriert werden – das vom Deployment Manager verwendete Dienstkonto benötigt spezifische Rollen auf Organisationsebene.

gcloud


  1. Legen Sie für die Projektnummer und den Namen des Dienstkontos Umgebungsvariablen fest. Mit den folgenden Befehlen werden die Werte aus Ihrem Projekt ausgelesen, mit denen Sie dann die Umgebungsvariablen festlegen können.

    export PROJECT_NUMBER=$(gcloud projects describe $DM_HOME_PROJECT \
        --format="value(projectNumber)")
    export DM_SA=${PROJECT_NUMBER}@cloudservices.gserviceaccount.com
  2. Fügen Sie IAM-Richtlinien hinzu:

    gcloud organizations add-iam-policy-binding $ORG_ID \
        --role=roles/resourcemanager.projectCreator \
        --member="serviceAccount:${DM_SA}"
    gcloud organizations add-iam-policy-binding $ORG_ID \
        --role=roles/billing.user \
        --member="serviceAccount:${DM_SA}"
    gcloud organizations add-iam-policy-binding $ORG_ID \
        --role=roles/compute.xpnAdmin \
        --member="serviceAccount:${DM_SA}"

Console


  1. Öffnen Sie im Projekt IAM & Verwaltung > Einstellungen.

  2. Notieren Sie die Projektnummer.

  3. Öffnen Sie IAM & Verwaltung > IAM.

  4. Wählen Sie im Projekt-Auswahlmenü oben Ihre Organisation aus.

  5. Klicken Sie oben im Fenster auf Hinzufügen.

  6. Weisen Sie dem Dienstkonto des Deployment Managers folgende Rollen zu. Der Name dieses Dienstkontos lautet [PROJECT_NUMBER]@cloudservices.gserviceaccount.com, wobei [PROJECT_NUMBER] dem Wert entspricht, den Sie zuvor notiert haben.

    • Resource Manager > Projektersteller
    • Abrechnung > Rechnungskontonutzer
    • Compute Engine > Administrator für freigegebene Compute-VPC

Projekte und freigegebene VPC konfigurieren

Nun können Sie mit dem Deployment Manager das Hostprojekt und das Dienstprojekt erstellen. Sollten Sie bis jetzt die GCP Console verwendet haben, müssen Sie nun zu Cloud Shell wechseln.

  1. Falls Ihre Sitzung abgelaufen ist oder geschlossen wurde, öffnen Sie eine neue Cloud Shell-Sitzung.

    Cloud Shell öffnen

  2. Klonen Sie in Cloud Shell das folgende Git-Repository:

    git clone https://github.com/GoogleCloudPlatform/deploymentmanager-samples.git
  3. Gehen Sie in dem geklonten Repository zu dem Beispiel project_creation:

    cd $HOME/deploymentmanager-samples/examples/v2/project_creation
  4. Öffnen Sie die Datei config_shared_vpc.yaml:

    nano config_shared_vpc.yaml
  5. Stellen Sie die Werte ein, die in der nachstehenden Tabelle aufgelistet sind.

    Einstellung Beschreibung
    HOST_PROJECT Eindeutiger Name des Hostprojekts. Im Hostprojekt wird die VPC erstellt und verwaltet. Sie müssen diesen Wert auch in der letzten Zeile der Datei ändern, also insgesamt zweimal ersetzen.

    Beispiel:

    [YOUR_NAME]-[DATE]-host
    SERVICE_PROJECT Eindeutiger Name des Dienstprojekts. Im Dienstprojekt wird die im Hostprojekt befindliche VPC genutzt.

    Beispiel:

    [YOUR_NAME]-[DATE]-svc
    ORG_ID Ihre Organisations-ID. Diesen Wert haben Sie in den vorangegangenen Schritten ermittelt. Falls nicht, können Sie ihn mit dem folgenden Befehl abrufen:
    
    gcloud organizations list

    Setzen Sie die Organisations-ID in Anführungszeichen, damit sie in der YAML-Datei nicht als numerischer Wert erfasst wird.

    BILLING_ACCOUNT_ID ID des Rechnungskontos. Diesen Wert haben Sie in den vorangegangenen Schritten ermittelt. Falls nicht, können Sie ihn mit dem folgenden Befehl abrufen:
    
    gcloud beta billing accounts list
    EMAIL Ihre E-Mail-Adresse. Die E-Mail-Adresse muss insgesamt an fünf Stellen eingegeben werden.
  6. Speichern Sie die Datei und beenden Sie nano mit der folgenden Tastenkombination:

    ^O <Enter> ^X

  7. Wenn Sie die GCP Console verwendet haben, um das Homeprojekt des Deployment Managers zu erstellen, legen Sie für die ID des Homeprojekts eine Umgebungsvariable fest:

    export DM_HOME_PROJECT=[DM_HOME_PROJECT]
  8. Erstellen Sie eine Vorschau der Bereitstellung:

    gcloud deployment-manager deployments \
        create shared-vpc-projects \
        --config config_shared_vpc.yaml --preview \
        --project $DM_HOME_PROJECT

    In der Vorschau der Bereitstellung des Deployment Managers sehen Sie, welche Ressourcen erstellt, aktualisiert oder gelöscht werden.

  9. Wenden Sie die Vorschau der Bereitstellung an:

    gcloud deployment-manager deployments \
        update shared-vpc-projects \
        --project $DM_HOME_PROJECT
  10. Zeigen Sie die Bereitstellung in der GCP Console an. Wählen Sie hierzu, falls erforderlich, das Homeprojekt des Deployment Managers oben im Projekt-Auswahlmenü aus.

    WEITER ZUM DEPLOYMENT MANAGER

Nach einigen Minuten ist die Bereitstellung abgeschlossen und die zwei neuen Projekte wurden erstellt. Das Dienstprojekt ist bereits mit dem Hostprojekt verknüpft, aber Sie haben die VPC noch nicht erstellt, die freigegeben werden soll.

Fehlerbehebung

Sollten beim Erstellen der Vorschau Fehler auftreten, können Sie die Bereitstellung löschen (es wurden noch keine Ressourcen erstellt) und den Vorgang wiederholen.

Wenn die Vorschau erstellt wurde, aber die Bereitstellung fehlschlägt, können Sie diese Bereitstellung möglicherweise nicht noch einmal erstellen. Projekte können nicht gelöscht und sofort neu erstellt werden. Nach dem Löschbefehl werden sie für eine Sicherheitsfrist von 30 Tagen zum Löschen vorgemerkt. Wenn Sie die Bereitstellung wiederholen müssen, ändern Sie in der Datei config_shared_vpc.yaml die Werte der Einstellungen HOST_PROJECT und SERVICE_PROJECT, bevor Sie es noch einmal versuchen.

VPC erstellen

Sie verwenden nun eine andere Deployment Manager-Vorlage, um im Hostprojekt die VPC zu erstellen. Dieser Vorgang wird in der Regel von einem Netzwerkadministrator ausgeführt. Da die freigegebene VPC bereits konfiguriert wurde, kann das Dienstprojekt sofort genutzt werden.

Netzwerkkonfiguration bereitstellen

  1. Legen Sie für die Namen des Hostprojekts und des Dienstprojekts, die Sie in der Datei config_shared_vpc.yaml eingestellt haben, Umgebungsvariablen fest:

    export HOST_PROJECT=[HOST_PROJECT]
    export SERVICE_PROJECT=[SERVICE_PROJECT]
  2. Gehen Sie zu dem Beispiel network im Git-Repository:

    cd $HOME/deploymentmanager-samples/community/network/

    In der Datei config.yaml sehen Sie eine Ressource vom Typ network.py mit drei Subnetzwerken und deren jeweiligen CIDRs. Hier können Sie experimentieren, z. B. die Ressource ändern oder duplizieren, um sie Ihren Anforderungen anzupassen.

  3. Erstellen Sie eine Vorschau der Bereitstellung. Diese Bereitstellung wird im Hostprojekt generiert.

    gcloud deployment-manager deployments create host-network \
        --config config.yaml --preview \
        --project $HOST_PROJECT
  4. Wenden Sie die Vorschau der Bereitstellung an.

    gcloud deployment-manager deployments update host-network \
        --project $HOST_PROJECT

Überprüfung

Nun können Sie den Zugriff vom Dienstprojekt auf das Netzwerk des Hostprojekts überprüfen. Sie erhalten Zugriff auf dieses Netzwerk, da Sie im Hostprojekt die Rolle roles/compute.networkUser haben. Bei einer Produktionsbereitstellung müssen Sie diese Rolle allen Nutzern zuweisen, die die freigegebene VPC verwenden.

  1. Erstellen Sie im Dienstprojekt eine Testinstanz unter Verwendung eines Subnetzwerks aus dem Hostprojekt.

    gcloud

    gcloud compute instances create instance-test \
        --zone us-east1-b \
        --subnet \
        "projects/$HOST_PROJECT/regions/us-east1/subnetworks/host-network-us-east1" \
        --project $SERVICE_PROJECT

    Console


    1. Wählen Sie das Dienstprojekt aus.

      [ZUR SEITE "RESSOURCEN VERWALTEN"] (https://console.cloud.google.com/cloud-resource-manager) {: target = "console" class = "button button primary" track-type = "tutorial" -name = "consoleLink" track-metadata-position = "body"}
    2. Gehen Sie zur Seite "VM-Instanzen".

      [ZUR SEITE "VM-INSTANZEN"] (https://console.cloud.google.com/compute/instances) {: target = "console" class = "button button primary" track-type = "tutorial" track-name = "consoleLink" track-metadata-position = "body"}
    3. Klicken Sie auf Erstellen.
    4. Geben Sie im Bereich Name `instance-test` ein.
    5. Achten Sie darauf, dass im Bereich Zone `us-east1-b` ausgewählt ist.
    6. Klicken Sie auf Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten.
    7. Klicken Sie auf den Tab Netzwerk.
    8. Klicken Sie auf die bestehende Netzwerkschnittstelle.
    9. Wählen Sie die Option Für mich freigegebene Netzwerke aus.
    10. ![Abschnitt "Für mich freigegebene Netzwerke" der Seite "Instanz erstellen"] (/ solutions / images / shared-vpc-with-Deployment-Manager-Networks-shared-with-me.png) {: class = "screenshot" width = "50% "}
    11. Klicken Sie unten im Bereich Netzwerkschnittstelle auf Fertig.
    12. Klicken Sie auf Erstellen.

    Warten Sie ein bis zwei Minuten, bis die Instanz gestartet wurde. Sobald die Instanz bereit ist, wird sie auf der Seite "VM-Instanzen" mit einem grünen Statussymbol angezeigt.

  2. Überprüfen Sie, ob die Instanz die freigegebene VPC nutzt.

    gcloud

    gcloud compute instances describe instance-test \
        --zone us-east1-b --project $SERVICE_PROJECT \
        --format="value(networkInterfaces[0].network)"

    Mit diesem Befehl wird der Link zur VPC erstellt, die von der erstellten Instanz verwendet wird. An diesem Link ist erkennbar, dass die VPC zum Hostprojekt gehört, obwohl die Instanz im Dienstprojekt erstellt wurde (weil im Befehl das Flag --project gesetzt wurde).

    Console


    1. Wählen Sie in der Instanzliste Ihre Instanz aus.
    2. Überprüfen Sie, ob die Instanz das Netzwerk des Hostprojekts nutzt.

      ![Liste der Netzwerkschnittstellen mit 'host-network-us-east1'] (/ solutions / images / shared-vpc-with-Deployment-Manager-verify-network.png) {: class = "screenshot"}

Bereinigen

Nachdem Sie die aktuelle Anleitung durchgearbeitet haben, können Sie die auf der Google Cloud Platform erstellten Ressourcen bereinigen, sodass Ihnen diese nicht weiter in Rechnung gestellt werden. In den folgenden Abschnitten erfahren Sie, wie Sie diese Ressourcen löschen oder deaktivieren.

  1. Löschen Sie die Testinstanz in Cloud Shell:

    gcloud compute instances delete instance-test \
        --project $SERVICE_PROJECT \
        --zone us-east1-b
  2. Wenn Sie für das Projekt einen Löschschutz eingestellt haben, entfernen Sie diesen:

    gcloud beta resource-manager org-policies disable-enforce \
        --organization $ORG_ID compute.restrictXpnProjectLienRemoval
  3. Löschen Sie die Bereitstellung host-network:

    gcloud deployment-manager deployments delete host-network \
        --project $HOST_PROJECT
  4. Löschen Sie die Bereitstellung shared-vpc-projects:

    gcloud deployment-manager deployments \
        delete shared-vpc-projects \
        --project $DM_HOME_PROJECT
  5. Löschen Sie das Homeprojekt:

    gcloud projects delete $DM_HOME_PROJECT

Weitere Informationen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...