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 contas de serviço.
Instale a CLI gcloud.
Papéis obrigatórios
Para conseguir as permissões necessárias para gerenciar as chaves da conta de serviço,
peça ao administrador que conceda a você o
papel de IAM de administrador da chave da conta de serviço (roles/iam.serviceAccountKeyAdmin
) no projeto ou a conta de serviço cujas chaves você
quer gerenciar.
Para mais informações sobre como conceder papéis, consulte
Gerenciar o acesso.
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.
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.
Acessar 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 CLI
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.
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.
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.
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.
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.
Listar chaves de conta de serviço
É possível listar as chaves da conta de serviço de uma conta de serviço usando o
console do Google Cloud, a CLI gcloud, o método
serviceAccount.keys.list()
ou uma das bibliotecas de cliente.
O método serviceAccount.keys.list()
normalmente é usado para auditar contas de serviço e chaves ou para criar ferramentas personalizadas a fim de gerenciar contas de serviço.
Para descobrir a que projeto sua chave pertence, faça o download da chave como um arquivo JSON e procure nesse arquivo.
É possível que você veja chaves que você não criou listadas. Essas chaves são criadas pelo Google e usadas pela API Service Account Credentials. Para saber mais, consulte Pares de chaves gerenciadas pelo Google.
Console
- No Console do Google Cloud, acesse a página Contas de serviço.
Acessar 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 cujas chaves você quer listar.
- Clique em Chaves. O console do Google Cloud exibe uma lista de chaves da conta de serviço.
gcloud CLI
Execute o comando gcloud iam service-accounts keys list
para listar as chaves da conta de serviço.
Substitua os seguintes valores:
SA_NAME
: o nome da conta de serviço em que as chaves serão listadas.PROJECT_ID
: é o ID do projeto do Google Cloud.
gcloud iam service-accounts keys list \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Saída:
KEY_ID | CREATED_AT | EXPIRES_AT | DESATIVADO |
8e6e3936d7024646f8ceb39792006c07f4a9760c | 2021-01-01T21:01:42Z | 9999-12-31T23:59:59Z | |
937c98f870f5c8db970af527aa3c12fd88b1c20a | 2021-01-01T20:55:40Z | 9999-12-31T23:59:59Z | Verdadeiro |
REST
O métodoprojects.serviceAccounts.keys.list
lista todas as chaves de 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 cujas chaves você quer listar.KEY_TYPES
: opcional. Uma lista separada por vírgulas dos tipos de chave que você quer incluir na resposta. O tipo de chave indica se uma chave é gerenciada pelo usuário (USER_MANAGED
) ou pelo sistema (SYSTEM_MANAGED
). Se deixado em branco, todas as chaves são retornadas.
Método HTTP e URL:
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys?keyTypes=KEY_TYPES
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "keys": [ { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/90c48f61c65cd56224a12ab18e6ee9ca9c3aee7c", "validAfterTime": "2020-03-04T17:39:47Z", "validBeforeTime": "9999-12-31T23:59:59Z", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "GOOGLE_PROVIDED", "keyType": "USER_MANAGED" }, { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/e5e3800831ac1adc8a5849da7d827b4724b1fce8", "validAfterTime": "2020-03-31T23:50:09Z", "validBeforeTime": "9999-12-31T23:59:59Z", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "GOOGLE_PROVIDED", "keyType": "USER_MANAGED" }, { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/b97699f042b8eee6a846f4f96259fbcd13e2682e", "validAfterTime": "2020-05-17T18:58:13Z", "validBeforeTime": "9999-12-31T23:59:59Z", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "GOOGLE_PROVIDED", "keyType": "USER_MANAGED", "disabled": true } ] }
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.
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.
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.
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.
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.
Gerar uma chave da conta de serviço
Use a CLI gcloud ou a API REST para receber os dados da chave pública de uma chave de conta de serviço. Além disso, é possível usar o console do Google Cloud, a CLI gcloud ou a API REST para receber metadados da chave, como o algoritmo usado e se a chave é gerenciada por você ou pelo Google.
Console
Para receber os dados da chave pública de uma chave de conta de serviço:
Use a CLI gcloud ou a API REST. Esse dado não está disponível no console do Google Cloud.
Para receber metadados de uma chave de conta de serviço:
- No Console do Google Cloud, acesse a página Contas de serviço.
Acessar 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 cujas chaves você quer listar.
- Clique em Chaves. O console do Google Cloud exibe uma lista de chaves da conta de serviço, incluindo metadados de cada chave.
gcloud CLI
Para receber os dados da chave pública de uma chave de conta de serviço:
Execute o comando gcloud beta iam service-accounts keys get-public-key
:
gcloud beta iam service-accounts keys get-public-key KEY_ID \ --iam-account=SA_NAME --output-file=FILENAME
Forneça os valores a seguir:
KEY_ID
: o ID da chave pública a ser recebida. Para encontrar o ID da chave, liste todas as chaves da conta de serviço, identifique a chave que você quer receber e copie o ID.SA_NAME
: o nome da conta de serviço cuja chave pública você quer obter.FILENAME
: o arquivo em que os dados de chave pública serão salvos.
Por padrão, os dados de chave pública são salvos no formato X.509 PEM. Para conseguir a chave pública
bruta, execute o comando com a sinalização extra --type=raw
.
Por exemplo, o comando a seguir recebe os dados da chave pública da chave
c97cc34494c07c9b483701f28368f20145b9ef97
, que pertence à conta de serviço
my-service-account@my-project.iam.gserviceaccount.com
e, em seguida, salva os dados de chave
pública no arquivo public_key.pem
:
gcloud beta iam service-accounts keys get-public-key \
c97cc34494c07c9b483701f28368f20145b9ef97 \
--iam-account=my-service-account@my-project.iam.gserviceaccount.com \
--output-file=public_key.pem
Para receber metadados de uma chave de conta de serviço:
Execute o comando gcloud iam service-accounts keys list
:
gcloud iam service-accounts keys list --iam-account=SA_NAME \ --filter="name~KEY_ID" --format=json
Forneça os valores a seguir:
SA_NAME
: o nome da conta de serviço da qual você quer os metadados da chave.KEY_ID
: o ID da chave da qual você quer metadados.
Por exemplo, o comando a seguir recebe metadados da chave
c97cc34494c07c9b483701f28368f20145b9ef97
, que pertence à conta de serviço
my-service-account@my-project.iam.gserviceaccount.com
:
gcloud iam service-accounts keys list \
--iam-account=my-service-account@my-project.iam.gserviceaccount.com \
--filter="name~c97cc34494c07c9b483701f28368f20145b9ef97" --format=json
REST
O método
projects.serviceAccounts.keys.get
retorna informações sobre uma chave pública de 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 cuja chave pública você quer obter.-
KEY_ID
: o ID da chave pública a ser recebida. Para encontrar o ID da chave, liste todas as chaves da conta de serviço, identifique a chave que você quer conseguir e copie o ID do final dename
campo O ID da chave é tudo o que vem depois dekeys/
. KEY_TYPE
: o formato em que a chave pública é retornada. UseTYPE_X509_PEM_FILE
para o formato X.509 PEM ouTYPE_RAW_PUBLIC_KEY
para a chave pública bruta. Se você omitir esse parâmetro de consulta, o método retornará metadados da chave, mas não retornará os dados da chave pública.
Método HTTP e URL:
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID?publicKeyType=KEY_TYPE
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/f4a83933ac07cf52bb74e0e66d99662a09f51a36", "validAfterTime": "2021-12-10T17:32:06Z", "validBeforeTime": "9999-12-31T23:59:59Z", "publicKeyData": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvRENDQWVTZ0F3SUJBZ0lJT2lCdm9hR09nV0F3RFFZSktvWklodmNOQVFFRkJRQXdJREVlTUJ3R0ExVUUKQXhNVk1UQXhNVGsxTlRFMk5UWXlPRGszTmpFek1qQXpNQ0FYRFRJeE1USXhNREUzTXpJd05sb1lEems1T1RreApNak14TWpNMU9UVTVXakFnTVI0d0hBWURWUVFERXhVeE1ERXhPVFUxTVRZMU5qSTRPVGMyTVRNeU1ETXdnZ0VpCk1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQzdzeDBFcXVUMGNwSXhlczl1SW0yRy9DS3EKdnc4YTl2a2JkaWZZbDZHSDh1ZUxEWDhGNHVUeEVQMkNzU3JLTHZtOFo2My9IVUxnWjBtQXByb0JlM08vaVR1ZwpmYVZ0NVNtakhvWm9YQ1lpbjR0MS93SkpvdDhrRFdPeDZhOEdieUdqZ215ak8yYk1XdEtaQ2dqeGZ3cUV0MmN3CklnajA5VzJKYTlHTWRsdVA0VGVubTRKSkJoaFpFbTJ1bVAwYVZZdkRnUWF5d0RCYnJuNG8yY0EzSWplRDZGM1gKK0VHRDNKU0s4VW02Sk5sM21adGp6VWNZSHBrYkF0U1A2ZDI5d1RmZkdIRFY0THJRWlM3bG15d3hsb3p5WnpaawpCOFpHckMzSkF1MVNVRTdQOTN6bWtFb1B6MlRUNWhaYXZMWFQ5TGM2SExiRklRVHFnVEJVWHlNMkpIcGZBZ01CCkFBR2pPREEyTUF3R0ExVWRFd0VCL3dRQ01BQXdEZ1lEVlIwUEFRSC9CQVFEQWdlQU1CWUdBMVVkSlFFQi93UU0KTUFvR0NDc0dBUVVGQndNQ01BMEdDU3FHU0liM0RRRUJCUVVBQTRJQkFRQkhPNXlpUDY3NkE4UEN2RjdRSzdFMApYZVljbzdsSStFZkowaGJrWVlmdUtnSENPcXcvd3FBbCtOSithanljT2FPWDFPMlRZN3ZOc05pR2t3eWc2QXdqCklhL1NHVjd3NkxpS2JldFRuSVp4UlhRY25lcnVvZEwycUR5eWphMDJJSXJVTmVKY1o0MVJBNXRTL3NkcTFGNm4KM0NjSXFoZTI1OTA4TUNna3cwaFB1K0VLbFF6R1B5T3pVRHBLdXg0cnRBaHJTYTBUVW1wbEMxdTJnUk1YRkF6aApWUjU0V2dNa2tabURyalBNeWdBS3JmNkd0bHo2VHRTYTVLb1BWdGpsWExUQkxaSnlhdk4zc1F2dFlBK1NFQWpWCnA1N1ZabFBYZmR0dWN4ekJaOC9zS25SOHNyYU5hVWFjamg1NEE1Nm1URTE3b0IyUWkrTHBJUTYvNnVqVnNXaUYKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "GOOGLE_PROVIDED", "keyType": "USER_MANAGED" }
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.
Para desativar a capacidade de fazer upload de chaves no seu projeto, consulte Como restringir o upload da chave de conta de serviço.
Console
- No Console do Google Cloud, acesse a página Contas de serviço.
Acessar 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 CLI
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 uma chave da conta de serviço
Desativar uma chave da conta de serviço impede o uso dela na autenticação com as APIs do Google. É possível ativar uma chave desativada a qualquer momento.
Antes de excluir uma chave de conta de serviço, recomendamos que você desative a chave e espere até ter certeza de que a chave não é mais necessária. Depois, exclua a chave.
É possível visualizar chaves desativadas no console do Google Cloud, mas não é possível usá-lo para desativar uma chave. Use a CLI gcloud ou a API REST.
gcloud CLI
Execute o comando gcloud iam service-accounts keys disable
para desativar uma chave de conta de serviço.
Substitua os seguintes valores:
KEY_ID
: o ID da chave a ser desativada. Para encontrar o ID da chave, liste todas as chaves da conta de serviço, identifique a chave que você quer desativar 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 disable KEY_ID \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Saída:
Disabled key [KEY_ID] for service account [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
REST
O
projects.serviceAccounts.keys.disable
método desativa a 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 com a chave que você quer desativar.KEY_ID
: o ID da chave que você quer desativar. Para encontrar o ID da chave, liste todas as chaves da conta de serviço, identifique a chave que você quer desativar e copie o ID do final dename
campo O ID da chave é tudo o que vem depois dekeys/
.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID:disable
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ }
Ativar uma chave de conta de serviço
Depois de desativar uma chave da conta de serviço, é possível ativá-la a qualquer momento e usá-la para autenticação com as APIs do Google.
Não é possível usar o console do Google Cloud para ativar chaves de contas de serviço. Use a CLI gcloud ou a API REST.
gcloud CLI
Execute o comando gcloud iam service-accounts keys enable
para ativar a chave da conta de serviço.
Substitua os seguintes valores:
KEY_ID
: o ID da chave a ser ativada. Para encontrar o ID da chave, liste todas as chaves da conta de serviço, identifique a chave que você quer ativar 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 enable KEY_ID \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Saída:
Enabled key [KEY_ID] for service account [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
REST
O
projects.serviceAccounts.keys.enable
método ativa a chave da 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 com a chave que você quer ativar.-
KEY_ID
: o ID da chave que você quer ativar. Para encontrar o ID da chave, liste todas as chaves da conta de serviço, identifique a chave que você quer ativar e copie o ID do final dename
campo O ID da chave é tudo o que vem depois dekeys/
.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID:enable
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ }
Excluir uma chave de 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.
Acessar 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 CLI
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.
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.
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.
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.
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.
A seguir
- 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