Projektverschiebung analysieren

Mit der Cloud Asset Inventory Analyze Move API können Sie einen Detailbericht mit Warnungen und Blockern für kritische Richtliniensysteme erstellen, bevor Sie ein Projekt verschieben. Mit diesem Bericht können Sie potenzielle Richtlinienkonflikte erkennen und Probleme beheben, bevor Sie die Migration starten.

APIs aktivieren

Ein Projekt als API-Nutzerprojekt auswählen oder erstellen und die Cloud Asset API aktivieren

Dieses Nutzerprojekt kann sich von dem Projekt unterscheiden, das Sie analysieren und migrieren möchten. Das Nutzerprojekt wird zum Generieren von Anmeldedaten für die API-Anfrage verwendet.

Im nächsten Abschnitt werden die erforderlichen Rollen und Berechtigungen beschrieben, die dem Quellprojekt, das Sie analysieren möchten, gewährt werden müssen.

Erforderliche Berechtigungen

Für die Analyse der Projektverschiebung benötigen Sie eine Rolle mit der Berechtigung cloudasset.assets.analyzeMove, z. B. Cloud Asset-Betrachter oder Betrachter. Sie können diese Rolle für das Projekt oder für den übergeordneten Ordner oder die übergeordnete Organisationsressource zuweisen.

Wenn Sie Analysen für einen Dienst erhalten möchten, benötigen Sie außerdem Rollen im Zusammenhang mit diesen Diensten. Diese Berechtigungen umfassen Folgendes:

  • Wenn Sie die übernommenen Zulassungsrichtlinien aus der übergeordneten Organisationsressource des Quellprojekts aufrufen möchten, benötigen Sie die Berechtigung resourcemanager.organizations.getIamPolicy für die übergeordnete Organisationsressource des Quellprojekts.

  • Wenn Sie die übernommenen Zulassungsrichtlinien aus dem übergeordneten Ordner des Quellprojekts aufrufen möchten, benötigen Sie die Berechtigung resourcemanager.folders.getIamPolicy für den übergeordneten Ordner des Quellprojekts.

  • Wenn Sie die Zulassungsrichtlinien für das Projekt aufrufen möchten, benötigen Sie die Berechtigung resourcemanager.projects.getIamPolicy für das Quellprojekt.

  • Wenn Sie die übernommenen Ablehnungsrichtlinien der übergeordneten Organisationsressource des Quellprojekts aufrufen möchten, benötigen Sie die Berechtigung iam.denypolicies.get für die übergeordnete Organisationsressource des Quellprojekts.

  • Wenn Sie die Organisationsrichtlinien aufrufen möchten, die in diesem Projekt übernommen wurden, benötigen Sie die Berechtigung orgpolicy.policy.get für das Quellprojekt.

  • Wenn Sie die Compute Engine-Firewallrichtlinien aufrufen möchten, die für dieses Projekt übernommen wurden, benötigen Sie die Berechtigung compute.organizations.setSecurityPolicy für den Quellordner oder die Organisationsressource. Obwohl diese Berechtigung „set“ enthält, ist sie erforderlich, um die übernommenen Sicherheitsrichtlinien abzurufen und anzusehen.

  • Wenn Sie die übernommenen Tags für dieses Projekt ansehen möchten, benötigen Sie die Berechtigung resourcemanager.hierarchyNodes.listEffectiveTags für das Quellprojekt oder dessen übergeordnete Knoten.

Analyse durchführen

Sie können die Google Cloud CLI oder die API verwenden, um die Migration einer Ressource von ihrem aktuellen Ort in der Ressourcenhierarchie zu analysieren.

gcloud

Verwenden Sie den Befehl gcloud asset analyze-move, um die Auswirkungen der Migration eines Projekts von seiner aktuellen Position in der Ressourcenhierarchie zu analysieren:

gcloud asset analyze-move --project=PROJECT_ID \
  (--destination-folder=FOLDER_ID \
    | --destination-organization=ORGANIZATION_ID)

Wenn Sie die Auswirkungen des Verschiebens eines Projekts in einen anderen Ordner analysieren möchten, führen Sie den Befehl mit --destination-folder aus:

gcloud asset analyze-move --project=PROJECT_ID \
  --destination-folder=FOLDER_ID

Wenn Sie die Auswirkungen des Verschiebens eines Projekts in eine andere Organisation analysieren möchten, führen Sie den Befehl mit --destination-organization aus:

gcloud asset analyze-move --project=PROJECT_ID \
  --destination-organization=ORGANIZATION_ID

Wobei:

  • PROJECT_ID ist die eindeutige Projekt-ID des Projekts, das Sie migrieren. Beispiel: --myProject123.

  • FOLDER_ID ist die numerische Ordner-ID des Zielordners, für den die Analyse durchgeführt werden soll. Beispiel: 45678901123.

  • ORGANIZATION_ID ist die numerische Organisations-ID der Zielorganisation, für die die Analyse durchgeführt werden soll. Beispiel: 78901123456.

API

Wenn Sie die Auswirkungen der Migration eines Projekts von seiner aktuellen Position in der Ressourcenhierarchie analysieren möchten, ohne die Verschiebung durchzuführen, verwenden Sie die Methode cloudasset.analyzeMove:

GET https://cloudasset.googleapis.com/v1/{resource=*/*}: \
  analyzeMove?destinationParent=DESTINATION_NAME

Wobei:

  • resource ist der Name der Ressource, für die die Analyse durchgeführt werden soll. Es werden nur Projektressourcen unterstützt. Daher muss dies die Projekt-ID oder eine Projektnummer sein. Beispiel: projects/my-project-idoder projects/12345.

  • DESTINATION_NAME ist der Name des Ordners oder der Organisationsressource inGoogle Cloud , der bzw. die die Zielressource übergeordnet werden soll. Die Analyse wird zu den Auswirkungen des Verschiebens der Ressource zum angegebenen übergeordneten Ziel durchgeführt. Das Ziel muss eine Ordnernummer oder eine Organisationsressourcennummer sein. Beispiel: folders/123 oder organizations/123.

Analyseantworten verschieben

Die Antwort, die Sie von der Move Analysis API erhalten, wird nach Dienstname gruppiert. Unter jedem Dienst befindet sich eine Liste von Warnungen und Blockierungen, die für diese Projektmigration gelten. Die Blockierungen, die von dieser Analyse zurückgegeben werden, bedeuten, dass die Projektmigration zur Laufzeit blockiert wird, wenn Sie mit dem Verschieben fortfahren, bevor Sie diese beheben.

Fehlerbehebung

Wenn die Move Analysis API einen Fehler zurückgibt, enthält sie einen standardmäßigen gRPC-Code sowie eine Nachricht, die den Grund für das Scheitern der Analyse des Projekts durch die Move Analysis API beschreibt.

In der folgenden Tabelle werden die Fehlercodes beschrieben, die von der Move Analysis API möglicherweise zurückgegeben werden:

Fehlername Fehlercode Beschreibung
Ungültiges Argument 3 Wird zurückgegeben, wenn Sie die API für ein Projekt mit einem ungültigen Argument aufrufen, z. B. mit einem falschen Ressourcennamen.
Berechtigung verweigert 7 Wird zurückgegeben, wenn Sie nicht die erforderlichen Berechtigungen zum Ausführen der Analyse haben oder das Quellprojekt nicht vorhanden ist.
Intern 13 Wird zurückgegeben, wenn bei einem Aufruf an ein Richtliniensystem wie der Identitäts- und Zugriffsverwaltung oder der Organisationsrichtlinie ein Problem auftritt. Das bedeutet nicht, dass die Migration nicht möglich ist. Sie können die Analyse wiederholen, nachdem Sie den Dienst auf einen Ausfall überprüft haben.
Nicht verfügbar 14 Wird zurückgegeben, wenn ein internes System nicht synchron ist. Das bedeutet nicht, dass die Migration nicht möglich ist. Sie können die Analyse wiederholen.
Nicht authentifiziert 16 Wird zurückgegeben, wenn Sie nicht die richtigen Anmeldedaten für diese Analyse angegeben haben.

Beispiel für Fehlermeldung

Das folgende Beispiel zeigt den Fehlercode, der einem Nutzer zurückgegeben wird, der nicht die Berechtigung cloudasset.assets.analyzeMove für das zu migrierende Projekt hat:

{
  "error": {
  "code": 403,
  "message": "Failed to fetch Project: projects/test-project-service-3 to perform
              move analysis.",
  "status": "PERMISSION_DENIED"}
}

Einige Richtliniensysteme analysieren die Ressourcenverschiebung möglicherweise nicht. Das folgende Beispiel zeigt den vom hierarchischen Firewalldienst zurückgegebenen Fehler, wenn der Nutzer die Berechtigung compute.organizations.setSecurityPolicy für das zu migrierende Projekt nicht hat:

{
  "moveAnalysis": [{
    "displayName": "name hidden",
    "analysis": {
      "warnings": [{
        "detail": "details hidden"
      }]
    }
  }, {
    "displayName": "name hidden",
    "analysis": {
      "warnings": [{
        "detail": "details hidden"
      }]
    }
  }, {
    "displayName": "Hierarchical Firewall",
    "error": {
      "code": 7,
      "message": "Failed to retrieve inherited security policies to perform
                  analysis. Required 'compute.organizations.setSecurityPolicy'
                  permission for {resource ID}"
     }}]
}

Nächste Schritte

Die Move Analysis API liefert Details, die Ihnen helfen, Blockierungen und andere Probleme beim Verschieben eines Projekts von einer Organisationsressource zu einer anderen zu beheben. Weitere Informationen zum Migrieren von Projekten zwischen Organisationsressourcen finden Sie unter Projekte zwischen Organisationsressourcen migrieren.