Gemeinsam genutzte VPC bereitstellen
Mit einer freigegebene VPC können Sie Subnetze von einem VPC-Netzwerk (Virtual Private Cloud) in einem Hostprojekt in andere Dienstprojekte in derselbenOrganisation exportieren. Instanzen in den Dienstprojekten können Netzwerkverbindungen in den freigegebenen Subnetzen des Hostprojekts haben. Auf dieser Seite wird beschrieben, wie Sie eine freigegebene VPC einrichten und verwenden. Hierzu gehören auch einige notwendige administrative Vorbereitungen für Ihre Organisation.
Die freigegebene VPC unterstützt den Export von Subnetzen mit einem beliebigen Stack-Typ.
Informationen zum Trennen von Dienstprojekten oder zum vollständigen Entfernen der Konfiguration einer freigegebene VPC finden Sie unter Bereitstellung von gemeinsam genutzter VPC aufheben.
Eine freigegebene VPC wird in der API und in der Befehlszeile auch als „XPN” bezeichnet.
Kontingente, Limits und berechtigte Ressourcen
Machen Sie sich vor Beginn mit gemeinsam genutzten VPCs und IAM vertraut, insbesondere mit den folgenden Themen:
Notieren Sie sich die Kontingente und Limits für freigegebene VPC.
Informieren Sie sich darüber, welche Ressourcen einbezogen werden können.
Aktivieren Sie die Compute Engine API sowie die Abrechnung für Ihr Hostprojekt und alle Dienstprojekte, die Sie an das Hostprojekt anhängen möchten.
Organisation vorbereiten
Beachten Sie die folgenden Informationen, wenn Sie Ihre Organisation vorbereiten.
Administratoren und IAM
Zum Vorbereiten Ihrer Organisation, zum Einrichten von freigegebene VPC-Hostprojekten und zur Verwendung von freigegebene VPC-Netzwerken werden mindestens drei verschiedene administrative IAM-Rollen (Identity and Access Management) benötigt. Weitere Details zu den einzelnen Rollen und Informationen zu optionalen Rollen finden Sie im Abschnitt Administratoren und IAM der Übersicht zu freigegebene VPC.
Einschränkungen für Organisationsrichtlinien
Einschränkungen für Organisationsrichtlinien können freigegebene VPC-Ressourcen auf Projekt-, Ordner- oder Organisationsebene schützen. In den folgenden Abschnitten werden die einzelnen Richtlinien beschrieben.
Versehentliches Löschen von Hostprojekten verhindern
Das versehentliche Löschen eines Hostprojekts würde zu Ausfällen in allen damit verbundenen Dienstprojekten führen. Wenn ein Projekt als gemeinsam genutztes VPC-Hostprojekt konfiguriert ist, wird eine spezielle Sperre hinzugefügt. Solange diese Sperre aktiv ist, kann das Projekt nicht versehentlich gelöscht werden. Die Sperre wird automatisch entfernt, wenn das Projekt kein Hostprojekt mehr ist.
Ein Nutzer mit der Rolle orgpolicy.policyAdmin kann eine Richtlinieneinschränkung auf Organisationsebene (constraints/compute.restrictXpnProjectLienRemoval) festlegen, die das Entfernen von Sperren auf die folgenden Rollen beschränkt:
- Nutzer mit
roles/owneroderroles/resourcemanager.lienModifierauf Organisationsebene - Nutzer mit benutzerdefinierten Rollen, die die Berechtigungen
resourcemanager.projects.getundresourcemanager.projects.updateLiensauf Organisationsebene enthalten
Dadurch wird verhindert, dass ein Projektinhaber, der nicht die Rolle roles/owner oder resourcemanager.lienModifier auf Organisationsebene hat, versehentlich ein freigegebene VPC-Hostprojekt löschen kann. Weitere Informationen zu den Berechtigungen, die mit der Rolle resourcemanager.lienModifier verknüpft sind, finden Sie in der Dokumentation zum Resource Manager unter Projekt sperren.
Da eine Organisationsrichtlinie für alle Projekte in der Organisation gilt, müssen Sie diese Schritte nur einmal ausführen, um das Entfernen von Sperren zu beschränken.
Authentifizieren Sie sich bei
gcloudals Organisationsadministrator oder IAM-Hauptkonto mit der Rolleorgpolicy.policyAdmin. Ersetzen SieORG_ADMINdurch den Namen eines Organisationsadministrators:gcloud auth login ORG_ADMIN
Führen Sie den folgenden Befehl aus, um Ihre Organisations-ID zu ermitteln:
gcloud organizations list
Führen Sie diesen Befehl aus, um die Richtlinie
compute.restrictXpnProjectLienRemovalfür Ihre Organisation zu erzwingen. Ersetzen SieORG_IDdurch die ID-Nummer, die Sie im vorherigen Schritt ermittelt haben.gcloud resource-manager org-policies enable-enforce \ --organization ORG_ID compute.restrictXpnProjectLienRemovalMelden Sie sich zum Schutz Ihres Kontos von
gcloudab, wenn Sie die Aufgaben als Administrator der Organisation abgeschlossen haben.gcloud auth revoke ORG_ADMIN
Anhänge an das Hostprojekt beschränken
Ein Administrator einer gemeinsam genutzten VPC kann standardmäßig an jedes Hostprojekt in derselben Organisation einen Nicht-Host anhängen. Ein Administrator für Organisationsrichtlinien kann die Anzahl der Hostprojekte beschränken, denen ein Nicht-Hostprojekt oder Nicht-Hostprojekte in einem Ordner oder einer Organisation angehängt werden können. Weitere Informationen finden Sie im Abschnitt zur Einschränkung constraints/compute.restrictSharedVpcHostProjects.
Subnetze im Hostprojekt festlegen, die ein Dienstprojekt verwenden darf
IAM-Hauptkonten können in Dienstprojekten nach der Konfiguration der freigegebene VPC standardmäßig jedes Subnetz im Hostprojekt verwenden, wenn sie die entsprechenden IAM-Berechtigungen haben.
Zusätzlich zur Verwaltung individueller Nutzerberechtigungen kann ein Administrator einer Organisationsrichtlinie eine Richtlinie festlegen, die die Subnetze definiert, auf die ein bestimmtes Projekt oder Projekte in einem Ordner oder einer Organisation zugreifen können.
Weitere Informationen finden Sie im Abschnitt zur Einschränkung constraints/compute.restrictSharedVpcSubnetworks.
Versehentliches Herunterfahren von Hostprojekten verhindern
Das Trennen der Abrechnung in einem freigegebene VPC-Netzwerk kann dazu führen, dass alle abhängigen Ressourcen einschließlich Dienstprojekten vollständig heruntergefahren werden. Um ein mögliches Auftreten eines versehentlichen Herunterfahrens einer freigegebene VPC aufgrund einer inaktiven oder deaktivierten Abrechnung zu verhindern, sichern Sie die Verknüpfung zwischen dem Hostprojekt und seinem Rechnungskonto.
Administratoren für freigegebene VPC benennen
Ein Organisationsadministrator kann einem oder mehreren IAM-Hauptkonten die Rollen Administrator für gemeinsam genutzte VPC und Projekt-IAM-Administrator zuweisen.
Die Rolle „Projekt-IAM-Administrator” erteilt Administratoren für gemeinsam genutzte VPC die Berechtigung, alle vorhandenen und zukünftigen Subnetze und nicht nur einzelne Subnetze freizugeben. Diese Zuweisung erfolgt auf Organisations- oder Ordnerebene, nicht auf Projektebene. Daher müssen die IAM-Hauptkonten in der Organisation und nicht nur in einem darin enthaltenen Projekt definiert werden.
Console
Rolle „Administrator für gemeinsam genutzte VPC“ auf Organisationsebene zuweisen
Melden Sie sich in der Google Cloud Console als Organisationsadministrator an und rufen Sie dann die Seite „IAM“ auf.
Wählen Sie im Projektmenü Ihre Organisation aus.
Wenn Sie ein Projekt auswählen, werden im Menü Rollen falsche Einträge angezeigt.
Klicken Sie auf Hinzufügen.
Geben Sie die E-Mail-Adressen der neuen Hauptkonten ein.
Wählen Sie im Menü Rollen die Option Compute Engine > Administrator für gemeinsam genutzte Compute-VPC aus.
Klicken Sie auf Weitere Rolle hinzufügen.
Wählen Sie im Drop-down-Menü Rollen die Option Resource Manager > Projekt-IAM-Administrator aus.
Klicken Sie auf Speichern.
Rolle „Administrator für gemeinsam genutzte VPC” auf Ordnerebene zuweisen
Melden Sie sich in der Google Cloud Console als Organisationsadministrator an und rufen Sie dann die Seite „IAM“ auf.
Wählen Sie im Projektmenü Ihren Ordner aus.
Wenn Sie ein Projekt oder eine Organisation auswählen, werden Ihnen die falschen Optionen angezeigt.
Klicken Sie auf Hinzufügen.
Geben Sie die E-Mail-Adressen der neuen Hauptkonten ein.
Wählen Sie unter Rolle auswählen die Option Compute Engine >> Administrator für gemeinsam genutzte Compute-VPC aus.
Klicken Sie auf Weitere Rolle hinzufügen.
Wählen Sie im Menü Rollen die Option Resource Manager > Project IAM Admin aus.
Klicken Sie auf Weitere Rolle hinzufügen.
Wählen Sie im Menü Rollen die Option Ressourcen-Manager > Compute-Netzwerkbetrachter aus.
Klicken Sie auf Speichern.
gcloud
Authentifizieren Sie sich bei
gcloudals Organisationsadministrator. Ersetzen SieORG_ADMINdurch den Namen eines Organisationsadministrators:gcloud auth login ORG_ADMIN
Führen Sie den folgenden Befehl aus, um Ihre Organisations-ID festzustellen:
gcloud organizations list
So weisen Sie die Rolle „Administrator für gemeinsam genutzte VPC” auf Organisationsebene zu:
Weisen Sie die Rolle „Administrator für gemeinsam genutzte VPC“ einem vorhandenen IAM-Hauptkonto zu. Ersetzen Sie
ORG_IDdurch die Organisations-ID aus dem vorherigen Schritt undEMAIL_ADDRESSdurch die E-Mail-Adresse des Nutzers, dem Sie die Rolle „Administrator für freigegebene VPC zuweisen.gcloud organizations add-iam-policy-binding ORG_ID \ --member='user:EMAIL_ADDRESS' \ --role="roles/compute.xpnAdmin"
gcloud organizations add-iam-policy-binding ORG_ID \ --member='user:EMAIL_ADDRESS' \ --role="roles/resourcemanager.projectIamAdmin"
So weisen Sie die Rolle „Administrator für gemeinsam genutzte VPC“ auf Ordnerebene zu:
Führen Sie den folgenden Befehl aus, um Ihre Ordner-ID zu ermitteln:
gcloud resource-manager folders list --organization=ORG_ID
Weisen Sie die Rolle „Administrator für gemeinsam genutzte VPC“ einem vorhandenen IAM-Hauptkonto zu. Ersetzen Sie
ORG_IDdurch die Organisations-ID aus dem vorherigen Schritt undEMAIL_ADDRESSdurch die E-Mail-Adresse des Nutzers, dem Sie die Rolle „Administrator für gemeinsam genutzte VPC” zuweisen.gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \ --member='user:EMAIL_ADDRESS' \ --role="roles/compute.xpnAdmin"
gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \ --member='user:EMAIL_ADDRESS' \ --role="roles/resourcemanager.projectIamAdmin"
gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \ --member='user:EMAIL_ADDRESS' \ --role="roles/compute.networkViewer"
Widerrufen Sie zum Schutz Ihres Kontos im
gcloud-Befehlszeilentool das Token Ihres Organisationsadministratorkontos, wenn Sie die Aufgaben zum Schutz Ihres Kontos abgeschlossen haben.gcloud auth revoke ORG_ADMIN
API
So weisen Sie die Rolle „Administrator für gemeinsam genutzte VPC” auf Organisationsebene zu:
Ermitteln Sie Ihre Organisations-ID.
POST https://cloudresourcemanager.googleapis.com/v1/organizations
Beschreiben Sie die Details Ihrer vorhandenen Organisationsrichtlinie und notieren Sie diese.
POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORG_ID:getIamPolicy
Ersetzen Sie
ORG_IDdurch die ID Ihrer Organisation.Weisen Sie die Rolle „Administrator für gemeinsam genutzte VPC“ zu.
POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORG_ID:setIamPolicy { "bindings": [ ...copy existing bindings { "members": [ "user:EMAIL_ADDRESS" ], "role": "roles/compute.xpnAdmin" }, { "members": [ "user:EMAIL_ADDRESS" ], "role": "roles/resourcemanager.projectIamAdmin" } ], "etag": "ETAG", "version": 1, ...other existing policy details }Dabei gilt:
ORG_ID: die ID der Organisation, die den Nutzer enthält, dem Sie die Rolle „Administrator für freigegebene VPC zuweisen.EMAIL_ADDRESS: die E-Mail-Adresse des Nutzers.ETAG: eine eindeutige Kennung, die Sie beim Beschreiben der vorhandenen Richtlinie erhalten haben. Sie verhindert Konflikte, wenn mehrere Aktualisierungsanfragen gleichzeitig gesendet werden.
Weitere Informationen finden Sie im Artikel zur Methode
organizations.setIamPolicy.
Die Rolle „Administrator für gemeinsam genutzte VPC” weisen Sie auf Ordnerebene mit folgender Anfrage zu:
Ermitteln Sie Ihre Organisations-ID.
POST https://cloudresourcemanager.googleapis.com/v1/organizations
Suchen Sie nach Ihrer Ordner-ID.
GET https://cloudresourcemanager.googleapis.com/v2/folders?parent=organizations/ORG_ID
Ersetzen Sie
ORG_IDdurch die ID Ihrer Organisation.Beschreiben Sie die Details Ihrer vorhandenen Ordnerrichtlinie und notieren Sie diese.
POST https://cloudresourcemanager.googleapis.com/v2/folders/FOLDER_ID:getIamPolicy
Ersetzen Sie
FOLDER_IDdurch die ID Ihres Ordners.Weisen Sie die Rolle „Administrator für gemeinsam genutzte VPC“ zu.
POST https://cloudresourcemanager.googleapis.com/v1/organizations/FOLDER_ID:setIamPolicy { "bindings": [ ...copy existing bindings { "members": [ "user:EMAIL_ADDRESS" ], "role": "roles/compute.xpnAdmin" }, { "members": [ "user:EMAIL_ADDRESS" ], "role": "roles/resourcemanager.projectIamAdmin" }, { "members": [ "user:EMAIL_ADDRESS" ], "role": "roles/compute.networkViewer" } ], "etag": "ETAG", "version": 1, ...other existing policy details }Dabei gilt:
FOLDER_ID: die ID der Organisation, die den Nutzer enthält, dem Sie die Rolle „Administrator für freigegebene VPC zuweisen.EMAIL_ADDRESS: die E-Mail-Adresse des Nutzers.ETAG: eine eindeutige Kennung, die Sie beim Beschreiben der vorhandenen Richtlinie erhalten haben. Sie verhindert Konflikte, wenn mehrere Aktualisierungsanfragen gleichzeitig gesendet werden.
Weitere Informationen finden Sie im Artikel zur Methode
folders.setIamPolicy.
Gemeinsam genutzte VPC einrichten
Alle in diesem Abschnitt beschriebenen Aufgaben müssen von einem Administrator für gemeinsam genutzte VPC ausgeführt werden.
Hostprojekt aktivieren
Innerhalb einer Organisation können Administratoren für gemeinsam genutzte VPCs anhand der vorliegenden Anleitung Projekte als freigegebene VPC-Hostprojekte definieren, die bestimmten Kontingenten und Limits unterliegen.
Administratoren für freigegebene VPCs können auch Projekte erstellen und löschen, wenn ihnen auf Organisationsebene die Rollen „Projektersteller“ und „Projektlöscher“ (roles/resourcemanager.projectCreator und roles/resourcemanager.projectDeleter) zugewiesen sind.
Wenn Sie ein Hostprojekt aktivieren, werden die Netzwerkressourcen des Projekts nicht automatisch für Dienstprojekte freigegeben. Sie müssen Dienstprojekte anhängen, um die ausgewählten Netzwerke und Subnetze für das Dienstprojekt freizugeben.
Console
Wenn Sie noch nicht die Rolle „Administrator für gemeinsam genutzte VPC“ (roles/compute.xpnAdmin) haben, können Sie diese Seite nicht in der Google Cloud Console aufrufen.
Rufen Sie in der Google Cloud -Console die Seite Gemeinsam genutzte VPC auf.
Melden Sie sich als Administrator für gemeinsam genutzte VPC an.
Wählen Sie in der Projektauswahl das Projekt aus, das Sie als freigegebene VPC-Hostprojekt aktivieren möchten.
Klicken Sie auf Gemeinsam genutzte VPC einrichten.
Klicken Sie auf der nächsten Seite unter Hostprojekt aktivieren auf Speichern und weiter.
Führen Sie unter Subnetze auswählen einen der folgenden Schritte aus:
- Klicken Sie auf Alle Subnetze freigeben (Berechtigungen auf Projektebene), wenn Sie alle aktuellen und zukünftigen Subnetze in den VPC-Netzwerken des Hostprojekts für Dienstprojekte und Dienstprojektadministratoren wie weiter unten beschrieben freigeben müssen.
- Klicken Sie auf Einzelne Subnetze (Berechtigungen auf Subnetzebene), wenn Sie Subnetze aus den VPC-Netzwerken des Hostprojekts nur für bestimmte Dienstprojekte und Dienstprojektadministratoren freigeben möchten. Wählen Sie dann Subnetze zum Freigeben aus.
Klicken Sie auf Weiter.
Der nächste Bildschirm wird angezeigt.Geben Sie unter Projektnamen die Dienstprojekte an, die an das Hostprojekt angehängt werden sollen. Mit dem Hinzufügen von Dienstprojekten werden noch keine Dienstprojektadministratoren festgelegt. Dies erfolgt im nächsten Schritt.
Fügen Sie im Bereich Nutzer nach Rolle auswählen Dienstprojektadministratoren hinzu. Diese Nutzer erhalten die IAM-Rolle
compute.networkUserfür die freigegebenen Subnetze. Nur Dienstprojektadministratoren können in den Subnetzen des freigegebene VPC-Hostprojekts Ressourcen erstellen.Klicken Sie auf Speichern.
gcloud
Authentifizieren Sie sich in
gcloudals Administrator für freigegebene VPC. Ersetzen SieSHARED_VPC_ADMINdurch den Namen des Administrators für gemeinsam genutzte VPC:gcloud auth login SHARED_VPC_ADMIN
Aktivieren Sie die gemeinsam genutzte VPC für das Projekt, das Sie als Hostprojekt festlegen möchten. Ersetzen Sie
HOST_PROJECT_IDdurch die ID des Projekts.gcloud compute shared-vpc enable HOST_PROJECT_ID
Prüfen Sie, ob das Projekt als Hostprojekt für Ihre Organisation aufgeführt wird. Ersetzen Sie
ORG_IDdurch Ihre Organisations-ID (ermittelt übergcloud organizations list).gcloud compute shared-vpc organizations list-host-projects ORG_ID
Wenn Sie nur ein Hostprojekt aktivieren müssen, können Sie sich anschließend von
gcloudabmelden, um die Anmeldedaten des Administratorkontos für die freigegebene VPC zu schützen. Andernfalls können Sie diesen Schritt überspringen und nun Dienstprojekte anhängen.gcloud auth revoke SHARED_VPC_ADMIN
API
Verwenden Sie Anmeldedaten mit Administratorberechtigungen für gemeinsam genutzte VPC, um gemeinsam genutzte VPC für das Projekt zu aktivieren.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/enableXpnHost
Ersetzen Sie
HOST_PROJECT_IDdurch die ID des Projekts, das ein Hostprojekt für freigegebene VPC werden soll.Weitere Informationen finden Sie im Artikel zur Methode
projects.enableXpnHost.Prüfen Sie, ob das Projekt als Hostprojekt aufgeführt wird.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/listXpnHosts
Ersetzen Sie
HOST_PROJECT_IDdurch die ID des freigegebene VPC-Hostprojekts.Weitere Informationen finden Sie im Artikel zur Methode