Per utilizzare Infrastructure Manager per creare, aggiornare o eliminare un deployment, devi utilizzare un account di servizio. Infra Manager esegue Terraform utilizzando l'identità di questo account di servizio.
Non è necessario un account di servizio per visualizzare le informazioni sui deployment di Infra Manager.
Questa pagina spiega come configurare un account di servizio in modo da poter eseguire il deployment delle risorse con Infrastructure Manager.
Prima di iniziare
- Attiva il servizio Infra Manager.
- Crea un account di servizio o identificate un account di servizio esistente da utilizzare con Infra Manager.
Concedi l'accesso all'account di servizio
Per utilizzare Infrastructure Manager per creare, aggiornare o eliminare un deployment, un singolo utente deve avere accesso al account di servizio.
Concedi all'utente il ruolo IAM Utente account di servizio (roles/iam.serviceAccountUser
) per l'account di servizio.
Concedi le autorizzazioni per Infra Manager
Per utilizzare Infra Manager, l'account di servizio deve disporre del
ruolo Agente Infra Manager (roles/config.agent
).
Questo concede a Infra Manager le autorizzazioni per creare, aggiornare ed eliminare le risorse.
Per informazioni dettagliate su come concedere autorizzazioni agli account di servizio, consulta Gestire l'accesso agli account di servizio.
Concedi l'autorizzazione di lettura per il bucket di archiviazione
Puoi utilizzare un bucket di archiviazione per archiviare le configurazioni Terraform eseguite da Infra Manager.
Se utilizzi un bucket di archiviazione per le configurazioni e questo bucket si trova in un progetto diverso da quello in cui esegui Infra Manager, devi assicurarti che l'account di servizio che utilizzi per chiamare Infra Manager abbia l'autorizzazione di lettura per il bucket. Per informazioni dettagliate sulle autorizzazioni Cloud Storage, consulta Autorizzazioni IAM per Cloud Storage.
Se il bucket di archiviazione si trova nello stesso progetto di Infra Manager e hai concesso roles/config.agent
all'account di servizio, l'autorizzazione di lettura per il bucket è già attivata.
Per informazioni dettagliate sul caricamento di una configurazione in un bucket di archiviazione, consulta Caricare una configurazione Terraform.
Concedi le autorizzazioni per le risorse definite nella configurazione
Per creare e gestire le risorse Google Cloud definite nella configurazione Terraform, il account di servizio deve disporre delle autorizzazioni specifiche per queste risorse.
Autorizzazioni specifiche per le risorse Google Cloud definite nella configurazione Terraform di cui stai eseguendo il deployment. Ad esempio, l'autorizzazione per la creazione di un'istanza VM di Compute Engine è
compute.instances.create
.Autorizzazioni specifiche per le risorse Google Cloud che sono definite nella configurazione di Terraform del deployment che stai aggiornando.
Ad esempio, supponiamo che il tuo deployment provi una VM Compute Engine e poi aggiorni il deployment utilizzando una configurazione che non include una VM Compute Engine. In questo caso, quando aggiorni la revisione, l'account di servizio deve avere:
Autorizzazioni per le risorse definite nella nuova configurazione.
Autorizzazioni per le risorse eliminate, ad esempio la VM Compute Engine in questo esempio.
Per sapere quali autorizzazioni sono necessarie per le risorse nelle configurazioni Terraform, consulta Scegliere i ruoli predefiniti.
Per informazioni dettagliate su come concedere autorizzazioni agli account di servizio, consulta Gestire l'accesso agli account di servizio.
Concedi l'accesso ai progetti
Sono necessarie autorizzazioni aggiuntive se l'account di servizio si trova in un progetto diverso da quello in cui viene eseguito il servizio Infra Manager.
Per concedere queste autorizzazioni aggiuntive:
Nel progetto che contiene l'account di servizio, assicurati che il
iam.disableCrossProjectServiceAccountUsage
vincolo del criterio dell'organizzazione non sia applicato. Questo vincolo viene applicato per impostazione predefinita.Per disattivare questo vincolo dei criteri dell'organizzazione, esegui:
gcloud resource-manager org-policies disable-enforce iam.disableCrossProjectServiceAccountUsage --project=SERVICE_ACCOUNT_PROJECT_ID
Sostituisci SERVICE_ACCOUNT_PROJECT_ID con l'ID del progetto che contiene l'account di servizio.
Nel progetto che contiene l'account di servizio, concedi il ruolo
roles/iam.serviceAccountUser
all'agente di servizio Infra Manager del progetto in cui stai creando i deployment:gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:service-INFRA_MANAGER_PROJECT_NUMBER@gcp-sa-config.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountUser"
Sostituisci i valori segnaposto nel comando precedente con quanto segue:
- SERVICE_ACCOUNT_PROJECT_ID: l'ID del progetto che contiene l'account di servizio.
- INFRA_MANAGER_PROJECT_NUMBER: il numero del progetto in cui stai creando i deployment. Viene formato l'ID indirizzo email dell'agente di servizio:
service-INFRA_MANAGER_PROJECT_NUMBER@gcp-sa-config.iam.gserviceaccount.com
Per consentire a Infra Manager di creare job Cloud Build per conto dell'account di servizio, concedi all'account di servizio il ruolo
roles/iam.serviceAccountTokenCreator
. Questo ruolo è per l'agente di servizio Infra Manager del progetto in cui stai creando i deployment:gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:service-INFRA_MANAGER_PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountTokenCreator"
Passaggi successivi
- Scopri di più su IAM.
- Scopri di più su Terraform con Google Cloud.
- Esegui il deployment dell'infrastruttura utilizzando Infra Manager.
- Aggiorna un deployment.
- Visualizza lo stato di un deployment.