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
Enable the IAM API.
Configure a autenticação.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
C++
Para usar os exemplos C++ desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
C#
Para usar os exemplos .NET desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
Go
Para usar os exemplos Go desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
Java
Para usar os exemplos Java desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
Python
Para usar os exemplos Python desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
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 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.
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 ePROJECT_ID
é o ID do projeto do Google Cloud. Você pode recuperar a stringSA_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://oauth2.googleapis.com/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.
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 Antes de começar.
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 Antes de começar.
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 Antes de começar.
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 Antes de começar.
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 Antes de começar.
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.
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 saber mais sobre como alternar chaves de contas de serviço, consulte Rotação de chaves de 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 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]
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 Antes de começar.
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 Antes de começar.
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 Antes de começar.
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 Antes de começar.
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 Antes de começar.
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:
{ }
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.
- Noções básicas sobre as práticas recomendadas para gerenciar chaves de conta de serviço.
- Saiba mais sobre alternativas às chaves de contas de serviço para autenticaçã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 gratuitamenteExceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-11-21 UTC.