A CLI gcloud e as chaves de conta de serviço p12

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

Voltar ao início