Nesta página, explicamos como fazer upload de uma chave pública para uma conta de serviço. Depois de fazer upload da chave pública, use a chave privada do par de chaves para autenticar como a conta de serviço.
Antes de começar
Enable the IAM API.
Entenda as credenciais da conta de serviço.
Funções exigidas
Para ter as permissões necessárias para fazer upload das chaves da conta de serviço,
peça ao administrador que conceda a você o
papel do IAM Administrador da chave da conta de serviço (roles/iam.serviceAccountKeyAdmin
) no projeto ou a conta de serviço com as chaves que você quer
gerenciar.
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Para mais informações, consulte papéis de contas de serviço.
Os papéis básicos do IAM também contêm permissões para gerenciar as chaves da conta de serviço. Não conceda papéis básicos em um ambiente de produção, recomendamos que você faça isso em um ambiente de desenvolvimento ou teste.
Fazer upload de uma chave pública em uma conta de serviço
É possível fazer upload parte pública da chave de um par de chaves gerenciadas pelo usuário para associá-la a uma conta de serviço. Depois de fazer upload da chave pública, é possível usar a chave privada do par de chaves como uma chave de conta de serviço.
A chave enviada precisa ser uma chave pública RSA, encapsulada em um certificado X.509 v3 e codificada em base64. É possível usar ferramentas como o OpenSSL para gerar uma chave e um certificado nesse formato.
Não inclua informações particulares no certificado X.509. Especificamente, use um assunto genérico e não adicione atributos opcionais. Os certificados são visíveis publicamente. As informações particulares no certificado ficam visíveis para qualquer pessoa que recupere o certificado. Para mais informações, consulte Evitar divulgar informações confidenciais em certificados X.509 enviados.
Por exemplo, o comando a seguir gera um par de chaves RSA de 2.048 bits e encapsula a chave pública em um certificado autoassinado válido por 365 dias:
openssl req -x509 -nodes -newkey rsa:2048 -days 365 \
-keyout /path/to/private_key.pem \
-out /path/to/public_key.pem \
-subj "/CN=unused"
Em seguida, faça o upload do arquivo public_key.pem
como a chave pública de uma conta
de serviço.
Console
- No console do Google Cloud, acesse a página Contas de serviço.
As etapas restantes serão exibidas automaticamente no console do Google Cloud.
- Selecione um projeto.
- Na página Contas de serviço, clique no endereço de e-mail da conta de serviço que vai receber o upload de uma chave.
- Clique na guia Chaves.
- Clique no menu suspenso Adicionar chave e depois em Fazer upload de uma chave atual.
- Clique em Procurar, localize e selecione o arquivo da chave pública. Se preferir, copie e cole o conteúdo do arquivo da chave pública na caixa Colar chave atual.
- Clique em Fazer upload.
gcloud
Execute o comando gcloud iam service-accounts keys upload
para fazer upload de uma chave pública a fim de assinar chaves de contas de serviço.
Substitua os seguintes valores:
KEY_FILE
: o caminho para o arquivo que contém os dados da chave a serem enviados, por exemplo,./public_key.pem
.SA_NAME
: o nome da conta de serviço para a qual fazer o upload de uma chave.PROJECT_ID
: é o ID do projeto do Google Cloud.
gcloud iam service-accounts keys upload KEY_FILE \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
A saída contém um identificador exclusivo para a chave enviada:
Name: projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/c7b74879da78e4cdcbe7e1bf5e129375c0bfa8d0
Para determinar se o comando foi bem-sucedido, execute o comando gcloud iam service-accounts keys list
:
gcloud iam service-accounts keys list \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
A saída terá o mesmo identificador exclusivo que foi retornado após a criação da chave:
KEY_ID | CREATED_AT | EXPIRES_AT | DESATIVADO |
c7b74879da78e4cdcbe7e1bf5e129375c0bfa8d0 | 2019-06-26T21:01:42Z | 9999-12-31T23:59:59Z |
REST
O método projects.serviceAccounts.keys.upload
faz upload da chave pública de um par de chaves gerenciado pelo usuário e adiciona essa chave à conta de serviço.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID
: o ID do projeto do Google Cloud. Os IDs do projeto são strings alfanuméricas, comomy-project
.SA_NAME
: o nome da conta de serviço à qual associar a chave.PUBLIC_KEY_DATA
: os dados da chave pública do par de chaves. Precisa ser uma chave pública RSA encapsulada em um certificado X.509 v3. Codifique os dados da chave pública em base64, incluindo a primeira linha,-----BEGIN CERTIFICATE-----
, e a última,-----END CERTIFICATE-----
.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys:upload
Corpo JSON da solicitação:
{ "publicKeyData": "PUBLIC_KEY_DATA" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/c7b74879da78e4cdcbe7e1bf5e129375c0bfa8d0", "validAfterTime": "2020-05-17T19:31:19Z", "validBeforeTime": "2021-05-17T19:31:19Z", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "USER_PROVIDED", "keyType": "USER_MANAGED" }
Desativar uploads de chave pública
Para desativar a capacidade de fazer upload de chaves no seu projeto, consulte Como restringir o upload da chave de conta de serviço.
A seguir
- Saiba como criar e gerenciar chaves de contas de serviço.
- Saiba como listar e receber chaves de conta de serviço.
- Saiba mais sobre alternativas às chaves de contas de serviço para autenticação.
- Saiba como usar chaves de contas de serviço para autenticar como uma conta de serviço.
- Noções básicas sobre as práticas recomendadas para gerenciar chaves de conta de serviço.
Faça um teste
Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
Comece a usar gratuitamente