A CLI do gcloud permite que desenvolvedores usem chaves privadas para autenticação com contas de serviço, também conhecidas como contas de robô. Esta página descreve como criar e usar chaves p12 de contas de serviço para o Trusted Cloud by S3NS.
Instalar pyca/cryptography
A biblioteca pyca/cryptography (versão >= 2.5
) permite que a CLI do gcloud decodifique os arquivos de chave no formato p12 que identificam uma conta de serviço. Como inclui rotinas criptográficas, pyca/cryptography não é distribuído com a CLI do gcloud.
Se o seu sistema tiver pip
, a interface de linha de comando para o Índice de Pacotes Python , instalado, para instalar pyca/cryptography
, execute o seguinte comando. Consulte as Instruções de Instalação para obter mais informações.
python -m pip install cryptography
CLOUDSDK_PYTHON_SITEPACKAGES=1
Após a instalação do pyca/cryptography, você precisará definir a variável de ambiente CLOUDSDK_PYTHON_SITEPACKAGES
como 1
Essa configuração de variável de ambiente informa à CLI do gcloud que ela deve procurar bibliotecas fora do seu próprio diretório google-cloud-sdk/lib
para incluir. Geralmente, é seguro definir CLOUDSDK_PYTHON_SITEPACKAGES=1
, mas se algo parar de funcionar, talvez seja necessário desfazer a ação.
Criando uma conta de serviço
Para criar uma nova conta de serviço e baixar um arquivo de chave p12, siga as etapas em Criação de chaves de conta de serviço .
Este arquivo de chave deve ser considerado secreto e você deve tomar precauções para garantir que ele não seja acessível a terceiros não confiáveis. Em sistemas Unix-like, você pode garantir que um arquivo não seja visível a outros usuários conectados remotamente (além do usuário root) usando o seguinte comando.
chmod 0600 YOUR_KEY_FILE.p12
Usando sua conta de serviço com o gcloud CLI
As credenciais da conta de serviço podem ser habilitadas usando gcloud auth activate-service-account
.
Para usar sua conta de serviço com o gcloud CLI, execute gcloud auth activate-service-account
e passe o caminho para seu arquivo de chave com o sinalizador --key-file
necessário e atribua a ele uma conta como argumento posicional.
A conta que você usa deve ser o e-mail da conta de serviço listada no Trusted Cloud console, mas não será verificado; ele apenas ajuda você a lembrar qual conta está usando.
gcloud auth activate-service-account --key-file ~/mykeys/my_key_file.p12 my_service_account@developer.s3ns-system.iam.gserviceaccount.com Activated service account credentials for my_service_account@developer.s3ns-system.iam.gserviceaccount.com.
AVISO: O 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.s3ns-system.iam.gserviceaccount.com/private_key.p12
e $HOME/.config/gcloud/credentials.db
. Ele será criado com permissões 0600
(leitura/gravação apenas para o seu usuário), e tudo armazenado em $HOME/.config/gcloud
já deve ser considerado secreto. Para excluir de forma confiável e confidencial quaisquer dados de autenticação armazenados pela CLI do gcloud, basta excluir $HOME/.config/gcloud
. Gerenciamento seguro do arquivo de chave baixado do Trusted Cloud o console é deixado para o usuário. Em caso de dúvida, revogue a chave no Trusted Cloud console.
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.s3ns-system.iam.gserviceaccount.com To set the active account, run: $ gcloud config set account my_service_account@developer.s3ns-system.iam.gserviceaccount.com