Analisi dello spostamento dei progetti

Questa guida descrive come utilizzare l'API Cloud Asset Inventory Analyze Move per ottenere un report dettagliato su avvisi e blocchi da un elenco di sistemi di criteri critici prima di spostare effettivamente il progetto.

Abilita API

Seleziona o crea un progetto come progetto consumer dell'API, abilita l'API Cloud Asset

Questo progetto consumer può essere diverso dal progetto che prevedi di analizzare ed eseguire la migrazione. Il progetto consumer verrà utilizzato per generare le credenziali per effettuare la richiesta API.

La sezione successiva descrive le autorizzazioni e i ruoli richiesti che devono essere concessi nel progetto di origine che prevedi di analizzare.

Assegnare le autorizzazioni

Per eseguire un'analisi dello spostamento di un progetto, devi avere un ruolo che conceda l'autorizzazione cloudasset.assets.analyzeMove, ad esempio Visualizzatore Cloud Asset o Visualizzatore.

Per ricevere analisi su un servizio, devi avere anche i ruoli correlati a quel servizio. Queste autorizzazioni includono:

  • Se vuoi visualizzare i criteri IAM ereditati dalla risorsa organizzazione padre del progetto di origine, devi disporre dell'autorizzazione resourcemanager.organizations.getIamPolicy per la risorsa dell'organizzazione padre del progetto di origine.

  • Se vuoi visualizzare i criteri IAM ereditati dalla cartella principale del progetto di origine, devi disporre dell'autorizzazione resourcemanager.folders.getIamPolicy nella cartella principale del progetto di origine.

  • Per visualizzare i criteri IAM sul progetto, devi disporre dell'autorizzazione resourcemanager.projects.getIamPolicy per il progetto di origine.

  • Se vuoi visualizzare i criteri dell'organizzazione ereditati in questo progetto, devi disporre dell'autorizzazione orgpolicy.policy.get nel progetto di origine.

  • Se vuoi visualizzare i criteri firewall di Compute Engine ereditati in questo progetto, devi disporre dell'autorizzazione compute.organizations.setSecurityPolicy nella cartella di origine o nella risorsa organizzazione.

  • Se vuoi visualizzare i tag ereditati in questo progetto, devi disporre dell'autorizzazione resourcemanager.hierarchyNodes.listEffectiveTags nel progetto di origine o nei relativi nodi predecessori.

Esegui l'analisi

Puoi utilizzare Google Cloud CLI o l'API per analizzare la migrazione di una risorsa dalla sua posizione attuale nella gerarchia delle risorse.

gcloud

Per analizzare gli impatti della migrazione di un progetto dalla sua posizione attuale nella gerarchia delle risorse, utilizza il comando gcloud asset analyze-move:

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

Per analizzare gli effetti dello spostamento di un progetto in un'altra cartella, esegui il comando con --destination-folder:

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

Per analizzare gli impatti dello spostamento di un progetto in un'organizzazione diversa, esegui il comando con --destination-organization:

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

Dove:

  • PROJECT_ID è l'ID univoco del progetto di cui stai eseguendo la migrazione. Ad esempio, --myProject123.

  • FOLDER_ID è l'ID numerico della cartella di destinazione su cui eseguire l'analisi. Ad esempio, 45678901123.

  • ORGANIZATION_ID è l'ID organizzazione numerico dell'organizzazione di destinazione su cui eseguire l'analisi. Ad esempio, 78901123456.

API

Per analizzare gli impatti della migrazione di un progetto dalla sua posizione attuale nella gerarchia delle risorse senza eseguire lo spostamento, utilizza il metodo cloudasset.analyzeMove:

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

Dove:

  • resource è il nome della risorsa su cui eseguire l'analisi. Sono supportate solo le risorse del progetto, pertanto deve essere l'ID progetto o un numero di progetto. Ad esempio, projects/my-project-id o projects/12345.

  • DESTINATION_NAME è il nome della cartella Google Cloud o della risorsa organizzazione di cui ripristinare il padre della risorsa di destinazione. L'analisi verrà eseguita sugli impatti dello spostamento della risorsa nel padre di destinazione specificato. La destinazione deve essere un numero di cartella o un numero di risorsa dell'organizzazione. Ad esempio, folders/123 o organizations/123.

Sposta risposte di analisi

La risposta che ricevi dall'API Move Analysis è raggruppata per nome del servizio. Sotto ogni servizio è presente un elenco di avvisi e blocchi applicabili a questa migrazione del progetto. Eventuali blocchi restituiti da questa analisi indicano che la migrazione del progetto verrà bloccata in fase di esecuzione se procedi con lo spostamento prima di risolverlo.

Risolvere gli errori

Se l'API Move Analysis restituisce un errore, questo include un codice gRPC standard e un messaggio che descrive il motivo dell'errore dell'API Move Analysis nell'analisi del progetto.

La seguente tabella descrive i codici di errore che potrebbero essere potenzialmente restituiti dall'API Move Analysis:

Nome errore Codice di errore Descrizione
Argomento non valido 3 Errore restituito se chiami l'API su un progetto con un argomento non valido, ad esempio un nome di risorsa errato.
Autorizzazione negata 7 Errore restituito se non hai le autorizzazioni necessarie per eseguire l'analisi o se il progetto di origine non esiste.
Origini 13 Errore restituito se si verifica un problema con una chiamata a un sistema di criteri, come Identity and Access Management o il criterio dell'organizzazione. Questo non indica che la migrazione non è possibile e puoi riprovare a eseguire l'analisi dopo aver controllato l'interruzione del servizio.
Non disponibile 14 Errore restituito se un sistema interno non è sincronizzato. Questo non indica che la migrazione non è possibile e puoi riprovare a eseguire l'analisi.
Non autenticato 16 Restituito se non hai fornito le credenziali corrette per eseguire questa analisi.

Esempio di messaggio di errore

L'esempio seguente mostra il codice di errore restituito per un utente che non dispone dell'autorizzazione cloudasset.assets.analyzeMove per il progetto di cui eseguire la migrazione:

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

Alcuni dei sistemi di criteri potrebbero non riuscire ad analizzare lo spostamento delle risorse. Il seguente esempio mostra l'errore restituito dal servizio firewall gerarchico quando l'utente non dispone dell'autorizzazione compute.organizations.setSecurityPolicy per il progetto di cui eseguire la migrazione:

{
  "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}"
     }}]
}

Passaggi successivi

L'API Move Analysis fornisce dettagli che aiutano a mitigare i blocchi e altri problemi durante lo spostamento di un progetto da una risorsa dell'organizzazione a un'altra. Per ulteriori informazioni sulla migrazione di progetti tra risorse dell'organizzazione, consulta Migrazione dei progetti.