Autorizza l'interfaccia a riga di comando gcloud

Per accedere a Google Cloud, in genere devi autorizzare Google Cloud CLI. Questa pagina mostra le opzioni di autorizzazione disponibili e spiega come gestire gli account che utilizzi per l'autorizzazione. Se utilizzi un'istanza Compute Engine o Cloud Shell, non è necessario autorizzare gcloud CLI.

Tipi di account

Per concedere l'autorizzazione a gcloud CLI per accedere a Google Cloud, puoi utilizzare un account utente o un service account.

Un account utente è un account Google Cloud che consente agli utenti finali di autenticarsi nell'applicazione. Per i casi d'uso più comuni, in particolare l'utilizzo interattivo di gcloud CLI, la best practice è utilizzare un account utente.

Un service account è un account Google Cloud associato al tuo progettoGoogle Cloud e non a un utente specifico. Puoi utilizzare l'account di servizio integrato disponibile quando utilizzi le funzioni Cloud Run, App Engine, Compute Engine o Google Kubernetes Engine. Per eseguire script gcloud CLI su più macchine, è consigliato un account di servizio.

Scegli un tipo di autorizzazione

Devi autorizzare Google Cloud CLI a gestire le risorse Google Cloud. Sia Google Cloud CLI sia Google Cloud utilizzano OAuth2 per l'autenticazione e l'autorizzazione.

Scegli uno dei seguenti tipi di autorizzazione:

Tipo Descrizione
Account utente Consigliato se utilizzi gcloud CLI dalla riga di comando o se scrivi script con gcloud CLI da utilizzare su una singola macchina.
Service account Consigliato se installi e configuri gcloud CLI nell'ambito di un processo di deployment di macchine in produzione o per l'utilizzo su istanze di macchine virtuali Compute Engine in cui tutti gli utenti hanno accesso a root.

Per ulteriori informazioni sull'autenticazione e su Google Cloud, consulta Panoramica dell'autenticazione.

Autorizzare con un account utente

Questa sezione descrive come autorizzare con un account utente.

Autenticazione con un Account Google

Utilizza i seguenti comandi gcloud CLI per autorizzare l'accesso con un account utente:

Comando Descrizione
gcloud init Autorizza l'accesso ed esegue altre comuni fasi di configurazione.
gcloud auth login Autorizza solo l'accesso.

Durante l'autorizzazione, questi comandi ottengono le credenziali dell'account da Google Cloud e le archiviano nel sistema locale. L'account specificato diventa l'account attivo nella tua configurazione. gcloud CLI utilizza le credenziali archiviate per accedere a Google Cloud. Puoi avere un numero qualsiasi di account con credenziali archiviate per una singola installazione gcloud CLI, ma solo un account è attivo alla volta.

Run gcloud init

gcloud init autorizza l'accesso ed esegue altre comuni fasi di configurazione. gcloud init utilizza un flusso di autorizzazione basato sul web per autenticare l'account utente e concedere le autorizzazioni di accesso.

Per autorizzare l'accesso ed eseguire altri passaggi di configurazione comuni:

  1. Corsa gcloud init:

    gcloud init
    

    In alternativa, per impedire al comando di aprire automaticamente un browser web:

    gcloud init --console-only
    

    L'utilizzo del flag --console-only è utile se esegui il comando su un sistema remoto utilizzando ssh e non hai accesso a un browser su quel sistema. Devi quindi aprire manualmente l'URL fornito in un browser sul tuo sistema locale per completare la procedura di autorizzazione.

  2. Segui il flusso di autorizzazione basato sul browser per autenticare l'account e concedere le autorizzazioni di accesso.

Per saperne di più su gcloud init, consulta la sezione Inizializzazione di gcloud CLI.

Esegui gcloud auth login

L'esecuzione di gcloud auth login autorizza solo l'account utente. Per autorizzare l'accesso senza eseguire altri passaggi di configurazione, utilizza una delle seguenti opzioni.

  • Se vuoi autorizzare gcloud CLI su una macchina con un browser, segui questi passaggi.

    1. Autorizza gcloud CLI:

      gcloud auth login
      
    2. Segui il flusso di autorizzazione basato sul browser per autenticare l'account e concedere le autorizzazioni di accesso.

  • Se vuoi autorizzare gcloud CLI su una macchina che non ha un browser e puoi installare gcloud CLI su un'altra macchina con un browser, utilizza il flag --no-browser.

    1. Autorizza gcloud CLI:

      gcloud auth login --no-browser
      
    2. Copia il comando lungo che inizia con gcloud auth login --remote-bootstrap=".

    3. Incolla ed esegui questo comando nella riga di comando di un'altra macchina attendibile con installazioni locali di un browser web e dello strumento gcloud CLI versione 372.0 o successive.

    4. Copia l'output dell'URL lungo dalla macchina con il browser web.

    5. Incolla l'URL lungo nella prima macchina sotto il prompt "Enter the output of the above command" (Inserisci l'output del comando precedente) e premi Invio per completare l'autorizzazione.

  • Se vuoi autorizzare gcloud CLI su una macchina che non ha un browser e non puoi installare gcloud CLI su un'altra macchina con un browser, utilizza il flag --no-launch-browser. Il flag --no-launch-browser impedisce al comando di aprire automaticamente un browser web.

    1. Autorizza gcloud CLI:

      gcloud auth login --no-launch-browser
      
    2. Copia l'URL lungo che inizia con https://accounts.google.com/o/oauth2/auth...

    3. Incolla questo URL nel browser di un altro computer attendibile con un browser web.

    4. Copia il codice di autorizzazione dalla macchina con il browser web.

    5. Incolla il codice di autorizzazione nella prima macchina quando richiesto, "Inserisci codice di verifica", e premi Invio per completare l'autorizzazione.

  • Se hai già un token di accesso, utilizza uno dei seguenti metodi per passarlo a gcloud CLI:

    • Memorizza il token di accesso in un file e imposta il relativo percorso tramite il flag --access-token-file.
    • Memorizza il token di accesso in un file e imposta il relativo percorso nella proprietà auth/access_token_file.
    • Imposta la variabile di ambiente CLOUDSDK_AUTH_ACCESS_TOKEN sul valore del token di accesso.

Autenticazione con la federazione delle identità per la forza lavoro

Questa sezione descrive come accedere a gcloud CLI utilizzando la federazione delle identità della forza lavoro.

Accesso basato sul browser gcloud CLI

Per accedere a gcloud CLI utilizzando un flusso di accesso basato sul browser, procedi nel seguente modo:

  1. Crea un file di configurazione di accesso.

    Per creare il file di configurazione di accesso, esegui questo comando. Se vuoi, puoi attivare il file come predefinito per gcloud CLI aggiungendo il flag --activate. Puoi quindi eseguire gcloud auth login senza specificare il percorso del file di configurazione ogni volta.

    gcloud iam workforce-pools create-login-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID \
        --output-file=LOGIN_CONFIG_FILE_PATH

    Sostituisci quanto segue:

    • WORKFORCE_POOL_ID: l'ID pool di forza lavoro
    • PROVIDER_ID: l'ID fornitore
    • LOGIN_CONFIG_FILE_PATH: il percorso di un file di configurazione specificato, ad esempio login.json

    Il file contiene gli endpoint utilizzati da gcloud CLI per attivare il flusso di autenticazione basato sul browser e impostare il pubblico sul provider di identità configurato nel provider del pool di identità della forza lavoro. Il file non contiene informazioni riservate.

    L'output è simile al seguente:

    {
      "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",
    }

    Per impedire a gcloud auth login di utilizzare automaticamente questo file di configurazione, puoi annullarne l'impostazione eseguendo gcloud config unset auth/login_config_file.

  2. Accedi utilizzando l'autenticazione basata sul browser.

    Per eseguire l'autenticazione utilizzando l'autenticazione basata sull'accesso al browser, puoi utilizzare uno dei seguenti metodi:

    • Se hai utilizzato il flag --activate quando hai creato il file di configurazione o se hai attivato il file di configurazione con gcloud config set auth/login_config_file, gcloud CLI utilizza automaticamente il file di configurazione:

      gcloud auth login
    • Per accedere specificando la posizione del file di configurazione, esegui il seguente comando:

      gcloud auth login --login-config=LOGIN_CONFIG_FILE_PATH
    • Per utilizzare una variabile di ambiente per specificare la posizione del file di configurazione, imposta CLOUDSDK_AUTH_LOGIN_CONFIG_FILE sul percorso di configurazione.

Per interrompere l'utilizzo del file di configurazione dell'accesso:

  • Se hai utilizzato il flag --activate quando hai creato il file di configurazione o se hai attivato il file di configurazione con gcloud config set auth/login_config_file, devi eseguire il seguente comando per annullarne l'impostazione:

    gcloud config unset auth/login_config_file
  • Cancella la variabile di ambiente CLOUDSDK_AUTH_LOGIN_CONFIG_FILE, se è impostata.

Accesso headless di gcloud CLI

Per accedere a gcloud CLI utilizzando un flusso headless, procedi nel seguente modo:

OIDC

  1. Accedi all'app IdP di un utente e ottieni il token OIDC.

    Per informazioni su come ottenere il token, consulta la documentazione OIDC del tuo IdP.

  2. Salva il token OIDC restituito dall'IdP in una posizione sicura sul tuo computer locale.

  3. Genera un file di configurazione eseguendo questo comando:

    gcloud iam workforce-pools create-cred-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID \
        --subject-token-type="urn:ietf:params:oauth:token-type:id_token" \
        --credential-source-file="PATH_TO_OIDC_ID_TOKEN" \
        --workforce-pool-user-project="WORKFORCE_POOL_USER_PROJECT" \
        --output-file="config.json"
    

Sostituisci quanto segue:

  • WORKFORCE_POOL_ID: l'ID pool di forza lavoro
  • PROVIDER_ID: l'ID fornitore
  • PATH_TO_OIDC_TOKEN: il percorso del file delle credenziali del provider di identità OIDC
  • WORKFORCE_POOL_USER_PROJECT: il numero di progetto associato al progetto utente dei pool di forza lavoro

L'entità deve disporre dell'autorizzazione serviceusage.services.use per questo progetto.

Quando esegui il comando, viene generato un file di configurazione IdP OIDC formattato in modo simile al seguente:

{
  "type": "external_account",
  "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID",
  "subject_token_type": "urn:ietf:params:oauth:token-type:id_token",
  "token_url": "https://sts.googleapis.com/v1/token",
  "workforce_pool_user_project": "WORKFORCE_POOL_USER_PROJECT",
  "credential_source": {
    "file": "PATH_TO_OIDC_CREDENTIALS_FILE"
  }
}

SAML

  1. Accedi all'app IdP per un utente e ottieni l'asserzione SAML.

    Per informazioni su come ottenere l'asserzione SAML dal tuo IdP, consulta la relativa documentazione.

  2. Salva la risposta SAML restituita dall'IdP in una posizione sicura sul computer locale, quindi memorizza il percorso nel seguente modo:

    SAML_ASSERTION_PATH=SAML_ASSERTION_PATH
    
  3. Per generare un file di configurazione, esegui questo comando:

    gcloud iam workforce-pools create-cred-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
        --subject-token-type="urn:ietf:params:oauth:token-type:saml2" \
        --credential-source-file="SAML_ASSERTION_PATH"  \
        --workforce-pool-user-project="PROJECT_ID"  \
        --output-file="config.json"
    

    Sostituisci quanto segue:

    • WORKFORCE_PROVIDER_ID: l'ID del provider di forza lavoro che hai creato in precedenza in questa guida.
    • WORKFORCE_POOL_ID: l'ID pool di forza lavoro che hai creato in precedenza in questa guida.
    • SAML_ASSERTION_PATH: il percorso del file di asserzione SAML.
    • PROJECT_ID: l'ID progetto

    Il file di configurazione generato è simile al seguente:

    {
      "type": "external_account",
      "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
      "subject_token_type": "urn:ietf:params:oauth:token-type:saml2",
      "token_url": "https://sts.googleapis.com/v1/token",
      "credential_source": {
        "file": "SAML_ASSERTION_PATH"
      },
      "workforce_pool_user_project": "PROJECT_ID"
    }
    

Per accedere a gcloud utilizzando lo scambio di token, esegui questo comando:

gcloud auth login --cred-file="config.json"

gcloud, quindi scambia in modo trasparente le credenziali IdP con token di accesso Google Cloud temporanei, consentendoti di effettuare altre chiamate gclouda Google Cloud.

L'output è simile al seguente:

Authenticated with external account user credentials for:
[principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/USER_ID].

Per elencare gli account con credenziali e l'account attualmente attivo, esegui questo comando:

gcloud auth list

Autorizzare con un account di servizio

Il comando gcloud auth login può autorizzare l'accesso con un account di servizio utilizzando un file delle credenziali archiviato nel file system locale. Queste credenziali possono essere credenziali utente con l'autorizzazione per rappresentare il account di servizio, un file di configurazione delle credenziali per la federazione delle identità per i workload o una chiave del account di servizio.

Autorizza un account di servizio utilizzando l'impersonificazione del account di servizio

Per autorizzare gcloud CLI a utilizzare le credenziali del account di servizio rappresentato, svolgi le seguenti operazioni:

  1. Nella console Google Cloud , vai alla pagina Service account.

    Vai a Service account

  2. Scegli un account esistente o creane uno nuovo facendo clic su Crea service account.

  3. Per ottenere l'autorizzazione necessaria per rappresentare unaccount di serviziot, chiedi all'amministratore di concederti il ruolo IAM Creatore token service account (roles/iam.serviceAccountTokenCreator) account di servizioe account. 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 rappresentare un account di servizio.

    Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

  4. Autorizza gcloud CLI con la tua identità utente eseguendo gcloud auth login.

  5. Per configurare gcloud CLI in modo che utilizzi per impostazione predefinita l'identità e l'accesso forniti da un account di servizio, utilizza il comando gcloud CLI config:

    gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
    
  6. Per interrompere l'utilizzo delle credenziali del account di servizio rappresentato con gcloud CLI per impostazione predefinita, annulla l'impostazione del flag con il comando di configurazione gcloud CLI:

    gcloud config unset auth/impersonate_service_account
    

Autorizza un account di servizio utilizzando la federazione delle identità per i workload

Per autorizzare gcloud CLI con un account di servizio utilizzando credenziali esterne dalla federazione delle identità per i workload, procedi nel seguente modo:

  1. Nella console Google Cloud , vai alla pagina Service account.

    Vai a Service account

  2. Scegli un account esistente o creane uno nuovo facendo clic su Crea service account.

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

  4. Per attivare il tuo account di servizio, esegui gcloud auth login con il flag --cred-file:

    gcloud auth login --cred-file=CONFIGURATION_FILE
    

    Sostituisci CONFIGURATION_FILE con il percorso di un file di configurazione delle credenziali per la federazione delle identità per i carichi di lavoro.

Autorizzare un account di servizio utilizzando una chiave del account di servizio

Per autorizzare gcloud CLI con un account di servizio utilizzando una chiave del service account:

  1. Nella console Google Cloud , vai alla pagina Service account.

    Vai a Service account

  2. Scegli un account esistente o creane uno nuovo facendo clic su Crea service account.

  3. Per creare le chiavi dell'account di servizio, consulta le istruzioni IAM per creare una chiave dell'account di servizio.

  4. Per attivare il tuo account di servizio, esegui gcloud auth login con il flag --cred-file:

    gcloud auth login --cred-file=KEY_FILE
    

    Sostituisci KEY_FILE con il percorso di un file di chiavi del account di servizio.

Elenco account

Per elencare gli account le cui credenziali sono archiviate nel sistema locale, esegui gcloud auth list:

gcloud auth list

gcloud CLI elenca gli account e mostra quale è attivo:

Credentialed accounts:
 - user-1@gmail.com (active)
 - user-2@gmail.com

Cambiare l'account attivo

Per cambiare l'account attivo, esegui gcloud config set:

gcloud config set account ACCOUNT

dove [ACCOUNT] è l'indirizzo email completo dell'account.

Puoi anche cambiare account creando una configurazione separata che specifichi l'account diverso e passando da una configurazione all'altra:

gcloud config configurations activate CONFIGURATION

Se vuoi cambiare l'account utilizzato da gcloud CLI in base all'invocazione, esegui l'override dell'account attivo utilizzando il flag --account.

Impostare la durata della sessione autorizzata

In qualità di amministratore, puoi specificare per quanto tempo diversi utenti possono accedere allagcloud CLId 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 saperne di più, vedi Impostare la durata della sessione per i servizi Google Cloud .

Revocare le credenziali per un account

Puoi revocare le credenziali quando vuoi impedire l'accesso da parte di gcloud CLI a un determinato account. Non è necessario revocare le credenziali per passare da un account all'altro.

Per revocare le credenziali, esegui gcloud auth revoke:

gcloud auth revoke ACCOUNT

Per revocare tutto l'accesso per gcloud CLI per tutte le macchine, rimuovi gcloud CLI dall'elenco delle app che hanno accesso al tuo account.

Utilizzare i file delle credenziali

Trovare i file delle credenziali

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 dell'utente:

User Config Directory: [/home/USERNAME/.config/gcloud]

Configurare le Credenziali predefinite dell'applicazione

gcloud CLI fornisce supporto per la gestione delle credenziali predefinite dell'applicazione (ADC) con il gruppo di comandi gcloud auth application-default. Per rendere disponibili le credenziali utente per ADC, esegui gcloud auth application-default login:

gcloud auth application-default login

Queste credenziali non vengono utilizzate da gcloud CLI. Per altri modi per configurare le credenziali predefinite dell'applicazione, vedi Configurare le credenziali predefinite dell'applicazione.

unset GOOGLE_APPLICATION_CREDENTIALS
gcloud config unset auth/impersonate_service_account
gcloud auth application-default login

Passaggi successivi