As chaves da conta de serviço da CLI gcloud e p12

A CLI da gcloud permite que os desenvolvedores usem chaves privadas para se autenticar em contas de serviço, também conhecidas como contas robô. Esta página descreve como criar e usar chaves p12 de contas de serviço para o Google Cloud.

Instalar pyca/criptografia

A biblioteca pyca/cryptography (versão >= 2.5) permite que a CLI da gcloud decodifique os arquivos de chave no formato p12 que identificam uma conta de serviço. Como ela inclui rotinas criptográficas, pyca/cryptography não é distribuída com a CLI do gcloud.

Se o sistema tiver pip, a interface de linha de comando para o Python Package Index (em inglês) instalado, instale o pyca/cryptography para executar o seguinte comando: Para mais informações, consulte Instruções de instalação.

python -m pip install cryptography

CLOUDSDK_PYTHON_SITEPACKAGES=1

Depois que a pyca/cryptography for instalada, você precisará definir a variável de ambiente CLOUDSDK_PYTHON_SITEPACKAGES como 1. A configuração dessa variável de ambiente instrui a CLI da gcloud a buscar as bibliotecas a serem incluídas fora do seu próprio diretório google-cloud-sdk/lib. Geralmente, é seguro definir CLOUDSDK_PYTHON_SITEPACKAGES=1, mas se algo parar de funcionar, talvez seja necessário desfazê-lo.

Como criar uma conta de serviço

Para criar uma nova conta de serviço e fazer o download de um arquivo de chave p12, siga as etapas em Como criar chaves de conta de serviço.

Esse arquivo de chave deve ser considerado confidencial, portanto, tome as devidas precauções para impedir qualquer acesso por partes não confiáveis. Em sistemas do tipo Unix, é possível assegurar que um arquivo não fique visível a outros usuários conectados remotamente (que não sejam um usuário raiz) usando o comando a seguir.

chmod 0600 YOUR_KEY_FILE.p12

Como usar sua conta de serviço com a CLI gcloud

As credenciais da conta de serviço podem ser ativadas usando gcloud auth activate-service-account.

Para usar sua conta de serviço com a CLI gcloud, execute gcloud auth activate-service-account e transmita o caminho para seu arquivo de chave com a flag --key-file necessária e atribua a ela uma conta como argumento posicional.

A conta que você usa precisa ser o e-mail da conta de serviço listada no Console do Google Cloud, mas ela não será verificada. Isso é só para ajudar você a lembrar da conta que está usando.

gcloud auth activate-service-account --key-file ~/mykeys/my_key_file.p12 my_service_account@developer.gserviceaccount.com
Activated service account credentials for my_service_account@developer.gserviceaccount.com.

AVISO: a gcloud auth activate-service-account fará uma cópia da sua chave privada e a armazenará em $HOME/.config/gcloud/legacy_credentials/my_service_account@developer.gserviceaccount.com/private_key.p12 e $HOME/.config/gcloud/credentials.db. Ela será criada com permissões 0600 para leitura e gravação somente do seu próprio usuário, e tudo armazenado em $HOME/.config/gcloud precisa ser considerado confidencial. Para excluir de maneira confiável e segura os dados de autenticação armazenados pela CLI gcloud, exclua $HOME/.config/gcloud. O gerenciamento seguro do arquivo de chave salvo do console do Google Cloud é deixado para o usuário. Em caso de dúvida, revogue a chave no console do Google Cloud.

Agora que a conta de serviço foi ativada, ela pode ser vista na lista de credenciais.

gcloud auth list
        Credentialed Accounts
ACTIVE    ACCOUNT
*         my_service_account@developer.gserviceaccount.com

To set the active account, run:
    $ gcloud config set account my_service_account@developer.gserviceaccount.com

Voltar ao início