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