As contas de serviço podem ser divididas nas seguintes categorias:
- Contas serviço gerenciado pelo usuário, que você cria e gerencia.
- Agentes de serviço, que são criados e gerenciados pelo Google Cloud
Nesta página, descrevemos como cada tipo de conta de serviço é criado e usado.
Contas de serviço gerenciadas pelo usuário
As contas de serviço gerenciadas pelo usuário são criadas nos seus projetos. É possível atualizar, desativar, ativar e excluir essas contas de serviço a seu critério. Também é possível gerenciar o acesso de outros principais a essas contas de serviço.
É possível criar contas de serviço gerenciadas pelo usuário no projeto usando a API do IAM, o Console do Google Cloud ou a Google Cloud CLI.
Por padrão, é possível criar até 100 contas de serviço gerenciadas pelo usuário em um projeto. Se essa cota não atender às suas necessidades, use o Console do Google Cloud para solicitar um aumento de cota. Somente contas de serviço criadas pelo usuário são contabilizadas nessa cota. Contas de serviço padrão e agentes de serviço não são contabilizadas na cota.
Ao criar uma conta de serviço gerenciada pelo usuário no projeto, você escolhe um nome para a conta de serviço. Esse nome aparece no endereço de e-mail que identifica a conta de serviço, com o seguinte formato:
service-account-name@project-id.iam.gserviceaccount.com
Para saber como criar uma conta de serviço, consulte Criar contas de serviço.
Contas de serviço padrão
As contas de serviço padrão são gerenciadas pelo usuário e criadas automaticamente quando você ativa ou usa determinados serviços do Google Cloud. Essas contas de serviço permitem que o serviço implante jobs que acessam outros recursos do Google Cloud. Você é responsável por gerenciar as contas de serviço padrão depois que elas são criadas.
Se seu aplicativo for executado em um ambiente do Google Cloud com uma conta de serviço padrão, o aplicativo poderá usar as credenciais da conta de serviço padrão para chamar as APIs do Google Cloud. Como alternativa, crie sua própria conta de serviço gerenciada pelo usuário e use-a para se autenticar. Para mais detalhes, consulte Configurar as Application Default Credentials.
Dependendo da configuração da política da organização, a conta de serviço padrão pode
receber automaticamente o papel de Editor no
projeto. É altamente recomendável desativar a concessão automática de papéis
aplicando a restrição
da política da organização iam.automaticIamGrantsForDefaultServiceAccounts
. Se você criou a organização após 3 de maio de 2024, essa
restrição será aplicada por padrão.
Se você desativar a concessão automática de papéis, precisará decidir quais papéis conceder às contas de serviço padrão e, em seguida, conceder esses papéis por conta própria.
Se a conta de serviço padrão já tiver o papel de Editor, recomendamos que você o substitua por papéis menos permissivos.Para modificar com segurança os papéis da conta de serviço, use o Simulador de política para conferir o impacto da mudança e, em seguida, conceda e revogue os papéis apropriados.
Esta tabela mostra os serviços que criam contas de serviço padrão:
Serviço | Nome da conta de serviço | Endereço de e-mail |
---|---|---|
App Engine e qualquer serviço do Google Cloud que use o App Engine | Conta de serviço padrão do App Engine | project-id@appspot.gserviceaccount.com |
Compute Engine e qualquer serviço do Google Cloud que use o Compute Engine | Conta de serviço padrão do Compute Engine |
project-number-compute@developer.gserviceaccount.com
|
Agentes de serviço
Alguns serviços do Google Cloud precisam acessar seus recursos para serem capazes de atuar em seu nome. Por exemplo, quando você usa o Cloud Run para executar um contêiner, o serviço precisa acessar qualquer tópico do Pub/Sub que possa acionar o contêiner.
Para atender a essa necessidade, o Google cria e gerencia contas de serviço de muitos serviços do Google Cloud. Essas contas de serviço são conhecidas como agentes de serviços. Talvez você encontre agentes de serviço na política de permissão do projeto, nos registros de auditoria ou na página do IAM no console do Google Cloud.
Os agentes de serviço não são criados nos seus projetos. Portanto, você não os verá ao acessar as contas de serviço dos seus projetos. Não é possível acessá-los diretamente.
Por padrão, os agentes de serviço não são listados na página IAM do Console do Google Cloud, mesmo que tenham recebido um papel no projeto. Para ver as concessões de papel para agentes de serviço, marque a caixa de seleção Incluir concessões de papel fornecidas pelo Google.
O Google Cloud tem os seguintes tipos de agentes de serviço:
- Agentes de serviço específicos do serviço
- Agente de serviço de APIs do Google
- Gerenciador de papéis para agentes de serviço
Agentes de serviço específicos do serviço
A maioria dos agentes de serviço é específica do serviço, ou seja, eles atuam em nome de serviços individuais. Em muitos casos, esses agentes de serviços são necessários para que os serviços funcionem corretamente. Por exemplo, é com eles que os coletores do Cloud Logging gravam registros nos buckets do Cloud Storage.
Cada agente de serviço está associado a um recurso. Esse recurso normalmente é um projeto, uma pasta ou uma organização, embora também possa ser um recurso específico do serviço, por exemplo, uma instância do Cloud SQL. Esse recurso define o escopo das ações do agente de serviço. Por exemplo, se um agente de serviço estiver associado a um projeto, ele atuará em nome de um serviço para o projeto e seus recursos descendentes.
É possível determinar o tipo de recurso a que um agente de serviço está associado analisando o endereço de e-mail:
- Se o agente de serviço estiver associado a um projeto, uma pasta ou uma organização, o endereço de e-mail dele conterá o ID numérico desse projeto, pasta ou organização.
- Se o agente de serviço estiver associado a um recurso específico do serviço, o endereço de e-mail dele conterá um ID de projeto numérico e um identificador exclusivo. O ID numérico do projeto indica qual projeto é o proprietário do recurso a que o agente de serviço está associado. O identificador exclusivo distingue o agente de serviço de outros agentes semelhantes no mesmo projeto.
Agente de serviço de APIs do Google
A política de permissão do projeto provavelmente se refere a uma conta de serviço chamada agente de serviço de APIs do Google, com um endereço de e-mail que usa o seguinte formato: project-number@cloudservices.gserviceaccount.com
Essa conta de serviço executa processos internos do Google Cloud em seu nome.
Ele recebe automaticamente o papel de editor (roles/editor
) no projeto.
Gerenciador de papéis para agentes de serviço
Os registros de auditoria do IAM podem se referir à conta de serviço service-agent-manager@system.gserviceaccount.com
.
Essa conta de serviço gerencia os papéis concedidos aos agentes de serviço. Ela é visível apenas nos registros de auditoria.
Por exemplo, se você usar uma nova API, o Google poderá criar automaticamente um novo agente de serviço e conceder a ele papéis no projeto. A concessão desses papéis gera uma entrada de registro de auditoria, que mostra que service-agent-manager@system.gserviceaccount.com
definiu a política de permissão para o projeto.
Criação do agente de serviço
O momento exato em que um agente de serviço é criado depende do tipo de recurso a que ele está associado.
Os agentes de serviço associados a um recurso específico são criados quando você cria o recurso. Para mais informações sobre como identificar e configurar esses agentes de serviço, consulte a documentação do recurso associado.
Os agentes de serviço associados a projetos, pastas e organizações são criados conforme necessário, geralmente quando você usa um serviço. Se necessário, também é possível pedir ao Google Cloud para criar agentes de serviço para um serviço antes de usá-lo. Para mais informações, consulte Criar e conceder papéis a agentes de serviço.
Papéis de agente de serviço
Algumas ações no Google Cloud exigem que os agentes de serviço criem e acessem recursos em seu nome. Por exemplo, quando você cria um cluster do Dataproc, o agente de serviço do Dataproc precisa de permissão para criar instâncias do Compute Engine no seu projeto.
Para receber esse acesso, os agentes de serviço precisam de papéis específicos do IAM. Muitos agentes de serviços para envolvidos no projeto recebem automaticamente os papéis necessários.
Os nomes desses papéis concedidos automaticamente geralmente terminam em serviceAgent
ou ServiceAgent
. Para outros agentes de serviço, você precisa conceder papéis a eles para que o serviço funcione corretamente. Para descobrir quais agentes de serviço recebem papéis automaticamente, consulte a referência do agente de serviço.
Se você pedir ao Google Cloud para criar agentes de serviço antes de usar um serviço, conceda a eles os papéis que normalmente são concedidos automaticamente. Isso ocorre porque os agentes de serviço criados na solicitação de um usuário não recebem papéis automaticamente. Se você não conceder esses papéis aos agentes, alguns serviços poderão não funcionar corretamente. Para saber como conceder esses papéis a agentes de serviço, consulte Criar e conceder papéis a agentes de serviço.
Agentes de serviço principais
Na referência do agente de serviço, alguns deles são identificados como agentes de serviço primários. Agentes de serviços primários são aqueles com endereço de e-mail retornado quando você aciona a criação de um agente de serviço.
Registro de auditoria
Às vezes, quando um principal inicia uma operação, um agente de serviço executa uma ação em nome do principal. No entanto, ao analisar os registros de auditoria de um agente de serviço, pode ser difícil dizer em nome de quem o agente estava agindo e por quê.
Para ajudar você a entender o contexto das ações de um agente de serviço, alguns deles incluem mais detalhes nos registros de auditoria, como o job associado à ação e o principal que criou o job.Os seguintes agentes de serviço incluem estes detalhes adicionais nos registros de auditoria:
Esses detalhes adicionais estão no campo serviceDelegationHistory
do registro de auditoria,
que é aninhado no campo authenticationInfo
. Esse campo contém as seguintes
informações:
- O principal original que criou o job
- O agente de serviço que executou a ação
- O serviço a que pertence o agente de serviço
- O ID do job
Por exemplo, suponha que
example-user@example.com
crie um job usando a API BigQuery Connection. Essa tarefa exige que um dos agentes de serviço da API BigQuery Connection execute uma ação. Nesse caso, o registro de auditoria da ação do agente de serviço
conteria um campo serviceDelegationHistory
semelhante a este:
{ "protoPayload": { "@type": "type.googleapis.com/google.cloud.audit.AuditLog", "authenticationInfo": { "principalEmail": "bqcx-442188550395-jujw@gcp-sa-bigquery-condel.iam.gserviceaccount.com", "serviceDelegationHistory": { "originalPrincipal": "user:my-user@example.com", "serviceMetadata": [ { "principalSubject": "serviceAccount:bqcx-442188550395-jujw@gcp-sa-bigquery-condel.iam.gserviceaccount.com", "serviceDomain": "bigquery.googleapis.com", } ] } } } }
A seguir
- Saiba como criar e gerenciar contas de serviço.
- Saiba como criar e gerenciar chaves de contas de serviço.
- Confira as práticas recomendadas para trabalhar com contas de serviço.
- Práticas recomendadas para gerenciar chaves de 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 recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
Comece a usar gratuitamente