Autorizar a CLI gcloud

Para acessar Trusted Cloud, é necessário autorizar a CLI do Google Cloud. Nesta página, mostramos as opções de autorização disponíveis e mostramos como gerenciar as contas que você usa para autorização. Se você estiver usando uma instância do Compute Engine ou o Cloud Shell, não será necessário autorizar a CLI gcloud.

tipos de contas

Para conceder autorização à CLI gcloud para acessar Trusted Cloud, use uma conta de usuário ou uma conta de serviço.

Uma conta de usuário é uma conta Trusted Cloud que permite que os usuários finais se autentiquem no seu aplicativo. Na maioria dos casos de uso comum, especialmente ao usar a CLI gcloud de forma interativa, a conta de usuário é a melhor prática.

Uma conta de serviço é uma Trusted Cloud conta associada ao seu projeto doTrusted Cloud , e não a um usuário específico. É possível usar a conta de serviço integrada disponível ao usar funções do Cloud Run, App Engine, Compute Engine ou Google Kubernetes Engine. Recomenda-se usar uma conta de serviço para executar scripts da CLI gcloud em várias máquinas.

Escolher um tipo de autorização

É necessário autorizar a CLI do Google Cloud para gerenciar recursos do Trusted Cloud. A CLI do Google Cloud e o Trusted Cloud usam o OAuth2 para autenticação e autorização.

Escolha um dos seguintes tipos de autorização:

Tipo Descrição
Conta de usuário Recomendado se você estiver usando a CLI gcloud na linha de comando ou se estiver escrevendo scripts com a CLI gcloud para uso em uma única máquina.
Conta de serviço Opção recomendada se você estiver instalando e configurando a CLI da gcloud como parte de um processo de implantação de máquinas em produção ou para uso em instâncias de máquina virtual do Compute Engine em que todos os usuários tenham acesso ao root.

Para mais informações sobre autenticação e Trusted Cloud, consulte Visão geral da autenticação.

Autorizar com uma conta de usuário

Esta seção descreve como fazer login na CLI gcloud usando a federação de identidade de colaboradores.

Antes de fazer login na gcloud CLI, defina a propriedade core/universe_domain na configuração executando o seguinte comando:

gcloud config set universe_domain s3nsapis.fr

Login baseado no navegador da CLI gcloud

Para fazer login na CLI gcloud usando um fluxo de login baseado em navegador, faça o seguinte:

  1. Crie um arquivo de configuração de login.

    Para criar o arquivo de configuração de login, execute o comando a seguir. Também é possível ativar o arquivo como padrão para a CLI gcloud adicionando a flag --activate. Em seguida, execute gcloud auth login sem especificar o caminho do arquivo de configuração toda vez.

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

    Substitua:

    • WORKFORCE_POOL_ID: o ID do pool de colaboradores
    • PROVIDER_ID: o ID do provedor
    • LOGIN_CONFIG_FILE_PATH: o caminho para um arquivo de configuração especificado. Por exemplo, login.json.

    O arquivo contém os endpoints usados pela CLI gcloud para ativar o fluxo de autenticação baseado em navegador e definir o público como o IdP configurado no provedor do pool de identidade dos colaboradores. O arquivo não contém informações confidenciais.

    A saída será assim:

    {
      "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://s3nsapis.fr/v1/introspect",
    }

    Para impedir que o gcloud auth login use esse arquivo de configuração automaticamente, defina-o como desativado executando gcloud config unset auth/login_config_file.

  2. Faça login usando a autenticação baseada no navegador.

    Para usar a autenticação de login baseada em navegador, use um dos seguintes métodos:

    • Se você usou a flag --activate ao criar o arquivo de configuração ou ativou esse arquivo com gcloud config set auth/login_config_file, a gcloud CLI fará uso dele automaticamente:

      gcloud auth login
    • Para fazer login especificando o local do arquivo de configuração, execute o seguinte comando:

      gcloud auth login --login-config=LOGIN_CONFIG_FILE_PATH
    • Para usar uma variável de ambiente para especificar o local do arquivo de configuração, defina CLOUDSDK_AUTH_LOGIN_CONFIG_FILE como o caminho de configuração.

Para interromper o uso do arquivo de configuração de login, faça o seguinte:

  • Se você usou a flag --activate ao criar o arquivo de configuração ou ativou esse arquivo com gcloud config set auth/login_config_file, execute o seguinte comando para cancelar a definição:

    gcloud config unset auth/login_config_file
  • Limpe a variável de ambiente CLOUDSDK_AUTH_LOGIN_CONFIG_FILE, se ela estiver definida.

Login headless da CLI gcloud

Para fazer login na gcloud CLI usando um fluxo headless, faça o seguinte:

OIDC

  1. Faça login de um usuário no app do IdP e receba o token OIDC.

    Para mais informações sobre como conseguir o token, consulte a documentação do OIDC do seu IdP.

  2. Salve o token OIDC retornado pelo IdP em um local seguro da máquina local.

  3. Gere um arquivo de configuração executando o seguinte 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"
    

Substitua:

  • WORKFORCE_POOL_ID: o ID do pool de colaboradores
  • PROVIDER_ID: o ID do provedor
  • PATH_TO_OIDC_TOKEN: o caminho para o arquivo de credencial do IdP OIDC
  • WORKFORCE_POOL_USER_PROJECT: o número do projeto associado ao projeto do usuário dos pools de forças de trabalho

O principal precisa ter a permissão serviceusage.services.use neste projeto.

Quando você executa o comando, ele gera um arquivo de configuração IdP do OIDC formatado de forma semelhante a esta:

{
  "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. Faça login de um usuário no app do IdP e receba a declaração SAML.

    Para saber como receber a declaração SAML do IdP, consulte a documentação do IdP.

  2. Salve a resposta SAML retornada pelo IdP em um local seguro da máquina local e armazene o caminho da seguinte maneira:

    SAML_ASSERTION_PATH=SAML_ASSERTION_PATH
    
  3. Para gerar um arquivo de configuração, execute o seguinte 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"
    

    Substitua:

    • WORKFORCE_PROVIDER_ID: o ID do provedor da força de trabalho criado anteriormente neste guia.
    • WORKFORCE_POOL_ID: o ID do pool de forças de trabalho que você criou anteriormente neste guia.
    • SAML_ASSERTION_PATH: o caminho do arquivo de declaração SAML.
    • PROJECT_ID: o ID do projeto;

    O arquivo de configuração gerado é semelhante ao seguinte:

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

Para fazer login no gcloud usando a troca de tokens, execute o seguinte comando:

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

Em seguida, o gcloud troca suas credenciais do IdP por tokens de acesso temporários Trusted Cloud , permitindo que você faça outras chamadas de gcloud para Trusted Cloud.

O resultado será assim:

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

Para listar as contas credenciadas e a conta ativa no momento, execute o seguinte comando:

gcloud auth list

Autorizar com uma conta de serviço

O comando gcloud auth login pode autorizar o acesso com uma conta de serviço usando um arquivo de credenciais armazenado no sistema de arquivos local. Essa credencial pode ser uma credencial de usuário com permissão para representar a conta de serviço, um arquivo de configuração de credencial para a federação de identidade da carga de trabalho ou uma chave de conta de serviço.

Autorizar uma conta de serviço usando a representação da conta de serviço

Para autorizar a CLI da gcloud a usar credenciais de conta de serviço falsificadas, faça o seguinte:

  1. No Trusted Cloud console, acesse a página "Contas de serviço".

    Acessar a página "Contas de serviço"

  2. Escolha uma conta atual ou crie uma nova clicando em Criar conta de serviço.

  3. Para conseguir a permissão necessária para representar uma conta de serviço, peça ao administrador para conceder a você o papel do IAM de criador de tokens da conta de serviço (roles/iam.serviceAccountTokenCreator) na conta de serviço. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

    Esse papel predefinido contém a permissão iam.serviceAccounts.getAccessToken que é necessária para representar uma conta de serviço.

    Também é possível conseguir essa permissão com papéis personalizados ou outros papéis predefinidos.

  4. Autorize a CLI gcloud com sua identidade de usuário executando gcloud auth login.

  5. Para configurar a CLI da gcloud para usar a identidade e o acesso fornecidos por uma conta de serviço por padrão, use o comando de configuração da CLI da gcloud:

    gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
    
  6. Para deixar de usar as credenciais de conta de serviço falsificadas com a CLI da gcloud por padrão, desative a flag com o comando de configuração da CLI da gcloud:

    gcloud config unset auth/impersonate_service_account
    

Autorizar uma conta de serviço usando a federação de identidade da carga de trabalho

Para autorizar a gcloud CLI com uma conta de serviço usando credenciais externas da federação de identidade da carga de trabalho, faça o seguinte:

  1. No Trusted Cloud console, acesse a página "Contas de serviço".

    Acessar a página "Contas de serviço"

  2. Escolha uma conta atual ou crie uma nova clicando em Criar conta de serviço.

  3. Crie um arquivo de configuração de credenciais para a federação de identidade da carga de trabalho seguindo as instruções do provedor de identidade compatível.

  4. Para ativar a conta de serviço, execute gcloud auth login com a flag --cred-file:

    gcloud auth login --cred-file=CONFIGURATION_FILE
    

    Substitua CONFIGURATION_FILE pelo caminho de um arquivo de configuração de credenciais para a federação de identidade da carga de trabalho.

Autorizar uma conta de serviço usando uma chave

Para autorizar a CLI gcloud com uma conta de serviço usando uma chave de conta de serviço, faça o seguinte:

  1. No Trusted Cloud console, acesse a página "Contas de serviço".

    Acessar a página "Contas de serviço"

  2. Escolha uma conta atual ou crie uma nova clicando em Criar conta de serviço.

  3. Para criar chaves de conta de serviço, consulte as instruções do IAM para Criar uma chave de conta de serviço.

  4. Para ativar a conta de serviço, execute gcloud auth login com a flag --cred-file:

    gcloud auth login --cred-file=KEY_FILE
    

    Substitua KEY_FILE pelo caminho para um arquivo de chave da conta de serviço.

Listar contas

Para listar as contas com credenciais armazenadas no sistema local, execute gcloud auth list:

gcloud auth list

A CLI do gcloud lista as contas e mostra qual delas está ativa:

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

Mudar a conta ativa

Para alternar a conta ativa, execute gcloud config set:

gcloud config set account ACCOUNT

em que [ACCOUNT] é o endereço de e-mail completo da conta.

Você também pode alternar entre contas criando uma configuração separada que especifique a conta diferente e alterne entre as configurações:

gcloud config configurations activate CONFIGURATION

Se você quiser alternar a conta usada pela CLI do gcloud a cada invocação, modifique a conta ativa usando a flag --account.

Definir a duração da sessão autorizada

Como administrador, você controla por quanto tempo diferentes usuários podem acessar a CLI do gcloud sem precisar fazer a autenticação novamente. Por exemplo, é possível forçar usuários com privilégios elevados a fazer uma nova autenticação com mais frequência do que os usuários regulares.

Para mais informações, consulte Definir a duração da sessão para Trusted Cloud serviços.

Revogar credenciais de uma conta

Revogue as credenciais quando quiser impedir o acesso da CLI gcloud por uma conta específica. Não é necessário revogar credenciais para alternar entre contas.

Para revogar as credenciais, execute gcloud auth revoke:

gcloud auth revoke ACCOUNT

Para revogar o acesso da CLI gcloud em todas as máquinas, remova a CLI gcloud da lista de aplicativos que têm acesso à sua conta.

Trabalhar com arquivos de credencial

Encontrar os arquivos de credenciais

Para encontrar o local dos seus arquivos de credenciais, execute gcloud info:

gcloud info

A CLI gcloud imprime informações sobre a instalação. Arquivos de credenciais são armazenados no diretório de configuração do usuário:

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

Configurar o Application Default Credentials

A CLI gcloud oferece suporte ao gerenciamento de credenciais padrão do aplicativo (ADC, na sigla em inglês) com o grupo de comandos gcloud auth application-default. Para disponibilizar as credenciais do usuário ao ADC, execute gcloud auth application-default login:

gcloud auth application-default login

Essas credenciais não são usadas pela CLI gcloud. Para mais maneiras de configurar o ADC, consulte Configurar o Application Default Credentials.

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

A seguir