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 Cloud de Confiance e a ferramenta de linha de
comando gcloud.
Antes de começar
Ative a API IAM.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.Configure a autenticação.
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console Cloud de Confiance para acessar serviços Cloud de Confiance by S3NS e APIs, não é necessário configurar a autenticação.
gcloud
Instale a Google Cloud CLI e faça login na CLI gcloud com sua identidade federada. Depois de fazer login, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud initC#
Para usar os exemplos do .NET nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
-
Instale a CLI do Google Cloud.
-
Configure a CLI gcloud para usar sua identidade federada.
Para mais informações, consulte Fazer login na CLI gcloud com sua identidade federada.
-
Crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Cloud de Confiance .
C++
Para usar os exemplos de C++ nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
-
Instale a CLI do Google Cloud.
-
Configure a CLI gcloud para usar sua identidade federada.
Para mais informações, consulte Fazer login na CLI gcloud com sua identidade federada.
-
Crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Cloud de Confiance .
Go
Para usar os exemplos de Go nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
-
Instale a CLI do Google Cloud.
-
Configure a CLI gcloud para usar sua identidade federada.
Para mais informações, consulte Fazer login na CLI gcloud com sua identidade federada.
-
Crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Cloud de Confiance .
Java
Para usar os exemplos do Java nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
-
Instale a CLI do Google Cloud.
-
Configure a CLI gcloud para usar sua identidade federada.
Para mais informações, consulte Fazer login na CLI gcloud com sua identidade federada.
-
Crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Cloud de Confiance .
Python
Para usar os exemplos do Python nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
-
Instale a CLI do Google Cloud.
-
Configure a CLI gcloud para usar sua identidade federada.
Para mais informações, consulte Fazer login na CLI gcloud com sua identidade federada.
-
Crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Cloud de Confiance .
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para CLI gcloud.
Instale a Google Cloud CLI e faça login na CLI gcloud com sua identidade federada.
Saiba mais em Autenticar para usar REST na documentação de autenticação do Cloud de Confiance .
-
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 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 usando papéis personalizados ou outros papéis predefinidos.
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 doCloud de Confiance by S3NS por meio dela. Se você excluir a conta de serviço padrão do Compute Engine, as instâncias de VM do Compute Engine que usam essa conta 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 mais informações, consulte Desativar contas de serviço não utilizadas antes de excluí-las.
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. Cloud de Confiance 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 Cloud de Confiance 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 que
NUMERIC_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 Cloud de Confiance , 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
-
No console do Cloud de Confiance , ative o Cloud Shell.
Na parte de baixo do console Cloud de Confiance , uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
-
Execute o comando
gcloud iam service-accounts deletepara excluir uma conta de serviço.Comando:
gcloud iam service-accounts delete \ SA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.comSaída:
Deleted service account SA_NAME@PROJECT_ID.s3ns.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.
Antes de executar os exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
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.
Antes de executar os exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
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.
Antes de executar os exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
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.
Antes de executar os exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
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.
Antes de executar os exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
REST
O
método
serviceAccounts.deleteexclui 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 Cloud de Confiance . 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.s3ns.iam.gserviceaccount.comou 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. Cloud de Confiance 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.s3ns.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.s3ns.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.s3ns.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 Cloud de Confiance , acesse a página Explorador de registros.
No editor de consultas, insira a seguinte consulta, substituindo
SERVICE_ACCOUNT_EMAILpelo endereço de e-mail da conta de serviço (por exemplo,my-service-account@project-id.s3ns.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
DeleteServiceAccountque 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
protoPayloadda entrada de registro e localize o camporesourceName.
O ID numérico é tudo o que está após
serviceAccountsno camporesourceName.
- Se os resultados da pesquisa incluem apenas uma operação
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
-
No console do Cloud de Confiance , ative o Cloud Shell.
Na parte de baixo do console Cloud de Confiance , uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
-
Execute o comando
gcloud beta iam service-accounts undeletepara 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.s3ns.iam.gserviceaccount.com etag: BwWWE7zpApg= name: projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.s3ns.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 Cloud de Confiance . 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.s3ns.iam.gserviceaccount.com",
"projectId": "my-project",
"uniqueId": "123456789012345678901",
"email": "my-service-account@my-project.s3ns.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.