Esegui l'autenticazione per gcloud CLI

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:

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:

  1. Esegui questo comando per avviare il processo:

    gcloud auth login
    
  2. Segui 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:

  1. Esegui il seguente comando sul dispositivo originale su cui vuoi utilizzare gcloud CLI:

    Linux e macOS

    gcloud auth login \
        --no-browser
    

    Windows (PowerShell)

    gcloud auth login `
        --no-browser
    
  2. Copia il comando gcloud che inizia con gcloud auth login --remote-bootstrap=" da utilizzare sull'altro dispositivo.

  3. Vai a un altro dispositivo attendibile su cui sono installati sia un browser web sia gcloud CLI versione 372.0.0 o successive.

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

  5. Nel terminale, copia l'URL che inizia con https://localhost da utilizzare sul dispositivo originale.

  6. Torna al dispositivo originale.

  7. Nel terminale, al prompt, incolla l'URL https://localhost 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.

Solo browser web

Utilizza il flag --no-launch-browser per completare la procedura di autenticazione utilizzando il browser web di un altro dispositivo:

  1. Esegui il seguente comando sul dispositivo originale su cui vuoi utilizzare gcloud CLI:

    Linux e macOS

    gcloud auth login \
        --no-launch-browser
    

    Windows (PowerShell)

    gcloud auth login `
        --no-launch-browser
    
  2. Copia l'URL che inizia con https://accounts.google.com/o/oauth2/auth da utilizzare sull'altro dispositivo.

  3. Vai a un altro dispositivo attendibile su cui è installato un browser web.

  4. Apri un browser web, vai all'URL che hai copiato in precedenza e completa il flusso basato sul browser.

  5. Copia il codice di verifica da utilizzare sul dispositivo originale.

  6. Torna al dispositivo originale.

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

  1. 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"
    }

  2. 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:

    1. Imposta la variabile di ambiente CLOUDSDK_AUTH_LOGIN_CONFIG_FILE sul percorso del file di configurazione di accesso.
    2. Esegui questo comando:

      gcloud auth login
    3. 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 ambiente CLOUDSDK_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:

    1. Imposta la proprietà auth/login_config_file della 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
    2. Esegui questo comando:

      gcloud auth login
    3. 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 --activate durante la creazione del file di configurazione di accesso, esegui questo comando:

      gcloud auth login
    • Se non hai utilizzato il flag --activate durante 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.

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.

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

  2. 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_OVERRIDE sul 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_override della 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_PATH
    

    Sostituisci CONFIGURATION_PATH con 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_override
    

    gcloud auth login

    Esegui questo comando utilizzando il flag --cred-file:

    Linux e macOS

    gcloud auth login \
        --cred-file=CONFIGURATION_PATH
    

    Windows (PowerShell)

    gcloud auth login `
        --cred-file=CONFIGURATION_PATH
    

    Sostituisci CONFIGURATION_PATH con 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:

  1. 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'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    Abilitare l'API

  2. Scegli un'entità da utilizzare per simulare l'identità di un account di servizio.

  3. 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.getAccessToken necessaria 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.

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

  5. Scegli un account di servizio da rappresentare. Trova un service account esistente o creane uno nuovo.

  6. Copia l'indirizzo Email del account di servizio.

  7. 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_ACCOUNT sull'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_account della configurazione di gcloud CLI attiva con il seguente comando:

      gcloud config set auth/impersonate_service_account SERVICE_ACCOUNT_EMAIL
      

      Sostituisci SERVICE_ACCOUNT_EMAIL con 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-account a 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_EMAIL
    

    Windows (PowerShell)

    gcloud compute instances list `
        --impersonate-service-account=SERVICE_ACCOUNT_EMAIL
    

    Sostituisci SERVICE_ACCOUNT_EMAIL con 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:

  1. Crea una chiave dell'account di servizio e salvala come file in una posizione sicura del tuo ambiente.

  2. 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_OVERRIDE sul 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_override della configurazione di gcloud CLI attiva sul percorso della chiave del account di servizio con questo comando:

      gcloud config set auth/credential_file_override KEY_PATH
      

      Sostituisci KEY_PATH con 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_override
      
    • gcloud auth login: esegui il seguente comando utilizzando il flag --cred-file:

      Linux e macOS

      gcloud auth login \
          --cred-file=KEY_PATH
      

      Windows (PowerShell)

      gcloud auth login `
          --cred-file=KEY_PATH
      

      Sostituisci KEY_PATH con 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_TOKEN sulla 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_file della configurazione di gcloud CLI attiva sul percorso del file con il seguente comando:

    gcloud config set auth/access_token_file ACCESS_TOKEN_PATH
    

    Sostituisci ACCESS_TOKEN_PATH con 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:

  1. Memorizza il token di accesso in un file.

  2. Utilizza il flag --access-token-file con qualsiasi comando del servizio gcloud.

    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_PATH
    

    Windows (PowerShell)

    gcloud compute instances list `
        --access-token-file ACCESS_TOKEN_PATH
    

    Sostituisci ACCESS_TOKEN_PATH con 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:

  1. La variabile di ambiente CLOUDSDK_AUTH_ACCESS_TOKEN, impostata sulla stringa del token di accesso.

  2. File del token di accesso. I metodi utilizzati per definire i percorsi dei file del token di accesso vengono valutati nel seguente ordine:

    1. Il flag della riga di comando --access-token-file, utilizzato con qualsiasi comando gcloud CLI.

    2. La variabile di ambiente CLOUDSDK_AUTH_ACCESS_TOKEN_FILE.

    3. La proprietà auth/access_token_file nella configurazione gcloud CLI attiva.

  3. File delle credenziali. I metodi utilizzati per definire i percorsi dei file delle credenziali vengono valutati nel seguente ordine:

    1. La variabile di ambiente CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE.

    2. La proprietà auth/credential_file_override nella configurazione gcloud CLI attiva.

  4. Il principal attivo impostato dal comando gcloud auth login o 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:

  1. Il flag della riga di comando --impersonate-service-account.

  2. La variabile di ambiente CLOUDSDK_AUTH_IMPERSONATE_SERVICE_ACCOUNT.

  3. Il account di servizio definito dalla proprietà auth/impersonate_service_account nella 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_TOKEN
  • CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE
  • CLOUDSDK_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_file
  • auth/credential_file_override
  • auth/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:

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