Nesta página, explicamos como criar e gerenciar chaves de conta de serviço com o console do Google Cloud, a CLI do Google Cloud, 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 .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.
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.
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 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 a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Para mais informações, consulte papéis de contas de serviço.
Dependendo da configuração da política da organização, talvez seja necessário permitir a criação de chaves de conta de serviço no projeto antes de criar uma chave.
Para receber as permissões necessárias para permitir que chaves da conta de serviço sejam criadas em um projeto, peça ao administrador que conceda a você os seguintes papéis do IAM na sua organização:
-
Administrador de políticas da organização (
roles/orgpolicy.policyAdmin
) -
Leitor da organização (
roles/resourcemanager.organizationViewer
) -
Administrador de tags (
roles/resourcemanager.tagAdmin
)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para permitir que chaves das contas de serviço sejam criadas em um projeto. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para permitir que as chaves da conta de serviço sejam criadas em um projeto:
-
orgpolicy.constraints.list
-
orgpolicy.customConstraints.create
-
orgpolicy.customConstraints.delete
-
orgpolicy.customConstraints.get
-
orgpolicy.customConstraints.list
-
orgpolicy.customConstraints.update
-
orgpolicy.policies.create
-
orgpolicy.policies.delete
-
orgpolicy.policies.list
-
orgpolicy.policies.update
-
orgpolicy.policy.get
-
orgpolicy.policy.set
-
resourcemanager.organizations.get
-
resourcemanager.projects.listTagBindings
-
resourcemanager.projects.listEffectiveTags
-
resourcemanager.tagKeys.get
-
resourcemanager.tagKeys.list
-
resourcemanager.tagValues.list
-
resourcemanager.tagValues.get
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Permitir a criação de chaves da conta de serviço
Antes de criar uma chave de conta de serviço, verifique se a restrição de política da organização
iam.disableServiceAccountKeyCreation
não está aplicada ao seu projeto. Se essa restrição for aplicada ao seu projeto, não será possível criar chaves de conta de serviço nele.Recomendamos que você aplique essa restrição para a maioria dos projetos e isente apenas os projetos que realmente exigem chaves de contas de serviço. Para mais informações sobre métodos de autenticação alternativos, consulte Escolher o método de autenticação certo para o caso de uso.
Para isentar um projeto da restrição da política da organização
iam.disableServiceAccountKeyCreation
, peça a um administrador da política da organização para fazer o seguinte:-
No nível da organização, crie uma chave de tag e um valor de tag que serão usados para definir se um recurso será isento da política da organização. Recomendamos criar uma tag com a chave
disableServiceAccountKeyCreation
e os valoresenforced
enot_enforced
.Para saber como criar chaves e valores de tag, consulte Como criar e definir uma nova tag.
-
Anexe a tag
disableServiceAccountKeyCreation
à organização e defina o valor comoenforced
. Todos os recursos na organização herdam esse valor de tag, a menos que ele seja substituído por um valor de tag diferente.Para saber como anexar tags aos recursos, consulte Como anexar tags aos recursos.
-
Para cada projeto ou pasta que você quer isentar da política da organização, anexe a tag
disableServiceAccountKeyCreation
e defina-a com o valornot_enforced
. Definir um valor de tag para um projeto ou uma pasta dessa maneira substitui o valor da tag herdado da organização. -
Crie ou atualize a política da organização que impede a criação de chaves de conta de serviço para que ela não aplique a restrição a recursos isentos. Essa política precisa ter as seguintes regras:
-
Configure a restrição
iam.disableServiceAccountKeyCreation
para que não seja aplicada aos recursos com a tagdisableServiceAccountKeyCreation: not_enforced
. A condição nessa regra precisa ser semelhante a esta:"resource.matchTag('ORGANIZATION_ID/disableServiceAccountKeyCreation', 'not_enforced')"
-
Configure a restrição
iam.disableServiceAccountKeyCreation
para que seja aplicada a todos os outros recursos.
-
Criar 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 aparecem 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 criar uma chave.PROJECT_ID
pelo ID do projeto no 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çoAntes 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 aparecem 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 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
pelo ID do projeto no 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-12-22 UTC.