Analisi dello spostamento dei progetti

L'API Analyze Move di Cloud Asset Inventory ti consente di generare un report dettagliato di avvisi e blocchi nei sistemi di policy critici prima di spostare un progetto. Questo report ti aiuta a identificare potenziali conflitti tra le policy e a risolvere i problemi prima di avviare la migrazione.

Abilita API

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

Questo progetto consumer può essere diverso da quello 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 i ruoli e le autorizzazioni obbligatori che devono essere concessi nel progetto di origine che intendi analizzare.

Autorizzazioni richieste

Per eseguire un'analisi dello spostamento del progetto, devi disporre di un ruolo che conceda l'autorizzazione cloudasset.assets.analyzeMove, ad esempio Visualizzatore asset Cloud o Visualizzatore. Puoi concedere questo ruolo al progetto o alla cartella o alla risorsa organizzazione padre.

Per ricevere l'analisi di un servizio, devi anche disporre dei ruoli correlati a quel servizio. Queste autorizzazioni includono:

  • Se vuoi visualizzare le policy di autorizzazione ereditate dalla risorsa dell'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 le policy di autorizzazione ereditate dalla cartella principale del progetto di origine, devi disporre dell'autorizzazione resourcemanager.folders.getIamPolicy per la cartella principale del progetto di origine.

  • Se vuoi visualizzare le policy di autorizzazione del progetto, devi disporre dell'autorizzazione resourcemanager.projects.getIamPolicy per il progetto di origine.

  • Se vuoi visualizzare le policy di negazione ereditate dalla risorsa dell'organizzazione padre del progetto di origine, devi disporre dell'autorizzazione iam.denypolicies.get per la risorsa dell'organizzazione padre del progetto di origine.

  • Se vuoi visualizzare le policy dell'organizzazione ereditate in questo progetto, devi disporre dell'autorizzazione orgpolicy.policy.get per il progetto di origine.

  • Se vuoi visualizzare le policy del firewall di Compute Engine ereditate in questo progetto, devi disporre dell'autorizzazione compute.organizations.setSecurityPolicy per la cartella di origine o la risorsa dell'organizzazione. Sebbene questa autorizzazione contenga "set", è necessaria per recuperare e visualizzare le policy di sicurezza ereditate.

  • Se vuoi visualizzare i tag ereditati in questo progetto, devi disporre dell'autorizzazione resourcemanager.hierarchyNodes.listEffectiveTags sul progetto di origine o sui 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 l'impatto 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 l'impatto dello spostamento di un progetto in un'altra organizzazione, esegui il comando con --destination-organization:

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

Dove:

  • PROJECT_ID è l'ID progetto 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 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 di progetto, quindi deve essere l'ID progetto o un numero di progetto. Ad esempio, projects/my-project-id o projects/12345.

  • DESTINATION_NAME è il nome della Google Cloud risorsa organizzazione o della cartella a cui assegnare nuovamente come risorsa principale la risorsa di destinazione. L'analisi verrà eseguita sugli impatti del trasferimento della risorsa all'elemento principale 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.

Risposte di Move Analysis

La risposta che ricevi dall'API Move Analysis è raggruppata per nome del servizio. Sotto ogni servizio è riportato un elenco di avvisi e blocchi applicabili alla migrazione di questo progetto. Se questa analisi restituisce dei bloccanti, significa che la migrazione del progetto verrà bloccata in fase di esecuzione se procedi con lo spostamento prima di risolverli.

Risolvere gli errori

Se l'API Move Analysis restituisce un errore, questo include un codice gRPC standard e un messaggio che descrive il motivo per cui l'API Move Analysis non è riuscita ad analizzare il progetto.

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

Nome errore Codice di errore Descrizione
Argomento non valido 3 Viene restituito se chiami l'API su un progetto con un argomento non valido, ad esempio un nome di risorsa errato.
Autorizzazione negata 7 Viene restituito se non disponi delle autorizzazioni necessarie per eseguire l'analisi o se il progetto di origine non esiste.
Interno 13 Restituito se si verifica un problema con una chiamata a un sistema di policy come Identity and Access Management o una policy dell'organizzazione. Questo non indica che la migrazione non è possibile e puoi riprovare l'analisi dopo aver verificato se il servizio è interessato da un'interruzione.
Non disponibile 14 Viene restituito se un sistema interno non è sincronizzato. Questo non significa che la migrazione non è possibile e puoi riprovare l'analisi.
Non autenticato 16 Viene 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 sul 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 sistemi di policy potrebbero non riuscire ad analizzare lo spostamento delle risorse. L'esempio seguente mostra l'errore restituito dal servizio Firewall gerarchico quando l'utente non dispone dell'autorizzazione compute.organizations.setSecurityPolicy sul 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 fattori di blocco e altri problemi durante lo spostamento di un progetto da una risorsa organizzazione a un'altra. Per saperne di più sulla migrazione dei progetti tra le risorse dell'organizzazione, consulta Esegui la migrazione dei progetti tra le risorse dell'organizzazione.