Questo documento riguarda solo l'autenticazione per Google Cloud CLI per accedere alle risorseGoogle Cloud . Se devi autenticare i workload utilizzando le librerie client Cloud o le librerie client delle API di Google, consulta Come funzionano le credenziali predefinite dell'applicazione.
Prima di iniziare
Se non hai mai utilizzato Google Cloud e vuoi solo iniziare a utilizzare i comandi gcloud CLI nel tuo ambiente di sviluppo locale, puoi inizializzare gcloud CLI con il seguente comando:
gcloud init
L'inizializzazione ti guida attraverso un flusso di autenticazione, configura una configurazione gcloud CLI e autorizza gcloud CLI ad agire per tuo conto. Non è necessario eseguire un passaggio di autenticazione separato.
Il resto di questo documento tratta scenari più complessi, come l'utilizzo di gcloud CLI con diversi tipi di principal, metodi di autenticazione appropriati per ambienti diversi, cambio di principal e gestione delle credenziali memorizzate.
Metodi di autenticazione
Tutti i comandi gcloud CLI devono autenticarsi alle Google Cloud API. Puoi autenticarti nei seguenti modi:
Autorizza e memorizza le credenziali: adatto per l'utilizzo da parte di persone in un ambiente di sviluppo locale. Puoi autorizzare gcloud CLI ad agire per conto di un principal utilizzando il comando
gcloud auth login. Dopo l'autenticazione iniziale, questo comando memorizza le credenziali nella directory di configurazione di gcloud CLI. gcloud CLI utilizza queste credenziali archiviate per l'autenticazione automatica per i comandi successivi fino alla scadenza della sessione o alla revoca dell'autorizzazione.Autenticati con un file delle credenziali: adatto ai workload in esecuzione al di fuori di Google Cloud. Puoi utilizzare le variabili di ambiente o le proprietà di configurazione di gcloud CLI per specificare un file di credenziali per l'autenticazione automatica. Questo file può essere uno dei seguenti:
Un file di configurazione delle credenziali della federazione delle identità per i workload.
Una chiave del account di servizio.
Fornisci un token di accesso: adatto per workflow automatizzati altamente isolati o sessioni stateless su macchine condivise. Puoi ignorare l'archivio credenziali fornendo un token di accesso direttamente a gcloud CLI. Puoi farlo impostando una variabile di ambiente specifica sulla stringa del token di accesso non elaborato o indirizzando gcloud CLI a un file contenente il token di accesso.
Dopo l'autenticazione, puoi facoltativamente consentire a gcloud CLI di simulare l'identità di un service account fornendo l'indirizzo email del service account.
Puoi utilizzare più metodi di autenticazione in un unico ambiente. Tuttavia,
per qualsiasi comando gcloud viene utilizzato un solo principal. Per determinare quale
principal utilizzare, gcloud CLI segue un
ordine di priorità.
Quando non è necessario autenticarsi
Non è necessario autenticarsi per gcloud CLI nelle seguenti situazioni:
- Subito dopo aver inizializzato gcloud CLI. L'autenticazione e l'autorizzazione sono incluse nella procedura di inizializzazione. Potresti comunque dover eseguire di nuovo l'autenticazione se devi accedere a risorse diverse utilizzando un principal diverso o se devi eseguire di nuovo l'autenticazione del principal.
- Quando utilizzi gcloud CLI da una risorsa che espone un server di metadati di Compute Engine. Sono incluse risorse come le istanze VM di Compute Engine, i servizi Cloud Run e le build Cloud Build. gcloud CLI esegue l'autenticazione utilizzando il account di servizio collegato alla VM ed è autorizzata ad accedere alle stesse risorse del service account entro i limiti di eventuali ambiti di accesso applicati.
- Quando utilizzi Cloud Shell. gcloud CLI esegue automaticamente l'autenticazione utilizzando l'entità con cui hai eseguito l'accesso alla console Google Cloud . Quando esegui un comando dell'interfaccia a riga di comando gcloud per la prima volta in una nuova sessione di Cloud Shell, ti viene chiesto di autorizzare Cloud Shell utilizzando questa entità.
Scegliere l'entità giusta per l'attività
Esistono diversi tipi di principal per l'utilizzo umano e i carichi di lavoro automatizzati. Il tipo di entità di servizio da utilizzare influisce sul modo in cui esegui l'autenticazione.
-
Account utente: si tratta di Account Google destinati a persone che svolgono attività interattive, come attività amministrative incidentali, configurazione non programmatica di servizi, test, sperimentazione e osservabilità. Google Cloud
L'autenticazione avviene come account utente con credenziali utente, ad esempio una password e un codice monouso.
-
Service account: si tratta di account specifici per Google Cloud che i workload possono utilizzare per accedere a servizi o risorse. In genere non esegui l'autenticazione direttamente come account di servizio. In alternativa, puoi collegare un account di servizio a una risorsa come una VM Compute Engine o utilizzare la simulazione dell'identità dei account di servizio.
-
Entità federate: si tratta di identità che fanno riferimento a utenti o service account in un provider di identità esterno. Esistono due tipi di entità federate supportate da Google Cloud, che hanno nomi simili:
-
Federazione delle identità per la forza lavoro: consente agli utenti umani di accedere a Google Cloud con identità gestite da un provider di identità esterno. Se la tua organizzazione ha già configurato il Single Sign-On (SSO), potresti utilizzare questo tipo di identità per l'autenticazione su Google Cloud.
Per utilizzare la federazione delle identità per la forza lavoro, il provider di identità deve supportare OpenID Connect (OIDC) o SAML 2.0.
-
Federazione delle identità per i workload: consente ai workload in esecuzione al di fuori di Google Cloud di operare su risorse Google Cloud .
Puoi utilizzare la federazione delle identità per i workload con i workload che eseguono l'autenticazione utilizzando certificati client X.509; che vengono eseguiti su Amazon Web Services (AWS) o Azure; Active Directory on-premise; servizi di deployment, come GitHub e GitLab; e con qualsiasi provider di identità che supporti OpenID Connect (OIDC) o Security Assertion Markup Language (SAML) V2.0.
-
Utilizzare gcloud CLI come utente
Per le attività interattive, in genere l'autenticazione viene eseguita con uno dei seguenti metodi:
Un account utente
Un'identità utente federata, che utilizza la federazione delle identità per la forza lavoro
Account utente
La modalità di autenticazione con un account utente per gcloud CLI dipende dall'installazione o meno di un browser web sul tuo dispositivo.
Il mio dispositivo ha un browser web
Per eseguire l'autenticazione con un account utente su un dispositivo con un browser web, completa i seguenti passaggi:
Esegui questo comando per avviare il processo:
gcloud auth loginSegui il flusso basato sul browser per autenticare e autorizzare gcloud CLI ad accedere alle risorse per tuo conto per i comandi futuri.
Il comando gcloud auth login memorizza le credenziali di accesso nella tua home directory. L'entità autenticata diventa l'entità attiva nella configurazione dell'interfaccia allagcloud CLId attiva. Se non vengono sostituite, gcloud CLI utilizza queste credenziali archiviate per accedere a Google Cloud.
Il mio dispositivo non ha un browser web
Se il dispositivo su cui devi utilizzare gcloud CLI non ha un browser web, puoi autenticarti con il tuo account utente su un altro dispositivo attendibile. Questa procedura cambia a seconda del software installato sull'altro dispositivo attendibile.
Eseguire l'autenticazione utilizzando un altro dispositivo attendibile
Seleziona il software disponibile sull'altro dispositivo attendibile.
gcloud CLI e un browser web
Utilizza il flag --no-browser per completare la procedura di autenticazione su
un altro dispositivo con un browser web e gcloud CLI
installato:
Esegui il seguente comando sul dispositivo originale su cui vuoi utilizzare gcloud CLI:
Linux e macOS
gcloud auth login \ --no-browserWindows (PowerShell)
gcloud auth login ` --no-browserCopia il comando
gcloudche inizia congcloud auth login --remote-bootstrap="da utilizzare sull'altro dispositivo.Vai a un altro dispositivo attendibile su cui sono installati sia un browser web sia gcloud CLI versione 372.0.0 o successive.
Nel terminale, esegui il comando che hai copiato in precedenza che inizia con
gcloud auth login --remote-bootstrap="e completa il flusso basato sul browser.Nel terminale, copia l'URL che inizia con
https://localhostda utilizzare sul dispositivo originale.Torna al dispositivo originale.
Nel terminale, al prompt, incolla l'URL
https://localhostche hai copiato in precedenza. Premi Invio sulla tastiera per completare la procedura.
Il comando gcloud auth login memorizza le credenziali di accesso nella tua home directory. L'entità autenticata diventa l'entità attiva nella configurazione dell'interfaccia allagcloud CLId attiva. Se non vengono sostituite, gcloud CLI utilizza queste credenziali archiviate per accedere a Google Cloud.
Solo browser web
Utilizza il flag --no-launch-browser per completare la procedura di autenticazione
utilizzando il browser web di un altro dispositivo:
Esegui il seguente comando sul dispositivo originale su cui vuoi utilizzare gcloud CLI:
Linux e macOS
gcloud auth login \ --no-launch-browserWindows (PowerShell)
gcloud auth login ` --no-launch-browserCopia l'URL che inizia con
https://accounts.google.com/o/oauth2/authda utilizzare sull'altro dispositivo.Vai a un altro dispositivo attendibile su cui è installato un browser web.
Apri un browser web, vai all'URL che hai copiato in precedenza e completa il flusso basato sul browser.
Copia il codice di verifica da utilizzare sul dispositivo originale.
Torna al dispositivo originale.
Nel terminale, al prompt, incolla il codice di verifica che hai copiato in precedenza. Premi Invio sulla tastiera per completare la procedura.
Il comando gcloud auth login memorizza le credenziali di accesso nella tua home directory. L'entità autenticata diventa l'entità attiva nella configurazione dell'interfaccia allagcloud CLId attiva. Se non vengono sostituite, gcloud CLI utilizza queste credenziali archiviate per accedere a Google Cloud.
Identità utente federate
Puoi utilizzare gcloud CLI con un'identità utente federata gestita in un provider di identità (IdP) esterno. Puoi farlo con la federazione delle identità per la forza lavoro.
Le seguenti istruzioni presuppongono che tu abbia già configurato un pool e un provider di federazione delle identità per la forza lavoro per funzionare con il tuo IdP.
Per utilizzare gcloud CLI con un'identità utente federata, crea un file di configurazione di accesso, quindi accedi utilizzando un flusso basato sul browser:
Esegui questo comando per creare un file di configurazione di accesso:
Linux e macOS
gcloud iam workforce-pools create-login-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \ --output-file=LOGIN_CONFIG_PATH
Windows (PowerShell)
gcloud iam workforce-pools create-login-config ` locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID ` --output-file=LOGIN_CONFIG_PATH
Sostituisci quanto segue:
WORKFORCE_POOL_ID: l'ID del pool di Federazione delle identità della forza lavoro.WORKFORCE_PROVIDER_ID: l'ID del provider di federazione delle identità per la forza lavoro.-
LOGIN_CONFIG_PATH: il percorso in cui scrivere il file di configurazione di accesso. Ad esempio,login-config.json.
Il file di configurazione dell'accesso contiene gli endpoint utilizzati da gcloud CLI per attivare il flusso di autenticazione basato su browser e impostare il pubblico sull'IdP configurato nel provider del pool di identità per la forza lavoro. Il file non contiene informazioni riservate.
Il contenuto del file di configurazione di accesso è simile al seguente:
{ "universe_domain": "googleapis.com", "universe_cloud_web_domain": "cloud.google", "type": "external_account_authorized_user_login_config", "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID", "auth_url": "https://auth.cloud.google/authorize", "token_url": "https://sts.googleapis.com/v1/oauthtoken", "token_info_url": "https://sts.googleapis.com/v1/introspect" }
Indica il file di configurazione di accesso con una variabile di ambiente, una proprietà nella configurazione gcloud CLI attiva oppure utilizzalo direttamente con il comando
gcloud auth login:Variabile di ambiente
Per utilizzare il file di configurazione dell'accesso con una variabile di ambiente, completa le seguenti istruzioni:
-
Imposta la variabile di ambiente
CLOUDSDK_AUTH_LOGIN_CONFIG_FILEsul percorso del file di configurazione di accesso. -
Esegui questo comando:
gcloud auth login
- gcloud CLI fa riferimento alla variabile di ambiente per trovare il file di configurazione di accesso, quindi avvia il processo di autenticazione. Segui il flusso basato sul browser per autenticare e autorizzare gcloud CLI ad accedere alle risorse per tuo conto per i comandi futuri.
Per interrompere l'utilizzo del file di configurazione di accesso per i comandi
gcloud auth login, cancella la variabile di ambienteCLOUDSDK_AUTH_LOGIN_CONFIG_FILE.Configurazione di gcloud CLI
Per utilizzare il file di configurazione dell'accesso con una proprietà di configurazione gcloud CLI, completa le seguenti istruzioni:
-
Imposta la proprietà
auth/login_config_filedella configurazione gcloud CLI attiva sul percorso del file di configurazione di accesso con il seguente comando:gcloud config set auth/login_config_file LOGIN_CONFIG_PATH
-
Esegui questo comando:
gcloud auth login
- gcloud CLI fa riferimento alla proprietà di configurazione per trovare il file di configurazione di accesso e avvia la procedura di autenticazione. Segui il flusso basato sul browser per autenticare e autorizzare gcloud CLI ad accedere alle risorse per tuo conto per i comandi futuri.
Per interrompere l'utilizzo del file di configurazione di accesso per i comandi
gcloud auth login, annulla l'impostazione della proprietà con il seguente comando:gcloud config unset auth/login_config_file
gcloud auth login
Per utilizzare il file di configurazione di accesso direttamente con il comando
gcloud auth login, completa le seguenti istruzioni:-
Se hai utilizzato il flag
--activatedurante la creazione del file di configurazione di accesso, esegui questo comando:gcloud auth login
-
Se non hai utilizzato il flag
--activatedurante la creazione del file di configurazione di accesso, esegui il seguente comando:Linux e macOS
gcloud auth login \ --login-config=LOGIN_CONFIG_PATH
Windows (PowerShell)
gcloud auth login ` --login-config=LOGIN_CONFIG_PATH
Sostituisci LOGIN_CONFIG_PATH con il percorso del file di configurazione di accesso.
Il comando gcloud auth login memorizza le credenziali di accesso nella tua home directory. L'entità autenticata diventa l'entità attiva nella configurazione dell'interfaccia allagcloud CLId attiva. Se non vengono sostituite, gcloud CLI utilizza queste credenziali archiviate per accedere a Google Cloud.
-
Imposta la variabile di ambiente
Utilizzare gcloud CLI con i carichi di lavoro
Per i workload automatizzati, in genere l'autenticazione viene eseguita con uno dei seguenti metodi:
Un'identità federata per i Workload Identity, che utilizza la federazione delle identità per i workload
Un account di servizio, utilizzando la rappresentazione
Identità di workload federate
Puoi utilizzare gcloud CLI con un'identità federata per i workload. Per farlo, utilizza la federazione delle identità per i workload.
Un workload può accedere alle risorse Google Cloud direttamente agendo come un principal definito da un pool di identità del workload oppure assumere l'identità di un account di servizio collegato a un pool di identità del workload.
Ti consigliamo di utilizzare il metodo di accesso diretto per evitare service account con autorizzazioni eccessive e per registrare l'accesso alle risorse utilizzando l'identificatore dell'entità federata. Utilizza la simulazione dell'identità del account di servizio solo quando le Google Cloud API non supportano la federazione delle identità per i workload.
Le seguenti istruzioni presuppongono che tu abbia già configurato un pool e un provider di federazione delle identità per i carichi di lavoro per funzionare con il tuo IdP.
Crea un file di configurazione delle credenziali per la federazione delle identità per i carichi di lavoro seguendo le istruzioni per il provider di identità supportato.
Definisci il percorso del file di configurazione delle credenziali in una variabile di ambiente, come proprietà nella configurazione di gcloud CLI attiva o con il comando
gcloud auth login:Variabile di ambiente
Imposta la variabile di ambiente
CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDEsul percorso del file di configurazione delle credenziali. La gcloud CLI fa riferimento al file ogni volta che esegue un comando e ottiene una credenziale dal tuo IdP. Questa credenziale viene scambiata con un token di accesso a Google Cloud.Per non utilizzare più il file di configurazione delle credenziali, cancella la variabile di ambiente
CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE.Configurazione di gcloud CLI
Imposta la proprietà
auth/credential_file_overridedella configurazione dell'interfaccia a riga di comando gcloud attiva sul percorso del file di configurazione delle credenziali con il seguente comando:gcloud config set auth/credential_file_override CONFIGURATION_PATHSostituisci
CONFIGURATION_PATHcon il percorso del file di configurazione delle credenziali.Per interrompere l'utilizzo del file di configurazione delle credenziali per impostazione predefinita per i comandi
gcloud, annulla l'impostazione della proprietà con il seguente comando:gcloud config unset auth/credential_file_overridegcloud auth login
Esegui questo comando utilizzando il flag
--cred-file:Linux e macOS
gcloud auth login \ --cred-file=CONFIGURATION_PATHWindows (PowerShell)
gcloud auth login ` --cred-file=CONFIGURATION_PATHSostituisci
CONFIGURATION_PATHcon il percorso di un file di configurazione delle credenziali.Il comando gcloud auth login memorizza le credenziali di accesso nella tua home directory. L'entità autenticata diventa l'entità attiva nella configurazione dell'interfaccia allagcloud CLId attiva. Se non vengono sostituite, gcloud CLI utilizza queste credenziali archiviate per accedere a Google Cloud.
Service account
Puoi utilizzare gcloud CLI con un account di servizio nei seguenti modi:
Su una risorsa che espone un server metadati di Compute Engine, ad esempio un'istanza VM di Compute Engine o un servizio Cloud Run. Per impostazione predefinita, gcloud CLI utilizza il account di servizio collegato alla risorsa per l'autenticazione.
Utilizzando un'altra entità per rappresentare un account di servizio.
Utilizzando una chiave del account di servizio.
Simulazione dell'identità dei service account
Per l'accesso alle risorse che normalmente non è disponibile per la tua entità, ti consigliamo di gestire l'escalation dei privilegi con Privileged Access Manager anziché utilizzare la simulazione dell'identità del service account.
Se Privileged Access Manager non è adatto al tuo caso d'uso, completa i seguenti passaggi per utilizzare gcloud CLI con un account di servizio:
Per rappresentare un account di servizio, assicurati che l'API Service Account Credentials sia abilitata nel tuo progetto.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (
roles/serviceusage.serviceUsageAdmin), che include l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli.Scegli un'entità da utilizzare per simulare l'identità di un account di servizio.
-
Per assicurarti che il principal disponga dell'autorizzazione necessaria per rappresentare un account di servizio, chiedi all'amministratore di concedere al principal il ruolo IAM Creatore token service account (
roles/iam.serviceAccountTokenCreator) nel account di servizio. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.Questo ruolo predefinito contiene l'autorizzazione
iam.serviceAccounts.getAccessTokennecessaria per assumere l'identità di un account di servizio.L'amministratore potrebbe anche essere in grado di concedere al principal questa autorizzazione tramite ruoli personalizzati o altri ruoli predefiniti.
Esegui l'autenticazione per gcloud CLI con l'entità che hai scelto in precedenza, che si tratti di un account utente, identità utente federata, identità federata del workload o un altro account di servizio.
Scegli un account di servizio da rappresentare. Trova un service account esistente o creane uno nuovo.
Copia l'indirizzo Email del account di servizio.
Scegli se simulare l'identità del account di servizio per tutti i comandi o solo per un singolo comando:
Tutti i comandi
Per utilizzare la simulazione dell'identità del account di servizio con gcloud CLI per i comandi futuri, puoi impostare una variabile di ambiente o una proprietà nella configurazione gcloud CLI attiva:
Variabile di ambiente: imposta la variabile di ambiente
CLOUDSDK_AUTH_IMPERSONATE_SERVICE_ACCOUNTsull'indirizzo email del account di servizio.Per interrompere l'utilizzo del account di servizio, cancella la variabile di ambiente
CLOUDSDK_AUTH_IMPERSONATE_SERVICE_ACCOUNT.Configurazione di gcloud CLI: imposta la proprietà
auth/impersonate_service_accountdella configurazione di gcloud CLI attiva con il seguente comando:gcloud config set auth/impersonate_service_account SERVICE_ACCOUNT_EMAILSostituisci
SERVICE_ACCOUNT_EMAILcon l'indirizzo email del account di servizio.Per interrompere l'utilizzo della simulazione dell'identità del account di servizio per impostazione predefinita per i comandi
gcloud, annulla l'impostazione della proprietà con questo comando:gcloud config unset auth/impersonate_service_account
Singolo comando
Per utilizzare la simulazione dell'identità del account di servizio con gcloud CLI per un singolo comando, puoi aggiungere il flag
--impersonate-service-accounta un comando di servizio gcloud CLI.Ad esempio, per elencare le istanze VM di Compute Engine utilizzando la simulazione dell'identità deiaccount di serviziot, esegui questo comando:
Linux e macOS
gcloud compute instances list \ --impersonate-service-account=SERVICE_ACCOUNT_EMAILWindows (PowerShell)
gcloud compute instances list ` --impersonate-service-account=SERVICE_ACCOUNT_EMAILSostituisci
SERVICE_ACCOUNT_EMAILcon l'indirizzo email del account di servizio.
Chiave service account
Ti consigliamo di utilizzare la federazione delle identità per i workload per la maggior parte dei workload eseguiti al di fuori di Google Cloud. Utilizza le chiavi del account di servizio solo se il tuo workload viene eseguito in un ambiente esterno isolato che non supporta la federazione delle identità per i workload.
La federazione delle identità per i workload offre i seguenti vantaggi:
L'accesso alle risorse viene concesso tramite Identity and Access Management (IAM), con i carichi di lavoro trattati come entità individuali. Ciò significa che non devi concedere troppe autorizzazioni a unaccount di serviziot per più casi d'uso.
Puoi controllare quale workload esegue quale attività; le azioni non sono nascoste dietro un indirizzo email delaccount di serviziot.
La federazione delle identità per i workload utilizza token di accesso di breve durata per ridurre il rischio di esfiltrazione. Le chiavi del service account non scadono a meno che non vengano revocate manualmente.
Per utilizzare un account di servizio con gcloud CLI per i comandi futuri, svolgi le seguenti operazioni:
Crea una chiave dell'account di servizio e salvala come file in una posizione sicura del tuo ambiente.
Definisci il percorso del file delle chiavi del account di servizio in una variabile di ambiente, come proprietà nella configurazione attiva di gcloud CLI o con il comando
gcloud auth login:Variabile di ambiente: imposta la variabile di ambiente
CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDEsul percorso del file della chiave del account di servizio.Per interrompere l'utilizzo della chiave del account di servizio, deseleziona la variabile di ambiente
CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE.Configurazione di gcloud CLI: imposta la proprietà
auth/credential_file_overridedella configurazione di gcloud CLI attiva sul percorso della chiave del account di servizio con questo comando:gcloud config set auth/credential_file_override KEY_PATHSostituisci
KEY_PATHcon il percorso del file delle chiavi del service account.Per interrompere l'utilizzo della chiave dell'account di servizio per impostazione predefinita per i comandi
gcloud, annulla l'impostazione della proprietà con questo comando:gcloud config unset auth/credential_file_overridegcloud auth login: esegui il seguente comando utilizzando il flag--cred-file:Linux e macOS
gcloud auth login \ --cred-file=KEY_PATHWindows (PowerShell)
gcloud auth login ` --cred-file=KEY_PATHSostituisci
KEY_PATHcon il percorso del file delle chiavi del service account.Il comando gcloud auth login memorizza le credenziali di accesso nella tua home directory. L'entità autenticata diventa l'entità attiva nella configurazione dell'interfaccia allagcloud CLId attiva. Se non vengono sostituite, gcloud CLI utilizza queste credenziali archiviate per accedere a Google Cloud.
Utilizza gcloud CLI con un token di accesso
Se hai già eseguito l'autenticazione per gcloud CLI su un altro dispositivo, puoi ottenere un token di accesso per l'entità attiva del dispositivo con il seguente comando:
gcloud auth print-access-token
Puoi quindi utilizzare questo token di accesso su un altro dispositivo per accedere alle risorse di Google Cloud. L'utilizzo di un token di accesso evita la necessità di impostare un'entità attiva e sostituisce qualsiasi entità attiva impostata nella configurazione dellgcloud CLI attiva.
I token di accesso per gli account utente hanno una durata predefinita di un'ora.
Puoi utilizzare un token di accesso con gcloud CLI per i comandi futuri o solo per un singolo comando.
Tutti i comandi
Per utilizzare un token di accesso con gcloud CLI per i comandi futuri, puoi impostare una variabile di ambiente o una proprietà nella configurazione gcloud CLI attiva:
Variabile di ambiente: imposta la variabile di ambiente
CLOUDSDK_AUTH_ACCESS_TOKENsulla stringa del token di accesso.Per interrompere l'utilizzo del token di accesso, cancella la variabile di ambiente
CLOUDSDK_AUTH_ACCESS_TOKEN.Configurazione di gcloud CLI: memorizza il token di accesso in un file, quindi imposta la proprietà
auth/access_token_filedella configurazione di gcloud CLI attiva sul percorso del file con il seguente comando:gcloud config set auth/access_token_file ACCESS_TOKEN_PATHSostituisci
ACCESS_TOKEN_PATHcon il percorso del file del token di accesso.Per interrompere l'utilizzo di un token di accesso per impostazione predefinita per i comandi
gcloud, annulla l'impostazione della proprietà con il seguente comando:gcloud config unset auth/access_token_file
Singolo comando
Per utilizzare un token di accesso con gcloud CLI per un singolo comando,
puoi aggiungere il flag
--access-token-file
a un comando di servizio gcloud CLI:
Memorizza il token di accesso in un file.
Utilizza il flag
--access-token-filecon qualsiasi comando del serviziogcloud.Ad esempio, per elencare le istanze VM di Compute Engine utilizzando un token di accesso, esegui questo comando:
Linux e macOS
gcloud compute instances list \ --access-token-file ACCESS_TOKEN_PATHWindows (PowerShell)
gcloud compute instances list ` --access-token-file ACCESS_TOKEN_PATHSostituisci
ACCESS_TOKEN_PATHcon il percorso del file del token di accesso.
Priorità delle credenziali
Poiché in un ambiente potrebbero essere utilizzati più metodi di autenticazione, gcloud CLI valuta i metodi in un ordine specifico per determinare quale principal utilizzare. gcloud CLI inizia con le credenziali fornite e poi valuta se è stata richiesta la simulazione dell'identità del account di servizio.
L'ordine di valutazione delle credenziali fornite è il seguente:
La variabile di ambiente
CLOUDSDK_AUTH_ACCESS_TOKEN, impostata sulla stringa del token di accesso.File del token di accesso. I metodi utilizzati per definire i percorsi dei file del token di accesso vengono valutati nel seguente ordine:
Il flag della riga di comando
--access-token-file, utilizzato con qualsiasi comando gcloud CLI.La variabile di ambiente
CLOUDSDK_AUTH_ACCESS_TOKEN_FILE.La proprietà
auth/access_token_filenella configurazione gcloud CLI attiva.
File delle credenziali. I metodi utilizzati per definire i percorsi dei file delle credenziali vengono valutati nel seguente ordine:
La variabile di ambiente
CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE.La proprietà
auth/credential_file_overridenella configurazione gcloud CLI attiva.
Il principal attivo impostato dal comando
gcloud auth logino impostando la proprietàcore/account.
Priorità della simulazione dell'identità dei service account
Se è stata richiesta la simulazione dell'identità del account di servizio, gcloud CLI controlla quale account di servizio simulare dopo che sono state fornite le credenziali per l'entità che esegue la simulazione. I metodi utilizzati per definire i service account per l'impersonificazione vengono valutati nel seguente ordine:
Il flag della riga di comando
--impersonate-service-account.La variabile di ambiente
CLOUDSDK_AUTH_IMPERSONATE_SERVICE_ACCOUNT.Il account di servizio definito dalla proprietà
auth/impersonate_service_accountnella configurazione attiva.
Aggiungere Google Drive all'ambito
L'ambito di gcloud CLI può essere esteso per includere l'accesso a Google Drive oltre a Google Cloud. Ciò significa che puoi utilizzare i token di accesso Google Cloud con Google Drive.
Per espandere l'ambito in modo da includere Google Drive, aggiungi il
flag --enable-gdrive-access quando autorizzi gcloud CLI:
Linux e macOS
gcloud auth login \
--enable-gdrive-access
Windows (PowerShell)
gcloud auth login `
--enable-gdrive-access
Puoi quindi effettuare chiamate alle API Google Drive utilizzando gcloud CLI per fornire un token di accesso. Ad esempio, per elencare tutti i file in Google Drive, puoi effettuare la seguente richiesta:
Linux e macOS
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://www.googleapis.com/drive/v3/files"
Windows (PowerShell)
Invoke-WebRequest `
-Method GET `
-Headers @{ "Authorization" = "Bearer $(gcloud auth print-access-token)" } `
-ContentType "application/json; charset=utf-8" `
-UseBasicParsing `
-Uri "https://www.googleapis.com/drive/v3/files" | Select-Object -Expand Content
Puoi quindi, ad esempio, utilizzare un ID file dalla risposta del comando precedente per estrarre il testo da un file di Documenti Google:
Linux e macOS
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://www.googleapis.com/drive/v3/files/FILE_ID/export?mimeType=text/plain"
Windows (PowerShell)
Invoke-WebRequest `
-Method GET `
-Headers @{ "Authorization" = "Bearer $(gcloud auth print-access-token)" } `
-ContentType "application/json; charset=utf-8" `
-UseBasicParsing `
-Uri "https://www.googleapis.com/drive/v3/files/FILE_ID/export?mimeType=text/plain" | Select-Object -Expand Content
Un caso d'uso comune per l'accesso a Google Drive è utilizzare BigQuery con i dati archiviati in Fogli Google.
Per scoprire di più sull'API Google Drive, consulta la panoramica dell'API Google Drive.
Aggiungi gcloud CLI come assistente per le credenziali a Docker
Per eseguire il pull dai registry dei container Artifact Registry, puoi aggiungere gcloud CLI come assistente per le credenziali alla configurazione di Docker.
Per farlo, esegui il comando
gcloud auth configure-docker:
gcloud auth configure-docker REGION-docker.pkg.dev
Gestire i principal e le credenziali
Puoi utilizzare il comando gcloud auth login per autenticare più entità
nello stesso ambiente e autorizzare gcloud CLI ad accedere
alle risorse per loro conto. Tuttavia, può essere attivo un solo mandante alla volta. Le sezioni seguenti trattano la gestione dei principal nella configurazione di gcloud CLI, inclusi l'elenco, il passaggio da uno all'altro e la revoca delle credenziali.
Elenca i principal
Per elencare le entità le cui credenziali di accesso sono archiviate nel sistema locale
(ovvero quelle autenticate utilizzando gcloud auth login), esegui il
comando gcloud auth list:
gcloud auth list
gcloud CLI elenca i principal e mostra quale è attivo:
Credentialed Accounts
ACTIVE ACCOUNT
alex@altostrat.com
* bola@altostrat.com
principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/cruz@cymbalgroup.com
Gli override per l'entità attiva non sono inclusi in questo elenco. Sono incluse le seguenti variabili di ambiente:
CLOUDSDK_AUTH_ACCESS_TOKENCLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDECLOUDSDK_AUTH_IMPERSONATE_SERVICE_ACCOUNT
Per verificare se queste variabili di ambiente sono impostate, esegui il seguente comando per il tuo sistema operativo:
Linux e macOS
echo "$ENVIRONMENT_VARIABLE"
Windows (PowerShell)
echo $env:ENVIRONMENT_VARIABLE
Sostituisci ENVIRONMENT_VARIABLE con la variabile di ambiente
che vuoi controllare.
Gli override per l'entità attiva includono anche le seguenti proprietà di configurazione:
auth/access_token_fileauth/credential_file_overrideauth/impersonate_service_account
Per verificare se queste proprietà di configurazione sono impostate, esegui questo comando:
gcloud config list
Cambia i principali attivi
Per passare a un'entità attiva che ha credenziali memorizzate (ovvero che
ha completato in precedenza il flusso gcloud auth login), esegui
gcloud config set:
gcloud config set account PRINCIPAL_IDENTIFIER
Sostituisci PRINCIPAL_IDENTIFIER con l'identificatore completo dell'entità di sicurezza.
Puoi anche cambiare entità nei seguenti modi:
Crea una configurazione separata che specifichi un'entità attiva diversa, quindi attiva la configurazione.
Utilizza il flag della riga di comando
--accountper specificare un principal per un singolo comando.Utilizza un override come un flag della riga di comando, una variabile di ambiente o una proprietà di configurazione.
Impostare la durata delle sessioni
Gli amministratori possono controllare per quanto tempo diversi utenti possono accedere alla gcloud CLI senza dover ripetere l'autenticazione. Ad esempio, puoi obbligare gli utenti con privilegi elevati a ripetere l'autenticazione con maggiore frequenza rispetto agli utenti normali.
Per ulteriori informazioni, vedi Impostare la durata della sessione per i servizi Google Cloud .
Revocare le credenziali per un'entità
Puoi revocare le credenziali per le entità che si sono autenticate con
gcloud auth login in modo che gcloud CLI non possa agire per loro conto.
La revoca invalida le credenziali sui server di autorizzazione di Google e
rimuove l'entità dalla configurazione dell'interfaccia allagcloud CLId attiva.
Per revocare le credenziali, esegui
gcloud auth revoke:
gcloud auth revoke PRINCIPAL_IDENTIFIER
Sostituisci PRINCIPAL_IDENTIFIER con l'identificatore completo dell'entità di sicurezza.
Per revocare l'accesso per gcloud CLI su tutti i dispositivi associati al tuo Account Google, vai a App e servizi di terze parti nelle impostazioni del tuo Account Google ed elimina tutti i collegamenti con Google Cloud SDK.
Gestire le credenziali memorizzate
gcloud CLI memorizza i file delle credenziali che utilizza nella directory di configurazione di gcloud CLI. Per trovare la posizione dei file delle credenziali, esegui gcloud info:
gcloud info
gcloud CLI stampa informazioni sull'installazione. I file delle credenziali sono archiviati nella directory di configurazione utente definita nell'output:
User Config Directory: [/home/USERNAME/.config/gcloud]
Per Linux e macOS, la directory di configurazione di gcloud CLI è
in genere /home/USERNAME/.config/gcloud. Per Windows, è
%APPDATA%\gcloud.
Passaggi successivi
Per saperne di più sulla personalizzazione di gcloud CLI, consulta Proprietà di gcloud CLI.
Per scoprire di più sulla gestione di insiemi denominati di proprietà gcloud CLI, consulta Configurazioni di gcloud CLI.
Per autenticare i workload basati su codice che utilizzano le librerie client Cloud o le librerie client delle API di Google, consulta Come funzionano le credenziali predefinite dell'applicazione.