Nesta página, explicamos como excluir e cancelar a exclusão de 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
.
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 as amostras de C++ nesta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e, em seguida, 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 contas de serviço do IAM
Funções exigidas
Para ter as permissões necessárias para excluir e cancelar a exclusão de contas de serviço, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
- Para excluir contas de serviço:
Excluir contas de serviço (
roles/iam.serviceAccountDeleter
) - Para excluir e cancelar a exclusão de contas de serviço:
Administrador da conta de serviço (
roles/iam.serviceAccountAdmin
)
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 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.
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, os aplicativos do App Engine e as instâncias de VM do Compute Engine que usam essas contas de serviço não terão mais acesso aos recursos no projeto.
Exclua as contas de serviço com cuidado. Verifique se os aplicativos críticos não estão mais usando uma conta de serviço antes de excluí-la. Se você não tiver certeza se uma conta de serviço está sendo usada, recomendamos desativar a conta de serviço em vez de excluí-la. As contas de serviço desativadas poderão ser reativadas se ainda forem necessárias.
Para restaurar uma conta de serviço excluída, cancele a exclusão dela em até 30 dias. Após esse período, o IAM a remove permanentemente. 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.
Para reduzir ainda mais o risco de excluir uma conta de serviço necessária, também é possível ativar as recomendações de risco de alterações. As recomendações de alteração de risco geram avisos quando você tenta excluir contas de serviço que o Google Cloud identificou como importantes.
Se você excluir uma conta de serviço e criar uma nova com o mesmo nome, a nova conta de serviço será tratada como uma identidade separada. Ela não herda os papéis concedidos à conta de serviço excluída. Por outro lado, quando você exclui uma conta de serviço, ela é cancelada, a identidade da conta de serviço não é alterada e ela mantém os papéis.
Quando uma conta de serviço é excluída, as vinculações de papel não são removidas imediatamente. No entanto, elas são limpas automaticamente do sistema após no máximo 60 dias. Até que essa limpeza aconteça, a conta de serviço aparece nas vinculações de papéis com um prefixo
deleted:
e um sufixo?uid=NUMERIC_ID
, em queNUMERIC_ID
é um ID numérico exclusivo da conta de serviço.As contas de serviço excluídas não contam para a cota da conta de serviço.
Console
No console do Google 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
-
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.
-
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
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
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. Os IDs do projeto são strings alfanuméricas, comomy-project
.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.
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 principais excluídos.
Encontrar o ID numérico de uma conta de serviço excluída
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 de permissão 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" }, ] }
Os IDs numéricos só são anexados aos nomes dos principais excluídos.
Como alternativa, é possível pesquisar nos registros de auditoria a operação
DeleteServiceAccount
que excluiu a conta de serviço:No console do Google Cloud, acesse a página do Explorador de registros.
No editor de consultas, 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, clique em
Última hora, selecione um período mais longo na lista suspensa e clique em Aplicar.Clique em Run query. O Explorador de registros exibe as operações
DeleteServiceAccount
que afetaram as contas de serviço com o nome especificado.Encontre e anote o ID numérico da conta de serviço excluída seguindo um destes procedimentos:
Se os resultados da pesquisa incluem apenas uma operação
DeleteServiceAccount
, localize o ID numérico no campo ID exclusivo do painel Campos de registro.Se os resultados da pesquisa mostrarem mais de um registro, faça o seguinte:
Encontre a entrada de registro correta. Para encontrar a entrada de registro correta, clique na seta expansora
ao lado de uma entrada de registro. 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.Na entrada de registro correta, localize o ID numérico da conta de serviço. Para localizar o ID numérico, expanda o campo
protoPayload
da entrada de registro e localize o camporesourceName
.O ID numérico é tudo o que está após
serviceAccounts
no camporesourceName
.
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
-
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.
-
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. Os IDs do projeto são strings alfanuméricas, comomy-project
.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 listar e editar contas de serviço.
- Analise o processo para conceder papéis do IAM a todos os tipos de principais, incluindo contas de serviço.
- Entenda como anexar contas de serviço a recursos.
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-09-03 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema na tradução" },{ "type": "thumb-down", "id": "otherDown", "label":"Outro" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Fácil de entender" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Meu problema foi resolvido" },{ "type": "thumb-up", "id": "otherUp", "label":"Outro" }]