Autenticazione per Terraform

Questo documento descrive come eseguire l'autenticazione in Cloud de Confiance by S3NS quando utilizzi Terraform.

Le Credenziali predefinite dell'applicazione (ADC) sono il modo consigliato per eseguire l'autenticazione in Cloud de Confiance quando utilizzi Terraform. ADC è una strategia utilizzata dalle librerie di autenticazione per trovare automaticamente le credenziali in base all'ambiente dell'applicazione. Quando utilizzi ADC, Terraform può essere eseguito in un ambiente di sviluppo o di produzione senza modificare la modalità di autenticazione aiCloud de Confiance by S3NS servizi e alle API. Per informazioni su dove ADC cerca le credenziali e in quale ordine, consulta Come funzionano le Credenziali predefinite dell'applicazione works.

Eseguire 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 eseguire l'autenticazione utilizzando le credenziali associate al tuo account utente o al tuo service account.

Eseguire l'autenticazione utilizzando un account utente

Per configurare ADC con un account utente, utilizza Google Cloud CLI:

  1. Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:

    gcloud init
  2. Crea le credenziali di autenticazione locali per il tuo account utente:

    gcloud auth application-default login

    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.

Eseguire 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.

  1. Assicurati di disporre del ruolo IAM Creatore token account di servizio (roles/iam.serviceAccountTokenCreator) per il service account di cui stai simulando l'identità. Per ulteriori informazioni, consulta Ruoli richiesti.

  2. Utilizza la simulazione dell'identità dei account di servizio per creare un file ADC locale eseguendo il comando seguente:

    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 un account di servizio variabile per ambiente, imposta il impersonate_service_account campo nel file di configurazione Terraform:

provider "google" {
  impersonate_service_account = "SERVICE_ACCT_EMAIL"
}

Eseguire l'autenticazione quando esegui Terraform su Cloud de Confiance

Quando esegui Terraform in un ambiente di sviluppo basato su Cloud de Confiance cloud come Cloud Shell, lo strumento utilizza le credenziali che hai fornito quando hai eseguito l'accesso per l'autenticazione.

Quando utilizzi Terraform con Cloud de Confiance servizi come Compute Engine, App Engine e le funzioni di Cloud Run, puoi collegare un service account gestito dall'utente alle risorse. In genere, il collegamento di un account di servizio è 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 Cloud de Confiance.

Per assistenza nella determinazione dei ruoli da fornire al tuo account di servizio, consulta Scegliere i ruoli predefiniti.

Per informazioni sulle risorse a cui puoi collegare un account di servizio e per assistenza nel collegamento del account di servizio alla risorsa, consulta la documentazione IAM sul collegamento di un service account.

Configura l'autenticazione:

  1. Assicurati di disporre del ruolo IAM Creazione account di servizio (roles/iam.serviceAccountCreator) e del ruolo Amministratore IAM progetto (roles/resourcemanager.projectIamAdmin). Scopri come concedere i ruoli.
  2. Crea l'account di servizio:

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

    Sostituisci SERVICE_ACCOUNT_NAME con un nome per il account di servizio.

  3. 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.s3ns.iam.gserviceaccount.com" --role=ROLE

    Sostituisci quanto segue:

    • SERVICE_ACCOUNT_NAME: il nome del account di servizio
    • PROJECT_ID: l'ID progetto in cui hai creato il account di servizio
    • ROLE: il ruolo da concedere
  4. Per concedere un altro ruolo al account di servizio, esegui il comando come nel passaggio precedente.
  5. Concedi il ruolo richiesto all'entità che collegherà il account di servizio ad altre risorse.

    gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com --member="principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ID" --role=roles/iam.serviceAccountUser

    Sostituisci quanto segue:

    • SERVICE_ACCOUNT_NAME: il nome del account di servizio.
    • PROJECT_ID: l'ID progetto in cui hai creato il account di servizio.
    • POOL_ID: l'ID di un pool di identità della forza lavoro.
    • SUBJECT_ID: l'ID di un soggetto, in genere l'identificatore di un utente in un pool di identità della forza lavoro. Per maggiori dettagli, consulta Rappresenta gli utenti del pool di forza lavoro nelle policy IAM.

Eseguire l'autenticazione quando esegui Terraform on-premise o su un altro cloud provider

Se esegui l'applicazione al di fuori di Cloud de Confiance, devi fornire credenziali riconosciute da Cloud de Confiance per utilizzare Cloud de Confiance i servizi.

Eseguire l'autenticazione utilizzando la federazione delle identità per i workload

Il modo preferito per eseguire l'autenticazione con Cloud de Confiance 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 al file. Questo approccio è più sicuro della creazione di una chiave del account di servizio. Per istruzioni sulla configurazione della federazione delle identità per i workload per ADC, consulta Federazione delle identità per i workload con altri cloud.

Eseguire l'autenticazione utilizzando le chiavi dei account di servizio

Quando esegui Terraform in un ambiente di sviluppo locale, on-premise o su un altro cloud provider, puoi creare un account di servizio, concedergli i ruoli IAM richiesti dalla tua applicazione e creare una chiave per il account di servizio.

Per creare una chiave del account di servizio e renderla disponibile per ADC:

  1. Crea un account di servizio con i ruoli richiesti dalla tua applicazione e una chiave per il account di servizio seguendo le istruzioni riportate in Creare una account di servizio account.

Eseguire l'autenticazione ai backend di Cloud Storage

Terraform ti consente di configurare Cloud Storage come backend per archiviare i file di stato di Terraform. Per eseguire l'autenticazione a un backend di Cloud Storage, utilizza uno dei metodi descritti in questa pagina. Per informazioni sulle variabili di configurazione relative all'autenticazione per i backend di Cloud Storage, consulta la pagina dei backend di Terraform per Cloud Storage.

Passaggi successivi