Autorizar a CLI gcloud

Para acessar o Google Cloud, geralmente é necessário autorizar a Google Cloud CLI. 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 o Google Cloud, use uma conta de usuário ou uma conta de serviço.

Uma conta de usuário é uma conta do Google Cloud que permite que os usuários finais se autentiquem no seu aplicativo. Na maioria dos casos de uso comuns, especialmente usando a CLI gcloud de maneira interativa, o uso de uma conta de usuário é uma prática recomendada.

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

Escolha um tipo de autorização

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

Escolha um dos seguintes tipos de autorização:

Tipo Descrição
Conta de usuário Recomendado se 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 Recomendado se você estiver instalando e configurando a CLI gcloud como parte de um processo de implantação de máquina em produção ou para uso em instâncias de máquina virtual do Compute Engine em que todos os usuários têm acesso a root.

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

Autorizar com uma conta de usuário

Use os seguintes comandos da CLI gcloud para autorizar o acesso com uma conta de usuário:

Comando Descrição
gcloud init Autoriza o acesso e executa outras etapas de configuração comuns.
gcloud auth login Autoriza apenas o acesso.

Durante a autorização, esses comandos recebem credenciais de conta do Google Cloud e as armazenam no sistema local. A conta especificada se torna a conta ativa na sua configuração. A CLI gcloud usa as credenciais armazenadas para acessar o Google Cloud. É possível ter quantas contas quiser com credenciais armazenadas para uma única instalação da CLI gcloud, mas apenas uma conta fica ativa por vez.

Executar gcloud init

gcloud init autoriza o acesso e executa outras etapas comuns de configuração. O gcloud init usa um fluxo de autorização baseado na Web para autenticar a conta de usuário e conceder permissões de acesso.

Para autorizar o acesso e executar outras etapas de configuração comuns:

  1. Execute gcloud init:

    gcloud init
    

    Ou para impedir o comando de abrir automaticamente um navegador da Web:

    gcloud init --console-only
    

    Usar a sinalização --console-only é útil se você estiver executando o comando em um sistema remoto que usa ssh e não tem acesso a um navegador nesse sistema. Nesse caso, abra manualmente o URL fornecido em um navegador no sistema local para concluir o processo de autorização.

  2. Siga o fluxo de autorização baseado no navegador para autenticar a conta e conceder permissões de acesso.

Para mais informações sobre gcloud init, consulte Como inicializar a CLI gcloud.

Executar o gcloud auth login

A execução de gcloud auth login autoriza apenas a conta de usuário. Para autorizar o acesso sem realizar outras etapas de configuração, use uma das opções a seguir.

  • Se você quiser autorizar a CLI gcloud em uma máquina com um navegador, siga estas etapas.

    1. Autorize a CLI gcloud:

      gcloud auth login
      
    2. Siga o fluxo de autorização baseado no navegador para autenticar a conta e conceder permissões de acesso.

  • Se você quiser autorizar a CLI gcloud em uma máquina que não tenha um navegador e instalar a CLI gcloud em outra máquina com um navegador, use a sinalização --no-browser.

    1. Autorize a CLI gcloud:

      gcloud auth login --no-browser
      
    2. Copie o comando longo que começa com gcloud auth login --remote-bootstrap=".

    3. Cole e execute esse comando na linha de comando de outra máquina confiável que tenha instalações locais de um navegador da Web e da versão 372.0 ou mais recente da ferramenta CLI gcloud.

    4. Copie a saída do URL longo da máquina com o navegador da Web.

    5. Cole o URL longo de volta na primeira máquina no prompt, "Insira a saída do comando acima" e pressione Enter para concluir a autorização.

  • Se você quiser autorizar a CLI gcloud em uma máquina que não tenha um navegador e não puder instalar a CLI gcloud em outra máquina com um navegador, use a sinalização --no-launch-browser. A sinalização --no-launch-browser impede que o comando abra automaticamente um navegador da Web.

    1. Autorize a CLI gcloud:

      gcloud auth login --no-launch-browser
      
    2. Copie o URL longo que começa com https://accounts.google.com/o/oauth2/auth....

    3. Cole esse URL no navegador de outra máquina confiável que tenha um navegador da Web.

    4. Copie o código de autorização da máquina com o navegador da Web.

    5. Cole o código de autorização de volta na primeira máquina no prompt, "Inserir código de verificação" e pressione Enter para concluir a autorização.

  • Se você já tiver um token de acesso, use um dos seguintes métodos para transmiti-lo à CLI gcloud:

    • Armazene o token de acesso em um arquivo e defina o caminho dele com a sinalização --access-token-file.
    • Armazene o token de acesso em um arquivo e defina o caminho dele na propriedade auth/access_token_file.
    • Defina a variável de ambiente CLOUDSDK_AUTH_ACCESS_TOKEN como o valor do token de acesso.

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 credencial 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 credenciais 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 de conta de serviço

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

  1. No console do Google Cloud, 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 garantir que o principal tenha a permissão necessária a fim de representar uma conta de serviço, peça ao administrador para conceder a ele 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 como conceder papéis, consulte Gerenciar acesso.

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

    O administrador também pode conceder essa permissão ao principal com papéis personalizados ou outros papéis predefinidos.

  4. Execute gcloud auth login para autorizar a CLI gcloud com sua identidade de usuário.

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

    gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
    
  6. Para parar de usar credenciais de conta de serviço falsificadas com a CLI gcloud por padrão, desmarque a sinalização com o comando config da CLI 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 CLI gcloud com uma conta de serviço usando credenciais externas da federação de identidade da carga de trabalho, faça o seguinte:

  1. No console do Google Cloud, 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 para 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 de conta de serviço

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 console do Google Cloud, 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 sobre 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 gcloud lista as contas e mostra qual delas está ativa:

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

Trocar 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 gcloud por invocação, modifique a conta ativa usando a sinalização --account.

Definir a duração da sessão autorizada

Como administrador, é possível controlar por quanto tempo diferentes usuários podem acessar a CLI 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 normais.

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

Revogar credenciais de uma conta

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

Para revogar as credenciais, execute gcloud auth revoke:

gcloud auth revoke ACCOUNT

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

Trabalhar com arquivos de credenciais

Encontrar seus 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 é compatível com o gerenciamento do Application Default Credentials (ADC) com o grupo de comandos gcloud auth application-default. Para disponibilizar as credenciais de usuário para o ADC, execute gcloud auth application-default login:

gcloud auth application-default login

Essas credenciais não são usadas pela CLI gcloud. Para mais formas 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