A CLI gcloud permite que os programadores usem chaves privadas para fazer a autenticação 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 a Google Cloud.
Instale pyca/cryptography
A biblioteca pyca/cryptography (versão >= 2.5
) permite que a CLI gcloud descodifique os ficheiros de chave no formato p12 que identificam uma conta de serviço. Uma vez que inclui rotinas criptográficas, o pyca/cryptography não é distribuído com a CLI gcloud.
Se o seu sistema tiver o pip
, a interface de linha de comandos para o
Python Package Index, instalado,
para instalar o pyca/cryptography
, execute o seguinte comando.
Consulte as instruções de instalação
para mais informações.
python -m pip install cryptography
CLOUDSDK_PYTHON_SITEPACKAGES=1
Depois de instalar o pyca/cryptography, tem de definir a variável de ambiente CLOUDSDK_PYTHON_SITEPACKAGES
como 1
. Esta definição de variável de ambiente indica à CLI gcloud que deve procurar fora do respetivo diretório google-cloud-sdk/lib
bibliotecas a incluir. Geralmente, é seguro definir CLOUDSDK_PYTHON_SITEPACKAGES=1
, mas se
algo deixar de funcionar, pode ter de anular a ação.
Criar uma conta de serviço
Para criar uma nova conta de serviço e transferir um ficheiro de chave p12, siga os passos descritos no artigo Criar chaves de contas de serviço.
Este ficheiro de chave deve ser considerado um segredo e deve tomar precauções para garantir que não está acessível a partes não fidedignas. Em sistemas semelhantes ao Unix, pode garantir que um ficheiro não é visível para outros utilizadores ligados remotamente (exceto um utilizador de raiz) através do seguinte comando.
chmod 0600 YOUR_KEY_FILE.p12
Usar a sua conta de serviço com a CLI gcloud
Pode ativar as credenciais da conta de serviço através de
gcloud auth activate-service-account
.
Para usar a sua conta de serviço com a CLI gcloud, execute o comando
gcloud auth activate-service-account
, transmita-lhe o caminho para
o ficheiro de chave com a flag --key-file
necessária e atribua-lhe uma
conta como argumento posicional.
A conta que usa deve ser o email da conta de serviço indicado na consola Google Cloud , mas não vai ser validada. Apenas ajuda a lembrar-se da conta que está a usar.
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: o gcloud auth activate-service-account
vai
fazer uma cópia da sua chave privada e armazená-la em
$HOME/.config/gcloud/legacy_credentials/my_service_account@developer.gserviceaccount.com/private_key.p12
e
$HOME/.config/gcloud/credentials.db
.
É criado com autorizações 0600
(leitura/escrita apenas para o seu próprio utilizador) e tudo o que estiver armazenado em $HOME/.config/gcloud
deve ser considerado um segredo. Para eliminar de forma fiável e segura todos os dados de autenticação armazenados pela CLI gcloud, basta eliminar $HOME/.config/gcloud
. A gestão segura do ficheiro de chave transferido a partir da consola do Google Cloud é da responsabilidade do utilizador. Em caso de dúvida, revogue a chave na Google Cloud consola.
Agora que a conta de serviço foi ativada, pode vê-la 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