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 policy 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 intendi 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 richiesti che devono essere concessi al 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 risorsa dell'organizzazione o della cartella principale.
Per ricevere l'analisi di un servizio, devi disporre anche dei ruoli correlati a questi servizi. Queste autorizzazioni includono le seguenti:
Se vuoi visualizzare le policy di autorizzazione ereditate dalla risorsa dell'organizzazione principale del progetto di origine, devi disporre dell'autorizzazione
resourcemanager.organizations.getIamPolicyper la risorsa dell'organizzazione principale 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.getIamPolicyper la cartella principale del progetto di origine.Se vuoi visualizzare le policy di autorizzazione per il progetto, devi disporre dell'autorizzazione
resourcemanager.projects.getIamPolicyper il progetto di origine.Se vuoi visualizzare le policy di negazione ereditate dalla risorsa dell'organizzazione principale del progetto di origine, devi disporre dell'autorizzazione
iam.denypolicies.getper la risorsa dell'organizzazione principale del progetto di origine.Se vuoi visualizzare le policy dell'organizzazione ereditate in questo progetto, devi disporre dell'autorizzazione
orgpolicy.policy.getper il progetto di origine.Se vuoi visualizzare le policy firewall di Compute Engine ereditate in questo progetto, devi disporre dell'autorizzazione
compute.organizations.setSecurityPolicyper la risorsa dell'organizzazione o della cartella di origine. 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.listEffectiveTagsper il progetto di origine o i 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 l'impatto 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 una cartella diversa, 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'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 l'impatto della migrazione di un progetto dalla sua posizione attuale in nella gerarchia delle risorse senza eseguire lo spostamento, utilizza il 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, quindi deve essere l'ID progetto o un numero di progetto. Ad esempio,projects/my-project-idoprojects/12345.DESTINATION_NAMEè il nome della Google Cloud risorsa dell'organizzazione o della cartella a cui riassegnare 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/123oorganizations/123.
Risposte all'analisi dello spostamento
La risposta che ricevi dall'API Move Analysis è raggruppata per nome del servizio. Sotto ogni servizio è riportato un elenco di avvisi e blocchi applicabili a questa migrazione del progetto. Tutti i blocchi restituiti da questa analisi indicano che la migrazione del progetto verrà bloccata in fase di runtime se procedi con lo spostamento prima di risolverli.
Risolvere gli errori
Se l'API Move Analysis restituisce un errore, include un codice gRPC standard, nonché un messaggio che descrive il motivo per cui l'API Move Analysis non è riuscita ad analizzare il progetto.
La seguente tabella descrive i codici di errore che potrebbero essere restituiti dall'API Move Analysis:
| Nome errore | Codice di errore | Descrizione |
|---|---|---|
| Argomento non valido | 3 | Restituito se chiami l'API su un progetto con un argomento non valido, ad esempio un nome risorsa errato. |
| Autorizzazione negata | 7 | 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 policy dell'organizzazione. Questo non indica che la migrazione non è possibile e puoi riprovare l'analisi dopo aver verificato se il servizio è inattivo. |
| Non disponibile | 14 | Restituito se un sistema interno non è sincronizzato. Questo non indica che la migrazione non è possibile e puoi riprovare l'analisi. |
| Non autenticato | 16 | Restituito se non hai fornito le credenziali corrette per eseguire questa analisi. |
Messaggio di errore di esempio
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 sistemi di policy potrebbero non riuscire ad analizzare lo spostamento della risorsa. L'esempio seguente 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 consentono di 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 dei progetti tra le risorse dell'organizzazione, consulta la sezione Eseguire la migrazione dei progetti tra le risorse dell'organizzazione.