Autorizza l'interfaccia a riga di comando gcloud

Per accedere a Trusted 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 Trusted Cloud, puoi utilizzare un account utente o un service account.

Un account utente è un account Trusted 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 Trusted Cloud associato al tuo progettoTrusted 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ù computer, è consigliabile un account di servizio.

Scegli un tipo di autorizzazione

Devi autorizzare Google Cloud CLI a gestire le risorse Trusted Cloud. Sia Google Cloud CLI sia Trusted 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 Trusted Cloud, consulta Panoramica dell'autenticazione.

Autorizzare con un account utente

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

Prima di accedere a gcloud CLI, devi impostare la proprietà core/universe_domain nella configurazione eseguendo questo comando:

gcloud config set universe_domain s3nsapis.fr

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 del pool di identità della forza lavoro configurato. 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.s3nscloud.fr/authorize",
      "token_url": "https://sts.s3nsapis.fr/v1/oauthtoken",
      "token_info_url": "https://sts.s3nsapis.fr/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 del 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 Trusted Cloud temporanei, consentendoti di effettuare altre chiamate gclouda Trusted 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 Trusted 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 Trusted 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 Trusted 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 Trusted 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