Nesta página, explicamos como criar e gerenciar chaves de conta de serviço com o console do Google Cloud, a Google Cloud CLI, a API Identity and Access Management ou uma das bibliotecas de cliente do Google Cloud.
Antes de começar
Ative a IAM API.
Entenda as credenciais da conta de serviço.
Funções exigidas
Para ter as permissões necessárias para criar e excluir 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 obter mais informações sobre como conceder papéis, consulte
Gerenciar o 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.
Crie uma chave de conta de serviço
Para usar uma conta de serviço fora do Google Cloud, como em outras plataformas ou em locais, é preciso primeiro estabelecer a identidade da conta de serviço. Pares de chaves públicas/privadas fornecem uma maneira segura de atingir essa meta. Quando você cria uma chave de conta de serviço, a parte pública é armazenada no Google Cloud, enquanto a parte privada fica disponível apenas para você. Para mais informações sobre pares de chaves públicas/privadas, consulte Chaves de conta de serviço.
É possível criar uma chave da conta de serviço
usando o console do Google Cloud, a CLI gcloud, o
método serviceAccounts.keys.create()
ou uma das bibliotecas de cliente.
Uma conta de serviço pode ter até 10 chaves.
Por padrão, as chaves da conta de serviço nunca expiram. É possível usar uma restrição de política da organização para especificar o período de validade da chave de conta de serviço. Para detalhes, consulte Prazos de validade das chaves gerenciadas pelo usuário.
Nos exemplos abaixo, SA_NAME
é o nome da conta de serviço e PROJECT_ID
é o ID do projeto do Google Cloud. Você pode recuperar a string SA_NAME@PROJECT_ID.iam.gserviceaccount.com
na página Contas de serviço no console do Google Cloud.
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.
- Clique no endereço de e-mail da conta de serviço para a qual você quer criar uma chave.
- Clique na guia
Chaves . - Clique no menu suspenso Adicionar chave e selecione Criar nova chave.
- Selecione JSON como o Tipo de chave e clique em Criar.
Clique em Criar para fazer o download do arquivo de chave da conta de serviço. Após fazer o download do arquivo de chave uma vez, não vai ser possível fazer novamente.
A chave salva tem o formato a seguir, em que
PRIVATE_KEY
é a parte privada do par de chaves
públicas/privadas:
{
"type": "service_account",
"project_id": "PROJECT_ID",
"private_key_id": "KEY_ID",
"private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n",
"client_email": "SERVICE_ACCOUNT_EMAIL",
"client_id": "CLIENT_ID",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL"
}
Armazene o arquivo de chave com segurança, porque ele pode ser usado para autenticar utilizando sua conta de serviço. Mova e renomeie esse arquivo como quiser.
Use os arquivos de chave da conta de serviço para autenticar um aplicativo como uma conta de serviço.
gcloud
Execute o comando gcloud iam service-accounts keys create
para criar chaves de conta de serviço.
Substitua os seguintes valores:
KEY_FILE
: o caminho para um novo arquivo de saída para a chave privada, por exemplo,~/sa-private-key.json
.SA_NAME
: o nome da conta de serviço para a qual criar uma chave.PROJECT_ID
: é o ID do projeto do Google Cloud.
gcloud iam service-accounts keys create KEY_FILE \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Saída:
created key [e44da1202f82f8f4bdd9d92bc412d1d8a837fa83] of type [json] as [/usr/home/username/KEY_FILE] for [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
Agora o download do arquivo de chave da conta de serviço é feito em sua máquina. Após fazer o download do arquivo de chave, não será possível fazer o download novamente.
A chave salva tem o formato a seguir, em que PRIVATE_KEY
é a parte privada do par de chaves públicas/privadas:
{ "type": "service_account", "project_id": "PROJECT_ID", "private_key_id": "KEY_ID", "private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n", "client_email": "SERVICE_ACCOUNT_EMAIL", "client_id": "CLIENT_ID", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL" }
Armazene o arquivo de chave com segurança, porque ele pode ser usado para autenticar utilizando sua conta de serviço. É possível mover e renomear esse arquivo como quiser.
Use os arquivos de chave da conta de serviço para autenticar um aplicativo como uma conta de serviço.
REST
O método projects.serviceAccounts.keys.create
cria uma chave para uma 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 para a qual você quer criar uma chave.KEY_ALGORITHM
: opcional. O algoritmo de chave a ser usado na chave. O padrão, que está sujeito a alterações, é uma chave RSA de 2.048 bits. Para ver uma lista de todos os valores possíveis, consulte a referência deServiceAccountKeyAlgorithm
.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys
Corpo JSON da solicitação:
{ "keyAlgorithm": "KEY_ALGORITHM" }
Para enviar a solicitação, expanda uma destas opções:
A resposta contém uma chave para a conta de serviço. A chave retornada tem o formato a seguir, em que ENCODED_PRIVATE_KEY
é a parte privada do par de chaves pública/privada, codificada em base64.
{ "name": "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID", "privateKeyType": "TYPE_GOOGLE_CREDENTIALS_FILE", "privateKeyData": "ENCODED_PRIVATE_KEY", "validAfterTime": "DATE", "validBeforeTime": "DATE", "keyAlgorithm": "KEY_ALG_RSA_2048" }
Para criar um arquivo de chave que possa ser usado para autenticar como a conta de serviço, decodifique os dados da chave privada e salve-a em um arquivo:
Linux
Execute este comando:
echo 'ENCODED_PRIVATE_KEY' | base64 --decode > PATH
Substitua PATH
pelo caminho do arquivo em que você quer salvar a chave. Use a extensão de arquivo .json
.
macOS
Execute este comando:
echo 'ENCODED_PRIVATE_KEY' | base64 --decode > PATH
Substitua PATH
pelo caminho do arquivo em que você quer salvar a chave. Use a extensão de arquivo .json
.
PowerShell
Salve os dados da chave privada codificada (
ENCODED_PRIVATE_KEY
) em um arquivo.Use
certutil
para decodificar o arquivo:certutil -decode ENCODED_FILE DECODED_FILE
Substitua os seguintes valores:
ENCODED_FILE
: o caminho para o arquivo que contém os dados da chave privada codificada.DECODED_FILE
: o caminho do arquivo em que você quer salvar a chave. Use a extensão de arquivo.json
.
Armazene os dados da chave com segurança, porque eles podem ser usados para fazer autenticação como sua conta de serviço.
Use os arquivos de chave da conta de serviço para autenticar um aplicativo como uma conta de serviço.
C++
Para instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API C++ do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API C# do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Go do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Java do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Python do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Excluir uma chave da conta de serviço
A exclusão permanente de uma chave de conta de serviço impede que você use a chave para se autenticar com as APIs do Google.
Não é possível cancelar a exclusão de uma chave. Antes de excluir uma chave, recomendamos desativar a chave e aguardar até ter certeza de que ela não é mais necessária. Depois, exclua a chave.
Como prática recomendada, alterne as chaves da conta de serviço regularmente. Para isso, siga estas etapas:
- Crie uma nova chave.
- Atualize os apps para usar a nova chave.
- Desative a chave antiga.
- Aguarde o suficiente para confirmar que a chave antiga não está mais em uso.
- Exclua a chave antiga.
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 cuja chave você quer excluir.
- Clique na guia Chaves.
- Na lista de chaves, clique em Excluir em cada uma que quiser remover.
gcloud
Execute o comando gcloud iam service-accounts keys delete
para excluir as chaves da conta de serviço.
Substitua os seguintes valores:
KEY_ID
: o ID da chave a ser excluída. Para encontrar o ID da chave, liste todas as chaves da conta de serviço, identifique a chave que você quer excluir e copie o ID.SA_NAME
: o nome da conta de serviço a que a chave pertence.PROJECT_ID
: é o ID do projeto do Google Cloud.
gcloud iam service-accounts keys delete KEY_ID \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Saída:
Deleted key [KEY_ID] for service account [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
REST
O método projects.serviceAccounts.keys.delete
exclui uma chave de 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 cuja chave você quer excluir.KEY_ID
: o ID da chave que você quer excluir. Para encontrar o ID da chave, liste todas as chaves da conta de serviço, identifique a chave que você quer excluir e copie o ID do final dename
campo O ID da chave é tudo o que vem depois dekeys/
.
Método HTTP e URL:
DELETE https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ }
C++
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API C++ do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API C# do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Go do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Java do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Python do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
A seguir
- Saiba como listar e receber chaves de conta de serviço.
- Saiba como fazer upload das chaves da sua conta de serviço público.
- Saiba como usar as chaves da conta 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