Questo documento descrive come autenticarsi in Trusted Cloud by S3NS quando utilizzi Terraform.
Credenziali predefinite dell'applicazione (ADC) sono il modo consigliato per autenticarsi a Trusted 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 ADC, Terraform può essere eseguito in un ambiente di sviluppo o di produzione senza modificare la modalità di autenticazione ai servizi e alle APITrusted Cloud by S3NS . Per informazioni su dove e in quale ordine ADC cerca le credenziali, 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.
Autenticazione con un account utente
Per configurare ADC con un account utente, utilizza Google Cloud CLI:
-
Install the Google Cloud CLI, and then sign in to the gcloud CLI with your federated identity. After signing in, initialize the Google Cloud CLI by running the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Viene visualizzata una schermata di accesso. Dopo l'accesso, le tue credenziali vengono archiviate nel file delle credenziali locali utilizzato da ADC.
Autenticazione tramite l'impersonificazione del account di servizio
Puoi utilizzare la rappresentazione dell'identità del account di servizio per configurare un file ADC locale. Terraform utilizza automaticamente queste credenziali.
Assicurati di disporre del ruolo IAM Creatore token service account (
roles/iam.serviceAccountTokenCreator
) per il account di servizio che stai rappresentando. Per maggiori informazioni, vedi Ruoli obbligatori.Utilizza l'imitazione del account di servizio per creare un file ADC locale eseguendo il seguente 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 Trusted Cloud
Quando esegui Terraform in un ambiente di sviluppo basato sul cloud come Cloud Shell, lo strumento utilizza le credenziali che hai fornito al momento dell'accesso per l'autenticazione. Trusted Cloud
Quando utilizzi Terraform con servizi Trusted Cloud come Compute Engine, App Engine e Cloud Run, 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 ilaccount di serviziot 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 Trusted Cloud.
Per assistenza nella determinazione dei ruoli da fornire al account di servizio, consulta Scegliere ruoli predefiniti.
Per informazioni sulle risorse a cui puoi collegare un account di servizio e assistenza per il collegamento del account di servizio alla risorsa, consulta la documentazione IAM sul collegamento di un service account.
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
To provide access to your project and your resources, grant a role to the service account:
gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.s3ns-system.iam.gserviceaccount.com" --role=ROLE
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service accountROLE
: the role to grant
- To grant another role to the service account, run the command as you did in the previous step.
-
Grant the required role to the principal that will attach the service account to other resources.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.s3ns-system.iam.gserviceaccount.com --member="principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ID" --role=roles/iam.serviceAccountUser
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service account.PROJECT_ID
: the project ID where you created the service account.POOL_ID
: a workforce identity pool ID.-
SUBJECT_ID
: a subject ID; typically the identifier for a user in a workforce identity pool. For details, see Represent workforce pool users in IAM policies.
Autenticarsi quando esegui Terraform on-premise o su un altro provider cloud
Se esegui l'applicazione al di fuori di Trusted Cloud, devi fornire credenziali riconosciute da Trusted Cloud per utilizzare i serviziTrusted Cloud .
Autenticarsi utilizzando la federazione delle identità per i carichi di lavoro
Il modo preferito per autenticarsi con Trusted Cloud utilizzando le credenziali di
un IdP esterno è utilizzare
la federazione delle identità del 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 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 nuvole.
Autenticarsi 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 dell'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.
Set the environment variable
GOOGLE_APPLICATION_CREDENTIALS
to the path of the JSON file that contains your credentials. This variable applies only to your current shell session, so if you open a new session, set the variable again.
Autenticarsi ai backend Cloud Storage
Terraform ti 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 Trusted Cloud
- Scopri di più sui comandi Terraform di base.