Nesta página, explicamos como criar e gerenciar contas de serviço usando a API
Identity and Access Management (IAM), o Console do Google Cloud e a ferramenta de linha de
comando gcloud
.
Por padrão, cada projeto pode ter até 100 contas de serviço que controlam o acesso aos seus recursos. Se necessário, é possível solicitar um aumento de cota. Saiba mais sobre cotas e limites.
Antes de começar
- Entenda as contas de serviço do IAM
- Instale a ferramenta de linha de comando
gcloud
Permissões necessárias
Para permitir que um usuário gerencie contas de serviço, conceda um dos seguintes papéis:
- Usuário da conta de serviço (
roles/iam.serviceAccountUser
): inclui permissões para listar contas de serviço, receber detalhes sobre uma conta de serviço e representar uma conta de serviço. - Administrador da conta de serviço (
roles/iam.serviceAccountAdmin
): inclui permissões para listar contas de serviço e acessar detalhes sobre uma conta de serviço. Também inclui permissões para criar, atualizar e excluir contas de serviço, e para visualizar ou alterar a política do IAM em uma conta de serviço.
Para saber mais sobre esses papéis, consulte Papéis de contas de serviço.
Os papéis básicos do IAM também contêm permissões para gerenciar as contas 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.
Como criar uma conta de serviço
Criar uma conta de serviço é semelhante a adicionar um membro ao projeto, mas essa conta pertence aos aplicativos e não a um usuário final.
Ao criar uma conta de serviço, é necessário fornecer um código alfanumérico (sa-name
nos exemplos abaixo), como my-service-account
. O código precisa ter entre 6 e 30 caracteres e pode conter caracteres alfanuméricos minúsculos e traços. Depois de criar uma conta de serviço, não é possível alterar o nome dela.
O nome da conta de serviço é um identificador exclusivo. Ele aparecerá no endereço de e-mail da conta de serviço provisionado durante a criação, como sa-name@project-id.iam.gserviceaccount.com
.
Cada conta de serviço também tem um código numérico exclusivo, que é gerado automaticamente.
Você também fornece as seguintes informações ao criar uma conta de serviço:
sa-description
é uma descrição opcional da conta de serviço.sa-display-name
é um nome intuitivo para a conta de serviço.project-id
é o ID do seu projeto do Google Cloud.
Para criar uma conta de serviço, o usuário precisa ter, no mínimo, o
papel de administrador da conta de serviço (roles/iam.serviceAccountAdmin
) ou o papel básico de
editor (roles/editor
).
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.
Depois de criar uma conta de serviço, talvez seja necessário aguardar 60 segundos ou mais para usar essa conta. Se você tentar usar imediatamente uma conta de serviço depois de criá-la e receber um erro, aguarde pelo menos 60 segundos e tente novamente.
Console
-
No Console do Cloud, acesse a página Contas de serviço.
Acessar a página "Contas de serviço" - Selecione um projeto.
- Clique em Criar conta de serviço.
-
Insira um nome de conta de serviço a ser exibido no Console do Cloud.
O Console do Cloud gerará um ID de conta de serviço com base nesse nome. Edite o ID se for necessário. Não será possível alterar o ID depois.
- Opcional: digite uma descrição da conta de serviço.
-
Se você não quiser definir controles de acesso agora, clique em Concluído para terminar a criação da conta de serviço.
Para definir controles de acesso agora, clique em Criar e avance para a próxima etapa.
- Opcional: escolha um ou mais papéis do IAM para conceder à conta de serviço no projeto.
- Quando você terminar de adicionar papéis, clique em Continuar.
- Opcional: no campo Papel de usuários da conta de serviço, adicione membros que possam personificar a conta de serviço.
- Opcional: no campo Papel de administradores da conta de serviço, adicione membros que possam gerenciar a conta de serviço.
- Clique em Concluído para terminar a criação da conta de serviço.
gcloud
-
Para criar a conta de serviço, execute o comando
gcloud iam service-accounts create
.gcloud iam service-accounts create SERVICE_ACCOUNT_ID \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"
Substitua os seguintes valores:
-
SERVICE_ACCOUNT_ID
: o ID da conta de serviço -
DESCRIPTION
(opcional): uma descrição da conta de serviço -
DISPLAY_NAME
: um nome de conta de serviço a ser exibido no Console do Cloud.
-
-
Opcional: para conceder à conta de serviço um papel do IAM no projeto, execute o comando
gcloud projects add-iam-policy-binding
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \ --role="ROLE_NAME"
Substitua os seguintes valores:
-
PROJECT_ID
: o ID do projeto -
SERVICE_ACCOUNT_ID
: o ID da conta de serviço -
ROLE_NAME
: um nome de papel, comoroles/compute.osLogin
-
-
Opcional: para permitir que os usuários personifiquem a conta de serviço, execute o comando
gcloud iam service-accounts add-iam-policy-binding
para conceder a um indivíduo o papel de usuário (roles/iam.serviceAccountUser
) na conta de serviço:gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"
Substitua os seguintes valores:
-
PROJECT_ID
: o ID do projeto. -
SERVICE_ACCOUNT_ID
: o ID da conta de serviço -
USER_EMAIL
: o endereço de e-mail do usuário
-
REST
O método
serviceAccounts.create
cria 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.sa-name
: o ID alfanumérico da sua conta de serviço. Esse nome precisa ter entre 6 e 30 caracteres e pode conter caracteres alfanuméricos minúsculos e traços.sa-description
: opcional. Uma descrição da conta de serviço.sa-display-name
: um nome legível para a conta de serviço.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/project-id/serviceAccounts
Corpo JSON da solicitação:
{ "accountId": "sa-name", "serviceAccount": { "description": "sa-description", "displayName": "sa-display-name" } }
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", "projectId": "my-project", "uniqueId": "123456789012345678901", "email": "my-service-account@my-project.iam.gserviceaccount.com", "displayName": "My service account", "etag": "BwUp3rVlzes=", "description": "A service account for running jobs in my project", "oauth2ClientId": "987654321098765432109" }
C#
Antes de testar este exemplo, siga as instruções de configuração do C# no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para C#.
Go
Antes de testar este exemplo, siga as instruções de configuração do Go no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Go.
Java
Antes de testar este exemplo, siga as instruções de configuração do Java no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Java.
Python
Antes de testar este exemplo, siga as instruções de configuração do Python no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Python.
Depois de criar uma conta de serviço, atribua a ela um ou mais papéis para que ela possa atuar em seu nome.
Além disso, se a conta de serviço precisar acessar recursos em outros projetos, geralmente é necessário ativar as APIs desses recursos no projeto em que você criou a conta de serviço.
Como listar contas de serviço
Ao listar contas de serviço, é possível especificar parâmetros para limitar o número de contas a serem incluídas na resposta. Em seguida, use ListServiceAccountsResponse.next_page_token
em uma solicitação subsequente para listar as contas de serviço restantes.
Use esse método para auditar contas de serviço e chaves ou criar ferramentas personalizadas para gerenciar contas de serviço.
Para listar contas de serviço, o usuário precisa ter, no mínimo,
o papel de usuário da conta de serviço (roles/iam.serviceAccountUser
) ou o papel básico
de Leitor (roles/viewer
).
Console
No Console do Cloud, acesse a página Contas de serviço.
Selecione um projeto.
A página Contas de serviço lista todas as contas de serviço gerenciadas pelo usuário no projeto selecionado. A página não lista contas de serviço gerenciadas pelo Google.
gcloud
Execute o comando gcloud iam service-accounts list
para listar todas as contas de serviço em um projeto.
Comando:
gcloud iam service-accounts list
A saída é a lista de todas as contas de serviço no projeto:
NAME EMAIL sa-display-name-1 sa-name-1@project-id.iam.gserviceaccount.com sa-display-name-2 sa-name-2@project-id.iam.gserviceaccount.com
REST
O método
serviceAccounts.list
lista todas as contas de serviço no projeto.
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.
Método HTTP e URL:
GET https://iam.googleapis.com/v1/projects/project-id/serviceAccounts
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "accounts": [ { "name": "projects/my-project/serviceAccounts/sa-1@my-project.iam.gserviceaccount.com", "projectId": "my-project", "uniqueId": "123456789012345678901", "email": "sa-1@my-project.iam.gserviceaccount.com", "description": "My first service account", "displayName": "Service account 1", "etag": "BwUpTsLVUkQ=", "oauth2ClientId": "987654321098765432109" }, { "name": "projects/my-project/serviceAccounts/sa-2@my-project.iam.gserviceaccount.com", "projectId": "my-project", "uniqueId": "234567890123456789012", "email": "sa-2@my-project.iam.gserviceaccount.com", "description": "My second service account", "displayName": "Service account 2", "etag": "UkQpTwBVUsL=", "oauth2ClientId": "876543210987654321098" } ] }
C#
Antes de testar este exemplo, siga as instruções de configuração do C# no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para C#.
Go
Antes de testar este exemplo, siga as instruções de configuração do Go no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Go.
Java
Antes de testar este exemplo, siga as instruções de configuração do Java no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Java.
Python
Antes de testar este exemplo, siga as instruções de configuração do Python no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Python.
Como atualizar uma conta de serviço
O nome de exibição (nome intuitivo) e a descrição de uma conta de serviço geralmente são usados para capturar mais informações sobre ela, como o objetivo da conta de serviço ou uma pessoa de contato dela.
Para atualizar o nome ou a descrição de uma conta de serviço, o usuário precisa, no mínimo,
receber o papel de Administrador da conta de serviço (roles/iam.serviceAccountAdmin
) ou
o papel básico de Editor (roles/editor
).
Console
No Console do Cloud, acesse a página Contas de serviço.
Selecione um projeto.
Clique no endereço de e-mail da conta de serviço que você quer renomear.
Insira o novo nome na caixa Nome e clique em Salvar.
gcloud
Execute o comando gcloud iam service-accounts update
para atualizar uma conta de serviço.
Comando:
gcloud iam service-accounts update \ sa-name@project-id.iam.gserviceaccount.com \ --description="updated-sa-description" \ --display-name="updated-display-name"
A saída é a conta de serviço renomeada:
description: updated-sa-description displayName: updated-display-name name: projects/project-id/serviceAccounts/sa-name@project-id.iam.gserviceaccount.com
REST
O método
serviceAccounts.patch
atualiza 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.sa-id
: o ID da sua conta de serviço. Pode ser o endereço de e-mail da conta de serviço no formatosa-name@project-id.iam.gserviceaccount.com
ou o ID numérico exclusivo da conta de serviço.sa-name
: o ID alfanumérico da sua conta de serviço. Esse nome precisa ter entre 6 e 30 caracteres e pode conter caracteres alfanuméricos minúsculos e traços.- Substitua pelo menos uma das seguintes opções:
updated-display-name
: um novo nome de exibição para sua conta de serviço.updated-description
: uma nova descrição para a conta de serviço.
Método HTTP e URL:
PATCH https://iam.googleapis.com/v1/projects/project-id/serviceAccounts/sa-id
Corpo JSON da solicitação:
{ "serviceAccount": { "email": "sa-name@project-id.iam.gserviceaccount.com", "displayName": "updated-display-name", "description": "updated-description" }, "updateMask": "displayName,description" }
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", "displayName": "My updated service account", "description": "An updated description of my service account" }
C#
Antes de testar este exemplo, siga as instruções de configuração do C# no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para C#.
Go
Antes de testar este exemplo, siga as instruções de configuração do Go no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Go.
Java
Antes de testar este exemplo, siga as instruções de configuração do Java no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Java.
Python
Antes de testar este exemplo, siga as instruções de configuração do Python no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Python.
Como desativar uma conta de serviço
Semelhante à exclusão de uma conta de serviço, quando você desativa uma conta de serviço, os aplicativos não terão mais acesso aos recursos do Google Cloud por meio dela. Se você desativar as contas de serviço padrão do App Engine e do Compute Engine, as instâncias não terão mais acesso aos recursos no projeto. Se você tentar desativar uma conta de serviço já desativada, nada acontecerá.
Diferente da exclusão de uma conta de serviço, é possível facilmente reativar contas desse tipo quando for necessário. Recomendamos desativar uma conta de serviço antes de excluí-la para garantir que nenhum aplicativo importante esteja usando essa conta.
Para desativar uma conta de serviço, o usuário precisa ter, no mínimo, o
papel de Administrador da conta de serviço (roles/iam.serviceAccountAdmin
) ou o papel básico
de Editor (roles/editor
).
Console
No Console do Cloud, acesse a página Contas de serviço.
Selecione um projeto.
Clique no nome da conta de serviço a ser desativada.
Em Status da conta de serviço, clique em Desativar conta de serviço e em Desativar para confirmar a alteração.
gcloud
Execute o comando gcloud iam service-accounts disable
para desativar uma conta de serviço.
Comando:
gcloud iam service-accounts disable sa-name@project-id.iam.gserviceaccount.com
Saída:
Disabled service account sa-name@project-id.iam.gserviceaccount.com
REST
O método
serviceAccounts.disable
desativa imediatamente 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.sa-id
: o ID da sua conta de serviço. Pode ser o endereço de e-mail da conta de serviço no formatosa-name@project-id.iam.gserviceaccount.com
ou o ID numérico exclusivo da conta de serviço.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/project-id/serviceAccounts/sa-id:disable
Para enviar a solicitação, expanda uma destas opções:
Se bem-sucedido, o corpo da resposta fica vazio.
C#
Antes de testar este exemplo, siga as instruções de configuração do C# no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para C#.
Go
Antes de testar este exemplo, siga as instruções de configuração do Go no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Go.
Java
Antes de testar este exemplo, siga as instruções de configuração do Java no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Java.
Python
Antes de testar este exemplo, siga as instruções de configuração do Python no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Python.
Como ativar uma conta de serviço
Depois de ativar uma conta de serviço desativada, os aplicativos recuperarão o acesso aos recursos do Google Cloud por meio dessa conta de serviço.
É possível ativar uma conta de serviço desativada a qualquer momento. Se você tentar ativar uma conta de serviço já ativada, nada acontecerá.
Para ativar uma conta de serviço, o usuário precisa ter, no mínimo,
o papel de Administrador da conta de serviço (roles/iam.serviceAccountAdmin
) ou o papel básico
de Editor (roles/editor
).
Console
No Console do Cloud, acesse a página Contas de serviço.
Selecione um projeto.
Clique no nome da conta de serviço a ser ativada.
Em Status da conta de serviço, clique em Ativar conta de serviço e em Ativar para confirmar a alteração.
gcloud
Execute o comando gcloud iam service-accounts enable
para ativar uma conta de serviço.
Comando:
gcloud iam service-accounts enable sa-name@project-id.iam.gserviceaccount.com
Saída:
Enabled service account sa-name@project-id.iam.gserviceaccount.com
REST
O
método serviceAccounts.enable
ativa uma conta de serviço desativada anteriormente.
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.sa-id
: o ID da sua conta de serviço. Pode ser o endereço de e-mail da conta de serviço no formatosa-name@project-id.iam.gserviceaccount.com
ou o ID numérico exclusivo da conta de serviço.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/project-id/serviceAccounts/sa-id:enable
Para enviar a solicitação, expanda uma destas opções:
Se bem-sucedido, o corpo da resposta fica vazio.
C#
Antes de testar este exemplo, siga as instruções de configuração do C# no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para C#.
Go
Antes de testar este exemplo, siga as instruções de configuração do Go no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Go.
Java
Antes de testar este exemplo, siga as instruções de configuração do Java no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Java.
Python
Antes de testar este exemplo, siga as instruções de configuração do Python no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Python.
Como excluir uma conta de serviço
Quando você exclui uma conta de serviço, os aplicativos não têm mais acesso aos recursos do Google Cloud por meio dessa conta de serviço. Se você excluir as contas de serviço padrão do App Engine e do Compute Engine, as instâncias não terão mais acesso aos recursos no projeto.
Tome cuidado ao excluir contas de serviço e, antes de fazer isso, verifique se os aplicativos importantes não estão mais usando essa conta. Caso não tenha certeza se uma conta de serviço está sendo utilizada, recomendamos que você desative a conta de serviço antes de excluí-la. É fácil reativar esse tipo de conta, desde que ela ainda esteja em uso.
Quando uma conta de serviço é excluída, as vínculações de papel dela não são removidas imediatamente. Elas são limpas automaticamente do sistema após no máximo 60 dias.
As contas de serviço excluídas não contam para a cota da conta de serviço.
Para excluir uma conta de serviço, o usuário precisa ter, no mínimo,
o papel de Administrador da conta de serviço (roles/iam.serviceAccountAdmin
) ou o papel básico
de Editor (roles/editor
).
Console
No Console do Cloud, acesse a página Contas de serviço.
Selecione um projeto.
Selecione a conta de serviço que você quer excluir e clique em Excluir
.
gcloud
Execute o comando gcloud iam service-accounts delete
para excluir uma conta de serviço.
Comando:
gcloud iam service-accounts delete \ sa-name@project-id.iam.gserviceaccount.com
Saída:
Deleted service account sa-name@project-id.iam.gserviceaccount.com
REST
O
método
serviceAccounts.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.sa-id
: o ID da sua conta de serviço. Pode ser o endereço de e-mail da conta de serviço no formatosa-name@project-id.iam.gserviceaccount.com
ou o ID numérico exclusivo da conta de serviço.
Método HTTP e URL:
DELETE https://iam.googleapis.com/v1/projects/project-id/serviceAccounts/sa-id
Para enviar a solicitação, expanda uma destas opções:
Se bem-sucedido, o corpo da resposta fica vazio.
C#
Antes de testar este exemplo, siga as instruções de configuração do C# no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para C#.
Go
Antes de testar este exemplo, siga as instruções de configuração do Go no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Go.
Java
Antes de testar este exemplo, siga as instruções de configuração do Java no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Java.
Python
Antes de testar este exemplo, siga as instruções de configuração do Python no Guia de início rápido do IAM: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API IAM para Python.
Como cancelar a exclusão de uma conta de serviço
Em alguns casos, é possível usar o comando undelete
para cancelar a exclusão de uma conta de serviço excluída. Geralmente, é possível cancelar a exclusão de uma conta de serviço excluída se ela atender a estes critérios:
A conta de serviço foi excluída há menos de 30 dias.
Após 30 dias, o IAM remove permanentemente a conta de serviço. O Google Cloud não pode recuperar a conta de serviço depois que ela é removida permanentemente, mesmo que você envie uma solicitação de suporte.
Não há uma conta de serviço com o mesmo nome da conta de serviço excluída.
Por exemplo, suponha que você excluiu acidentalmente a conta de serviço
my-service-account@project-id.iam.gserviceaccount.com
. Você ainda precisa de uma conta de serviço com esse nome, então crie uma nova conta de serviço com o mesmo nome,my-service-account@project-id.iam.gserviceaccount.com
.A nova conta de serviço não herda as permissões da conta de serviço excluída. Na verdade, ela é completamente separada da conta de serviço excluída. No entanto, não é possível cancelar a exclusão da conta de serviço original, porque a nova conta de serviço tem o mesmo nome.
Para resolver esse problema, exclua a nova conta de serviço e tente cancelar a exclusão da conta de serviço original.
Se não for possível cancelar a exclusão da conta de serviço, crie uma nova conta de serviço com o mesmo nome, revogue todos os papéis da conta de serviço excluída, e conceda os mesmos papéis à nova conta de serviço. Para detalhes, consulte Políticas com membros excluídos.
Como localizar o ID numérico da conta de serviço
Quando você cancelar a exclusão de uma conta de serviço, deverá fornecer o ID numérico dela. O ID numérico é um número de 21 dígitos, como 123456789012345678901
, que identifica exclusivamente a conta de serviço. Por exemplo, se você excluir uma conta de serviço e,
em seguida, criar uma nova conta de serviço com o mesmo nome, a conta
de serviço original e a nova terão IDs numéricos diferentes.
Se você souber que uma vinculação em uma política do IAM inclui a conta
de serviço excluída, será possível conseguir a política e encontrar o ID
numérico nela. Esse ID está anexado ao nome da conta de serviço
excluída. Por exemplo, nesta política, o ID numérico da conta de serviço
excluída é 123456789012345678901
:
{ "version": 1, "etag": "BwUjMhCsNvY=", "bindings": [ { "members": [ "deleted:serviceAccount:my-service-account@project-id.iam.gserviceaccount.com?uid=123456789012345678901" ], "role": "roles/iam.serviceAccountUser" }, ] }
Como alternativa, é possível pesquisar nos registros de auditoria a operação DeleteServiceAccount
que excluiu a conta de serviço:
No Console do Cloud, acesse a página Visualizador de registros.
Na caixa de pesquisa próxima à parte superior da página, clique na seta de expansão
e selecione Converter para filtro avançado.Na caixa de pesquisa, insira a seguinte consulta, substituindo
service-account-email
pelo endereço de e-mail da conta de serviço (por exemplo,my-service-account@project-id.iam.gserviceaccount.com
):resource.type="service_account" resource.labels.email_id="service-account-email" "DeleteServiceAccount"
Se a conta de serviço foi excluída há mais de uma hora, selecione um período mais longo na lista suspensa
Última hora.Se a conta de serviço foi excluída há mais de sete dias, selecione Sem limite.
Clique em Enviar filtro. O Visualizador de registros exibe as operações
DeleteServiceAccount
que afetaram as contas de serviço com o nome especificado. O ID numérico de cada conta de serviço aparece ao lado do textoDeleteServiceAccount
.Se os resultados da pesquisa incluem apenas uma operação
DeleteServiceAccount
, anote o ID numérico. Você usará o ID numérico para desfazer a exclusão da conta de serviço.Clique na
seta de expansão ao lado de um resultado de pesquisa, se houver mais de um. Revise os detalhes da entrada de registro e determine se ela mostra a operação que você quer desfazer. Repita esse processo até encontrar a entrada de registro correta e anote o ID numérico contido nessa entrada.
Como recuperar a conta de serviço por ID numérico
Depois de encontrar o ID numérico para a conta de serviço excluída, tente desfazer a exclusão da conta de serviço.
gcloud
Execute o comando gcloud beta iam service-accounts undelete
para cancelar a exclusão de uma conta de serviço.
Comando:
gcloud beta iam service-accounts undelete account-id
Saída:
restoredAccount: email: sa-name@project-id.iam.gserviceaccount.com etag: BwWWE7zpApg= name: projects/project-id/serviceAccounts/sa-name@project-id.iam.gserviceaccount.com oauth2ClientId: '123456789012345678901' projectId: project-id uniqueId: 'account-id'
REST
O
método serviceAccounts.undelete
restaura uma conta de serviço excluída.
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.sa-numeric-id
: o ID numérico exclusivo da conta de serviço.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/projects/project-id/serviceAccounts/sa-numeric-id:undelete
Para enviar a solicitação, expanda uma destas opções:
Se você cancelar a exclusão de uma conta, receberá um código de resposta
200 OK
com detalhes sobre a conta de serviço restaurada, como abaixo:
{ "restoredAccount": { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com", "projectId": "my-project", "uniqueId": "123456789012345678901", "email": "my-service-account@my-project.iam.gserviceaccount.com", "displayName": "My service account", "etag": "BwUp3rVlzes=", "description": "A service account for running jobs in my project", "oauth2ClientId": "987654321098765432109" } }
A seguir
- Saiba como criar e gerenciar chaves de contas de serviço.
- Analise o processo para conceder papéis do IAM a todos os tipos de membros, incluindo contas de serviço.
- Saiba como usar o recomendador do IAM para reduzir o escopo das permissões de todos os membros, incluindo as contas de serviço.
- Entenda como permitir que os membros representem contas 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 ganham US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
Comece gratuitamente