Bereitstellung von freigegebener VPC aufheben

Auf dieser Seite wird beschrieben, wie Sie die Bereitstellung einer aktuell freigegebenen VPC-Konfiguration aufheben, indem Sie alle Dienstprojekte vom Hostprojekt der freigegebenen VPC trennen. Das Aufheben einer Bereitstellung ist nur in einer Richtung möglich. Machen Sie sich zuerst mit den Informationen auf den Seiten Freigegebene VPC – Übersicht und Freigegebene VPC bereitstellen vertraut.

Aufgaben des Dienstprojektadministrators

In jedem Dienstprojekt, das an das freigegebene VPC-Hostprojekt angehängt ist, muss ein Dienstprojektadministrator alle Abhängigkeiten vom Hostprojekt entfernen. Zu diesen Abhängigkeiten gehören Instanzen, Instanzgruppen, Instanzvorlagen und Weiterleitungsregeln für das interne TCP/-UDP-Load-Balancing.

Betroffene Ressourcen ermitteln

Um Ressourcen zu identifizieren, die vom freigegebenen VPC-Hostprojekt abhängen, kann ein Dienstprojektadministrator die freigegebenen Subnetze auflisten. Nachdem das Dienstprojekt vom Hostprojekt getrennt wurde, stehen ihm diese Subnetze nicht mehr zur Verfügung. Daher sind alle davon abhängigen Ressourcen betroffen.

Ressourcen löschen

Sobald ein Dienstprojektadministrator die Ressourcen identifiziert hat, die vom Aufheben der Bereitstellung betroffen sind, müssen diese Ressourcen gelöscht werden:

Aufgaben des Administrators der freigegebenen VPC

Alle in diesem Abschnitt beschriebenen Aufgaben müssen von einem Administrator für freigegebene VPC ausgeführt werden.

Dienstprojekte trennen

Wiederholen Sie diese Schritte für jedes Dienstprojekt, das Sie vom freigegebenen VPC-Hostprojekt trennen müssen.

gcloud

  1. Falls noch nicht geschehen, authentifizieren Sie sich in gcloud als Administrator für freigegebene VPC. Ersetzen Sie SHARED_VPC_ADMIN durch den Namen des Administrators für freigegebene VPC:

        gcloud auth login SHARED_VPC_ADMIN
        
  2. Trennen Sie das Dienstprojekt vom Hostprojekt. Ersetzen Sie SERVICE_PROJECT_ID durch die Projekt-ID für das Dienstprojekt und HOST_PROJECT_ID durch die Projekt-ID für das Hostprojekt.

    Wenn Ihnen die Rolle "Administrator für freigegebene VPC" auf Organisationsebene zugewiesen wurde

        gcloud compute shared-vpc associated-projects remove SERVICE_PROJECT_ID
            --host-project HOST_PROJECT_ID
        

    Wenn Ihnen die Rolle "Administrator für freigegebene VPC" auf Ordnerebene zugewiesen wurde

        gcloud beta compute shared-vpc associated-projects remove SERVICE_PROJECT_ID
            --host-project HOST_PROJECT_ID
        
  3. Überprüfen Sie mit einem der folgenden Befehle, ob das Dienstprojekt vom Hostprojekt getrennt wurde:

        gcloud compute shared-vpc get-host-project SERVICE_PROJECT_ID
        
        gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID
        
  4. Wenn Sie nur Dienstprojekte trennen mussten, melden Sie sich von gcloud ab, um die Anmeldedaten des Administratorkontos für die freigegebene VPC zu schützen. Andernfalls können Sie diesen Schritt überspringen und nun das Hostprojekt deaktivieren.

        gcloud auth revoke SHARED_VPC_ADMIN
        

API

  1. Trennen Sie das Dienstprojekt.

    • Wenn Ihnen die Rolle "Administrator für freigegebene VPC" auf Organisationsebene zugewiesen wurde, verwenden Sie die v1 API:

          POST https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/disableXpnResource
          {
          "xpnResource": {
            "id": "SERVICE_PROJECT_ID"
          }
          }
          
    • Wenn Ihnen die Rolle "Administrator für freigegebene VPC" auf Ordnerebene zugewiesen wurde, verwenden Sie die Beta API:

          POST https://www.googleapis.com/compute/beta/projects/HOST_PROJECT_ID/disableXpnResource
          {
          "xpnResource": {
            "id": "SERVICE_PROJECT_ID"
          }
          }
          

    Ersetzen Sie die Platzhalter durch gültige Werte:

    • HOST_PROJECT_ID ist die ID des Hostprojekts.
    • SERVICE_PROJECT_ID ist die ID des zu trennenden Dienstprojekts.

    Weitere Informationen finden Sie in der Methode projects.disableXpnResource.

  2. Bestätigen Sie, dass das Dienstprojekt getrennt wurde.

    • Überprüfen Sie, ob das Dienstprojekt keinem Hostprojekt zugeordnet ist.

          GET https://www.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/getXpnHost
          

      Ersetzen Sie SERVICE_PROJECT_ID durch die ID des Dienstprojekts.

      Weitere Informationen finden Sie in der Methode projects.getXpnHost.

    • Listen Sie die Dienstprojekte auf, die dem Hostprojekt der freigegebenen VPC zugeordnet sind, um zu bestätigen, dass das Projekt nicht mehr aufgeführt ist.

          GET https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/getXpnResources
          

      Ersetzen Sie HOST_PROJECT_ID durch die ID des Hostprojekts.

      Weitere Informationen finden Sie in der Methode projects.getXpnResources.

Hostprojekt deaktivieren

Das Hostprojekt einer freigegebenen VPC kann erst deaktiviert werden, nachdem alle Dienstprojekte getrennt wurden. Nach der Deaktivierung wird die Sperre zum Schutz vor versehentlichem Löschen automatisch entfernt.

gcloud

  1. Falls noch nicht geschehen, authentifizieren Sie sich in gcloud als Administrator für freigegebene VPC. Ersetzen Sie SHARED_VPC_ADMIN durch den Namen des Administrators für freigegebene VPC:

        gcloud auth login SHARED_VPC_ADMIN
        
  2. Deaktivieren Sie die freigegebene VPC für das Hostprojekt. Ersetzen Sie HOST_PROJECT_ID durch die ID des Hostprojekts.

    Wenn Ihnen die Rolle "Administrator für freigegebene VPC" auf Organisationsebene zugewiesen wurde

        gcloud compute shared-vpc disable HOST_PROJECT_ID
        

    Wenn Ihnen die Rolle "Administrator für freigegebene VPC" auf Ordnerebene zugewiesen wurde

        gcloud beta compute shared-vpc disable HOST_PROJECT_ID
        
  3. Bestätigen Sie, dass das Projekt nicht mehr als Hostprojekt für Ihre Organisation aufgeführt wird. Ersetzen Sie ORG_ID durch Ihrer Organisations-ID (ermittelt durch gcloud organizations list).

        gcloud compute shared-vpc organizations list-host-projects ORG_ID
        
  4. Wenn Sie nur ein Hostprojekt deaktivieren mussten, melden Sie sich von gcloud ab, um die Anmeldedaten des Administratorkontos für die freigegebene VPC zu schützen. Andernfalls können Sie diesen Schritt überspringen und nun Projekte löschen.

        gcloud auth revoke SHARED_VPC_ADMIN
        

API

  1. Deaktivieren Sie die freigegebene VPC für das Projekt.

    • Wenn Ihnen die Rolle "Administrator für freigegebene VPC" auf Organisationsebene zugewiesen wurde, verwenden Sie die v1 API:

          POST https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/disableXpnHost
          
    • Wenn Ihnen die Rolle "Administrator für freigegebene VPC" auf Ordnerebene zugewiesen wurde, verwenden Sie die Beta API:

          POST https://www.googleapis.com/compute/beta/projects/HOST_PROJECT_ID/disableXpnHost
          

    Ersetzen Sie HOST_PROJECT_ID durch die ID des Hostprojekts.

    Weitere Informationen finden Sie in der Methode projects.disableXpnHost.

  2. Listen Sie die Hostprojekte auf, um zu bestätigen, dass das Projekt nicht mehr aufgeführt ist.

        POST https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/listXpnHosts
        

    Ersetzen Sie HOST_PROJECT_ID durch die ID des Hostprojekts.

    Weitere Informationen finden Sie in der Methode projects.listXpnHosts.

Projekte löschen

In diesem Abschnitt wird beschrieben, wie Sie nicht länger benötigte Projekte löschen können. Beispielsweise können Dienstprojekte gelöscht werden, nachdem sie von einem Hostprojekt getrennt wurden, oder Sie benötigen das Hostprojekt möglicherweise nicht mehr, nachdem es deaktiviert wurde.

Hostprojekt löschen

Sie können das Projekt als normales Projekt behalten oder beenden. Beim Beenden eines Projekts wird es gelöscht.

Das Hostprojekt kann von jedem in Ihrer Organisation definierten IAM-Mitglied gelöscht werden, das die Rolle resourcemanager.projectDeleter auf Organisationsebene hat oder Inhaber des Hostprojekts ist. Administratoren für die freigegebene VPC können möglicherweise Hostprojekte löschen, wenn sie die entsprechende Rolle haben oder Inhaber sind.

Dienstprojekte löschen

Sie können Dienstprojekte beenden, wenn Sie sie nicht mehr benötigen. Achten Sie darauf, dass das Dienstprojekt vorher vom Hostprojekt getrennt wurde.

Das Dienstprojekt kann von jedem in Ihrer Organisation definierten IAM-Mitglied gelöscht werden, das die Rolle resourcemanager.projectDeleter auf Organisationsebene hat oder Inhaber des Dienstprojekts ist. Dienstprojektadministratoren können möglicherweise Hostprojekte löschen, wenn sie die entsprechende Rolle haben oder Inhaber sind.

Löschen eines Hostprojekts erzwingen

Während die freigegebene VPC für ein Hostprojekt aktiv ist, enthält das Projekt eine Sperre, die verhindert, dass es versehentlich gelöscht wird. Da diese Sperre von einem Projektinhaber entfernt werden kann, enthalten die Richtlinien zur Bereitstellung einer freigegebenen VPC eine Anleitung, nach der Sie mit einer Organisationsrichtlinie einschränken können, welche IAM-Mitglieder diese Sperre entfernen dürfen.

Normalerweise sollte ein Hostprojekt gelöscht werden, nachdem die folgenden Aufgaben in der angegebenen Reihenfolge ausgeführt wurden:

  • Alle Dienstprojekte wurden vom Hostprojekt getrennt und
  • die freigegebene VPC wurde deaktiviert.

Nach der Deaktivierung der freigegebenen VPC wird die Sperre zum Schutz des Hostprojekts automatisch entfernt.

In diesem Abschnitt wird beschrieben, wie das Beenden eines Hostprojekts erzwungen werden kann. Sie sollten diese Option nur unter den folgenden Umständen in Betracht ziehen:

  • Sie können die normale Vorgehensweise zum Trennen von Dienstprojekten und Deaktivieren der freigegebenen VPC nicht ausführen.
  • Es gibt zusätzliche Sperren, die das Hostprojekt über die automatisch hinzugefügte hinaus schützen.

Wenn Sie das Herunterfahren eines Hostprojekts erzwingen und Ressourcen in den Dienstprojekten haben, die das freigegebene VPC-Netzwerk verwenden, treten die folgenden Ereignisse auf:

  • Alle freigegebenen VPC-Netzwerke, ihre Subnetze, Routen, Firewallregeln und alle Netzwerkressourcen im Hostprojekt werden gelöscht.
  • Ressourcen wie ausgeführte Instanzen in den Dienstprojekten, die an das Hostprojekt angehängt sind, werden gestoppt.
  • Interne TCP/UDP-Load-Balancer werden deaktiviert, wenn ihre Weiterleitungsregeln vom freigegebenen VPC-Netzwerk abhängen.

gcloud

  1. Authentifizieren Sie sich bei gcloud als IAM-Mitglied, das die Projektsperre entfernen kann. Wenn eine Organisationsrichtlinie die Mitglieder einschränkt, die Sperren entfernen dürfen, müssen Sie sich als IAM-Mitglied mit der Rolle resourcemanager.lienModifier für Ihre Organisation anmelden. Ist eine solche Richtlinie nicht aktiv, kann der Projektinhaber des Hostprojekts die Sperre entfernen.

    Ersetzen Sie ACCOUNT durch den Namen des entsprechenden IAM-Mitglieds:

        gcloud auth login ACCOUNT
        
  2. Listen Sie die Sperren auf, die dem Hostprojekt zugeordnet sind. Ersetzen Sie HOST_PROJECT_ID durch die ID des Hostprojekts.

        gcloud alpha resource-manager liens list \
        --project HOST_PROJECT_ID
        
  3. Entfernen Sie die Sperren einzeln nach ihrem Namen, bis alle gelöscht sind. Ersetzen Sie LIEN_NAME durch den Namen der zu entfernenden Sperre.

        gcloud alpha resource-manager liens delete LIEN_NAME \
        --project HOST_PROJECT_ID
        
  4. Prüfen Sie, ob alle Sperren entfernt wurden.

        gcloud alpha resource-manager liens list \
        --project HOST_PROJECT_ID
        
  5. Nach dem Entfernen der Sperre können Sie sich bei gcloud abmelden, um die Anmeldedaten des IAM-Mitglieds zu schützen, das zum Entfernen von Sperren berechtigt ist.

        gcloud auth revoke ACCOUNT
        
  6. Das Hostprojekt kann jetzt beendet werden.

API

  1. Listen Sie die Sperren auf, die dem Hostprojekt zugeordnet sind.

        GET https://cloudresourcemanager.googleapis.com/v1/liens?parent=projects:HOST_PROJECT_ID
        

    Ersetzen Sie HOST_PROJECT_ID durch die ID des Hostprojekts.

    Weitere Informationen finden Sie in der Methode liens.list.

  2. Entfernen Sie die Sperren nach ihrem Namen, bis alle gelöscht sind.

        DELETE https://cloudresourcemanager.googleapis.com/v1/liens/LIEN_NAME
        

    Ersetzen Sie LIEN_NAME durch den Namen der zu löschenden Sperre.

    Weitere Informationen finden Sie in der Methode liens.delete.

  3. Listen Sie die Sperren erneut auf, um zu bestätigen, dass sie entfernt wurden.

Weitere Informationen