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 la gcloud CLI.
Tipi di account
Per concedere l'autorizzazione alla gcloud CLI per accedere a Google Cloud, puoi utilizzare un account utente o un account di servizio.
Un account utente è un account Google Cloud che consente agli utenti finali di autenticarsi nella tua applicazione. Per la maggior parte dei casi d'uso comuni, in particolare per l'utilizzo interattivo dell'interfaccia a riga di comando gcloud, è consigliabile utilizzare un account utente.
Un account di servizio è un account Google Cloud associato al tuo progetto Google Cloud e non a un utente specifico. Puoi utilizzare l'account di servizio integrato disponibile quando utilizzi funzioni Cloud Run, App Engine, Compute Engine o Google Kubernetes Engine. Ti consigliamo di utilizzare un account di servizio per eseguire script gcloud CLI su più macchine.
Scegli un tipo di autorizzazione
Devi autorizzare Google Cloud CLI a gestire le risorse di Google Cloud. Sia Google Cloud CLI sia Google Cloud utilizzano OAuth 2.0 per l'autenticazione e l'autorizzazione.
Scegli uno dei seguenti tipi di autorizzazione:
Tipo | Descrizione |
---|---|
Account utente | Consigliato se utilizzi l'interfaccia alla gcloud CLI dalla riga di comando o se scrivi script con l'interfaccia alla gcloud CLI da utilizzare su una singola macchina. |
Service account | Consigliato se stai installando e configurando la gcloud CLI
nell'ambito di un processo di deployment delle 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 la panoramica dell'autenticazione.
Autorizzazione con un account utente
Questa sezione descrive come eseguire l'autorizzazione 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 altri passaggi di configurazione comuni. |
gcloud auth login
|
Consente solo l'accesso. |
Durante l'autorizzazione, questi comandi ottengono le credenziali dell'account da Google Cloud e le memorizzano nel sistema locale. L'account specificato diventa l'account attivo nella configurazione. Gcloud CLI utilizza le credenziali memorizzate per accedere a Google Cloud. Puoi avere un numero qualsiasi di account con credenziali memorizzate per una singola installazione gcloud CLI, ma solo un account è attivo alla volta.
Run gcloud init
gcloud init
autorizza l'accesso ed esegue
altri passaggi di configurazione comuni. 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:
Esegui
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 utilizzandossh
e non hai accesso a un browser su quel sistema. Per completare la procedura di autorizzazione, devi aprire manualmente l'URL fornito in un browser sul tuo sistema locale.Segui la procedura di autorizzazione basata sul browser per autenticare l'account e concedere le autorizzazioni di accesso.
Per ulteriori informazioni su gcloud init
, consulta
Inizializza la 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.
Autorizza gcloud CLI:
gcloud auth login
Segui la procedura di autorizzazione basata sul browser per autenticare l'account e concedere le autorizzazioni di accesso.
Se vuoi autorizzare l'interfaccia a riga di comando gcloud su una macchina che non ha un browser e puoi installarla su un'altra macchina con un browser, utilizza il flag
--no-browser
.Autorizza gcloud CLI:
gcloud auth login --no-browser
Copia il comando lungo che inizia con
gcloud auth login --remote-bootstrap="
.Incolla ed esegui questo comando sulla riga di comando di un'altra macchina attendibile su cui sono installati sia un browser web sia lo strumento gcloud CLI nella versione 372.0 o successive.
Copia l'URL lungo in uscita dalla macchina con il browser web.
Incolla l'URL lungo nella prima macchina sotto il prompt "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--no-launch-browser
impedisce al comando di aprire automaticamente un browser web.Autorizza gcloud CLI:
gcloud auth login --no-launch-browser
Copia l'URL lungo che inizia con
https://accounts.google.com/o/oauth2/auth...
Incolla questo URL nel browser di un'altra macchina attendibile con un browser web.
Copia il codice di autorizzazione dalla macchina con il browser web.
Incolla il codice di autorizzazione nella prima macchina quando richiesto, "Inserisci il codice di verifica", e premi Invio per completare l'autorizzazione.
Se hai già un token di accesso, utilizza uno dei seguenti metodi per trasmetterlo all'interfaccia a riga di comando gcloud:
- 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à della forza lavoro
Questa sezione descrive come accedere alla gcloud CLI utilizzando la federazione delle identità della forza lavoro.
Accesso basato su browser all'interfaccia a riga di comando gcloud
Per accedere a gcloud CLI utilizzando un flusso di accesso basato su browser, segui questi passaggi:
Crea un file di configurazione di accesso.
Per creare il file di configurazione di accesso, esegui il seguente comando. Facoltativamente, puoi attivare il file come predefinito per gcloud CLI utilizzando il flag
--activate
.gcloud iam workforce-pools create-login-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID \ --output-file=LOGIN_CONFIG_FILE
Sostituisci quanto segue:
-
WORKFORCE_POOL_ID
: l'ID del pool di identità della forza lavoro -
PROVIDER_ID
: l'ID del provider del pool di identità della forza lavoro LOGIN_CONFIG_FILE
: un percorso al file di configurazione di accesso specificato, ad esempiologin.json
Il file contiene gli endpoint utilizzati dalla gcloud CLI per attivare il flusso di autenticazione basato sul browser e impostare il segmento di pubblico sull'IdP 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/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", }
-
Accedi utilizzando l'autenticazione basata sul browser.
Per eseguire l'autenticazione utilizzando l'autenticazione di accesso basata sul browser, puoi utilizzare uno dei seguenti metodi:
-
Se hai utilizzato il flag
--activate
quando hai creato il file di configurazione o se lo hai attivato congcloud config set auth/LOGIN_CONFIG_FILE
, la gcloud CLI lo utilizza automaticamente:gcloud auth login
-
Per accedere specificando la posizione del file di configurazione, esegui il seguente comando:
gcloud auth login --login-config=LOGIN_CONFIG_FILE
-
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 lo hai attivato congcloud config set auth/LOGIN_CONFIG_FILE
, devi eseguire il seguente comando per reimpostarlo:gcloud config unset auth/login_config_file
-
Cancella la variabile di ambiente
CLOUDSDK_AUTH_LOGIN_CONFIG_FILE
, se impostata.
Accesso headless all'interfaccia a riga di comando gcloud CLI
Per accedere a gcloud CLI utilizzando un flusso headless:
OIDC
Fai accedere un utente all'app del tuo provider di identità e ottieni il token OIDC.
Per informazioni su come ottenere il token, consulta la documentazione OIDC dell'IdP.
Salva il token OIDC restituito dall'IdP in un luogo sicuro sul tuo computer locale.
Genera un file di configurazione eseguendo il seguente 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 del pool di forza lavoroPROVIDER_ID
: l'ID providerPATH_TO_OIDC_TOKEN
: il percorso del file delle credenziali dell'identità OIDCWORKFORCE_POOL_USER_PROJECT
: il numero del progetto associato al progetto utente dei pool di forze lavoro
L'entità deve disporre dell'autorizzazione serviceusage.services.use
per questo progetto.
Quando esegui il comando, viene generato un file di configurazione dell'IdP OIDC con un formato 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
Fai accedere un utente all'app IdP e ottieni l'asserzione SAML.
Per informazioni su come ottenere l'asserzione SAML dal tuo IdP, consulta la documentazione SAML dell'IdP.
Salva la risposta SAML restituita dall'IdP in una posizione sicura sul tuo computer locale, quindi memorizza il percorso come segue:
SAML_ASSERTION_PATH=SAML_ASSERTION_PATH
Per generare un file di configurazione, esegui il seguente 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 fornitore della forza lavoro che hai creato in precedenza in questa guida.WORKFORCE_POOL_ID
: l'ID pool di forza lavoro creato in precedenza in questa guida.SAML_ASSERTION_PATH
: il percorso del file di affermazione 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 il seguente comando:
gcloud auth login --cred-file="config.json"
gcloud
scambia quindi in modo trasparente le tue credenziali IdP con token di accesso temporanei di Google Cloud, consentendoti di effettuare altre chiamate gcloud
a 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 il tuo account attualmente attivo, esegui il seguente comando:
gcloud auth list
Autorizzazione con un account di servizio
Il comando gcloud auth login
può autorizzare l'accesso con un account di servizio utilizzando un file delle credenziali memorizzato nel file system locale. Questa credenziale può essere una credenziale utente con autorizzazione per appropriarsi dell'identità del account di servizio, un file di configurazione delle credenziali per la federazione delle identità per i carichi di lavoro o una chiave del account di servizio.
Autorizza un account di servizio utilizzando l'impersonificazione dell'account di servizio
Per autorizzare gcloud CLI a utilizzare le credenziali dell'account di servizio sotto mentite spoglie, svolgi i seguenti passaggi:
Nella console Google Cloud, vai alla pagina Account di servizio.
Scegli un account esistente o creane uno nuovo facendo clic su Crea account di servizio.
-
Per assicurarti che il principale disponga dell'autorizzazione necessaria per rubare l'identità di un account di servizio, chiedi all'amministratore di concedere al principale il ruolo IAM Creatore token account di servizio (
roles/iam.serviceAccountTokenCreator
) nell'account di servizio. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.Questo ruolo predefinito contiene l'autorizzazione
iam.serviceAccounts.getAccessToken
necessaria per impersonare un account di servizio.L'amministratore potrebbe anche assegnare all'entità questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.
Autorizza gcloud CLI con la tua identità utente eseguendo
gcloud auth login
.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
Per interrompere l'utilizzo delle credenziali dell'account di servizio impersonate con gcloud CLI per impostazione predefinita, annulla l'impostazione del flag con il comando gcloud CLI config:
gcloud config unset auth/impersonate_service_account
Autorizza un account di servizio utilizzando la federazione delle identità per i carichi di lavoro
Per autorizzare gcloud CLI con un account di servizio che utilizza le credenziali esterne della federazione delle identità per i carichi di lavoro, segui questi passaggi:
Nella console Google Cloud, vai alla pagina Account di servizio.
Scegli un account esistente o creane uno nuovo facendo clic su Crea account di servizio.
Crea un file di configurazione delle credenziali per la federazione delle identità per i carichi di lavoro seguendo le istruzioni per il tuo provider di identità supportato.
Per attivare l'account di servizio, esegui
gcloud auth login
con il--cred-file
flag: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 dell'account di servizio
Per autorizzare gcloud CLI con un account di servizio utilizzando una chiave dell'account di servizio, segui questi passaggi:
Nella console Google Cloud, vai alla pagina Account di servizio.
Scegli un account esistente o creane uno nuovo facendo clic su Crea account di servizio.
Per creare chiavi dell'account di servizio, consulta le istruzioni di IAM per creare una chiave dell'account di servizio.
Per attivare l'account di servizio, esegui
gcloud auth login
con il--cred-file
flag:gcloud auth login --cred-file=KEY_FILE
Sostituisci KEY_FILE con il percorso di un file della chiave dell'account di servizio.
Elenco account
Per elencare gli account le cui credenziali sono archiviate nel sistema locale, esegui
gcloud auth list
:
gcloud auth list
L'interfaccia a riga di comando gcloud 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 su base singola chiamata, sostituisci l'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 alla gcloud CLI senza dover ripetere l'autenticazione. Ad esempio, puoi obbligare gli utenti con privilegi elevati a eseguire nuovamente l'autenticazione più spesso rispetto agli utenti normali.
Per ulteriori informazioni, consulta Impostare la durata della sessione per i servizi Google Cloud.
Revocare le credenziali di un account
Puoi revocare le credenziali quando vuoi impedire l'accesso da parte di un determinato account alla gcloud CLI. 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 le 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 il supporto per la gestione delle credenziali predefinite per le applicazioni (ADC) con il gruppo di comandi gcloud auth application-default
. Per rendere disponibili le credenziali utente per l'ADC, esegui
gcloud auth application-default login
:
gcloud auth application-default login
Queste credenziali non vengono utilizzate dall'interfaccia a riga di comando gcloud. Per altri modi per configurare le credenziali predefinite dell'applicazione, consulta Configurare le credenziali predefinite dell'applicazione.
unset GOOGLE_APPLICATION_CREDENTIALS
gcloud config unset auth/impersonate_service_account
gcloud auth application-default login
Passaggi successivi
- Per scoprire di più sull'autenticazione e su Google Cloud, consulta la panoramica dell'autenticazione.
- Per scoprire di più sulla personalizzazione di gcloud CLI, consulta Proprietà gcloud CLI.
- Per scoprire di più sulla gestione di insiemi denominati di proprietà gcloud CLI, consulta Configurazioni dell'interfaccia a riga di comando gcloud.