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