Questo documento descrive come eseguire l'autenticazione in Google Cloud quando utilizzi Terraform.
Le Credenziali predefinite dell'applicazione sono il modo consigliato per autenticarsi in Google Cloud quando utilizzi Terraform. Le credenziali predefinite dell'applicazione sono una strategia utilizzata dalle librerie di autenticazione per trovare automaticamente le credenziali in base all'ambiente dell'applicazione. Quando utilizzi le ADC, Terraform può essere eseguito in un ambiente di sviluppo o di produzione senza modificare la modalità di autenticazione ai servizi e alle APIGoogle Cloud . Per informazioni su dove ADC cerca le credenziali e in quale ordine, consulta Come funzionano le credenziali predefinite dell'applicazione.
Esegui l'autenticazione quando utilizzi Terraform in un ambiente di sviluppo locale
Quando utilizzi Terraform in un ambiente di sviluppo locale, ad esempio una workstation di sviluppo, puoi autenticarti utilizzando le credenziali associate al tuo account utente o al tuo service account.
Autenticarsi utilizzando un account utente
Per configurare ADC con un account utente, utilizza Google Cloud CLI:
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea le credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Viene visualizzata una schermata di accesso. Dopo aver eseguito l'accesso, le tue credenziali vengono archiviate nel file delle credenziali locali utilizzato da ADC.
Esegui l'autenticazione utilizzando la simulazione dell'identità dei account di servizio
Puoi utilizzare la simulazione dell'identità dei account di servizio per configurare un file ADC locale. Terraform utilizza automaticamente queste credenziali.
Assicurati di disporre del ruolo IAM Service Account Token Creator (
roles/iam.serviceAccountTokenCreator) per il account di servizio che stai rappresentando. Per saperne di più, consulta Ruoli obbligatori.Utilizza la simulazione dell'identità del account di servizio per creare un file ADC locale eseguendo questo comando:
gcloud auth application-default login --impersonate-service-account SERVICE_ACCT_EMAIL
Se vuoi consentire agli utenti di utilizzare un'origine di autenticazione principale condivisa
e unaccount di serviziot variabile per ambiente, imposta il campo
impersonate_service_account
nel file di configurazione Terraform:
provider "google" {
impersonate_service_account = "SERVICE_ACCT_EMAIL"
}
Autenticarsi durante l'esecuzione di Terraform su Google Cloud
Quando esegui Terraform in un Google Cloud ambiente di sviluppo basato sul cloud come Cloud Shell, lo strumento utilizza le credenziali che hai fornito al momento dell'accesso per l'autenticazione.
Quando utilizzi Terraform con servizi Google Cloud come Compute Engine, App Engine e Cloud Run Functions, puoi collegare un service account gestito dall'utente alle risorse. In genere, il collegamento di unaccount di serviziot è supportato quando le risorse del servizio possono eseguire o includere codice dell'applicazione. Quando colleghi un account di servizio a una risorsa, il codice in esecuzione sulla risorsa può utilizzare il account di servizio come identità.
Il collegamento di un account di servizio gestito dall'utente è il modo preferito per fornire le credenziali ad ADC per il codice di produzione in esecuzione su Google Cloud.
Per assistenza nella determinazione dei ruoli da fornire al account di servizio, consulta Scegliere i ruoli predefiniti.
Per informazioni sulle risorse a cui puoi collegare un account di servizio e per assistenza con il collegamento del account di servizio alla risorsa, consulta la documentazione IAM sul collegamento di un service account.
Configura l'autenticazione:
-
Assicurati di disporre del ruolo IAM Creazione service account
(
roles/iam.serviceAccountCreator) e del ruolo Amministratore IAM progetto (roles/resourcemanager.projectIamAdmin). Scopri come concedere i ruoli. -
Crea l'account di servizio:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Sostituisci
SERVICE_ACCOUNT_NAMEcon un nome per il account di servizio. -
Per fornire l'accesso al tuo progetto e alle tue risorse, concedi un ruolo al account di servizio:
gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE
Sostituisci quanto segue:
SERVICE_ACCOUNT_NAME: il nome del account di servizioPROJECT_ID: l'ID progetto in cui hai creato il account di servizioROLE: il ruolo da concedere
- Per concedere un altro ruolo al account di servizio, esegui il comando come nel passaggio precedente.
-
Concedi il ruolo richiesto all'entità che collegherà ilaccount di serviziot ad altre risorse.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Sostituisci quanto segue:
SERVICE_ACCOUNT_NAME: il nome del account di servizioPROJECT_ID: l'ID progetto in cui hai creato il account di servizioUSER_EMAIL: l'indirizzo email di un Account Google
Autenticarsi quando esegui Terraform on-premise o su un altro cloud provider
Se esegui l'applicazione al di fuori di Google Cloud, devi fornire credenziali riconosciute da Google Cloud per utilizzare i serviziGoogle Cloud .
Esegui l'autenticazione utilizzando la federazione delle identità per i workload
Il modo preferito per autenticarsi con Google Cloud utilizzando le credenziali di
un IdP esterno è utilizzare la
federazione delle identità per i workload. Puoi creare un file di configurazione delle credenziali e impostare la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS in modo che rimandi a questo file. Questo
approccio è più sicuro della creazione di una chiave delaccount di serviziot. Per istruzioni
sulla configurazione della federazione delle identità per i workload per ADC, consulta
Federazione delle identità per i workload con altre cloud.
Esegui l'autenticazione utilizzando le chiavi del account di servizio
Quando esegui Terraform in un ambiente di sviluppo locale, on-premise o in un altro provider cloud, puoi creare unaccount di serviziot, concedergli i ruoli IAM richiesti dalla tua applicazione e creare una chiave per account di serviziount.
Per creare una chiave del account di servizio e renderla disponibile per ADC:
Crea un account di servizio con i ruoli necessari alla tua applicazione e una chiave per questo account di servizio seguendo le istruzioni riportate in Creazione di una account di servizio account.
Esegui l'autenticazione nei backend Cloud Storage
Terraform consente di configurare Cloud Storage come backend per archiviare i file di stato di Terraform. Per l'autenticazione a un backend Cloud Storage, utilizza uno dei metodi descritti in questa pagina. Per informazioni sulle variabili di configurazione relative all'autenticazione per i backend Cloud Storage, consulta la pagina dei backend Terraform per Cloud Storage.
Passaggi successivi
- Segui la guida rapida a Terraform per Google Cloud
- Scopri di più sui comandi Terraform di base.