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

A CLI gcloud permite que os desenvolvedores usem chaves privadas para autenticar com contas de serviço, também conhecidas como contas de robô. Nesta página, descrevemos 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 gcloud decodifique os arquivos de chave de formato p12 que identificam uma conta de serviço. Por incluir rotinas criptográficas, a pyca/criptografia não é distribuída com a CLI 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. Essa configuração de variável de ambiente informa à CLI gcloud que as bibliotecas precisam ser incluídas fora do 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 a 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 a ele o caminho para seu arquivo de chave com a sinalização --key-file obrigatória. Depois, atribua a ele uma conta como um 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 apenas ajuda a lembrar qual conta está sendo usada.

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 todos os dados de autenticação armazenados pela CLI gcloud, basta excluir $HOME/.config/gcloud. O gerenciamento seguro do arquivo de chave salvo no 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