Papéis do IAM do Compute Engine

O Compute Engine tem um conjunto específico de papéis de gerenciamento de identidade e acesso (IAM, na sigla em inglês). Cada papel predefinido contém um conjunto de permissões.

Ao adicionar um novo membro ao seu projeto, é possível usar uma política de IAM para dar a esse membro um ou mais papéis de IAM. Cada papel de IAM contém permissões que concedem ao membro acesso a recursos específicos.

Para saber como definir políticas no nível do projeto, leia Como conceder, alterar e revogar o acesso aos recursos na documentação do IAM. Para saber como definir políticas em recursos do Compute Engine, leia Como conceder acesso a recursos do Compute Engine. Para saber como atribuir papéis a uma conta de serviço do Compute Engine, leia a documentação Como criar e ativar contas de serviço para instâncias. Para saber como criar papéis personalizados que contenham qualquer subconjunto de permissões, leia Como criar e gerenciar funções personalizadas.

Antes de começar

O que é IAM?

O Google Cloud Platform oferece o gerenciamento de identidade e acesso (IAM), que permite dar acesso mais granular a recursos específicos da plataforma e evitar acesso indesejado a outros recursos. Com o IAM, você pode adotar o princípio de segurança do menor privilégio para conceder apenas o acesso necessário aos recursos.

O IAM permite controlar quem (identidade) tem qual (papéis) permissão para quais recursos. Basta definir as políticas. As políticas do IAM concedem papéis específicos a um membro do projeto, dando à identidade algumas permissões. Por exemplo, você pode atribuir o papel roles/compute.networkAdmin a uma Conta do Google e ela poderá controlar recursos relacionados à rede no projeto, mas não poderá gerenciar outros recursos, como instâncias e discos. Também é possível usar o IAM para gerenciar os papéis legados do Console do GCP concedidos aos membros da equipe do projeto.

Papéis predefinidos do IAM do Compute Engine

Com o IAM, todo método da API no Compute Engine requer que a identidade autora da solicitação de API tenha as permissões apropriadas para usar o recurso. As permissões são concedidas pela definição de políticas que concedem papéis a um membro (usuário, grupo ou conta de serviço) do projeto.

Além dos papéis legados (visualizador, editor, proprietário) e dos papéis personalizados, é possível atribuir os seguintes papéis predefinidos do Compute Engine aos membros do projeto.

É possível conceder vários papéis a um membro do projeto no mesmo recurso. Por exemplo, se a equipe de rede também gerencia regras de firewall, é possível conceder roles/compute.networkAdmin e roles/compute.securityAdmin ao grupo do Google da equipe de rede.

Nas tabelas a seguir, descrevemos os papéis predefinidos do IAM do Compute Engine e as permissões contidas em cada um. Cada papel inclui um conjunto de permissões adequado a uma tarefa específica. Por exemplo, os dois primeiros papéis concedem permissões para gerenciar instâncias, os papéis relacionados à rede incluem permissões para gerenciar recursos relacionados à rede, e o papel de segurança contém permissões para gerenciar recursos relacionados à segurança, como firewalls e certificados SSL.

O papel serviceAccountUser

Quando concedido com roles/compute.instanceAdmin.v1, roles/iam.serviceAccountUser fornece aos membros a capacidade de criar e gerenciar instâncias que usam uma conta de serviço. Especificamente, conceder roles/iam.serviceAccountUser e roles/compute.instanceAdmin.v1 juntos dá aos membros permissão para:

  • criar uma instância executada como conta de serviço;
  • anexar um disco permanente a uma instância executada como conta de serviço;
  • definir metadados de instância em uma instância executada como conta de serviço;
  • usar SSH para se conectar a uma instância executada como conta de serviço;
  • reconfigurar uma instância para executar como uma conta de serviço.

É possível conceder roles/iam.serviceAccountUser de duas maneiras:

  • [Recomendado] Conceda o papel a um membro em uma conta de serviço específica. Com isso, o membro tem acesso à conta de serviço em que é um iam.serviceAccountUser, mas não pode acessar outras contas de serviço em que não é um iam.serviceAccountUser.

  • Conceda o papel a um membro no nível do projeto. O membro tem acesso a todas as contas de serviço do projeto, incluindo as que forem criadas no futuro.

Saiba mais sobre contas de serviço se não estiver familiarizado com elas.

Como se conectar a uma instância como instanceAdmin

Depois de conceder a um membro do projeto a roles/compute.instanceAdmin.v1, eles podem se conectar a instâncias de máquinas virtuais usando as ferramentas padrão do Google Cloud Platform, como a ferramenta gcloud ou o SSH do navegador.

Quando um membro usa a ferramenta de linha de comando gcloud ou o SSH do navegador, as ferramentas geram automaticamente um par de chaves pública/privada e adicionam a chave pública aos metadados do projeto. Se o membro não tiver permissões para editar metadados do projeto, a ferramenta adicionará a chave pública do membro aos metadados da instância.

Se o membro tiver um par de chaves existente que quer usar, poderá adicionar manualmente a chave pública aos metadados da instância. Saiba mais sobre como adicionar e remover chaves SSH de uma instância.

IAM com contas de serviço

Crie novas contas de serviço personalizadas e conceda papéis de IAM a contas de serviço para limitar o acesso das suas instâncias. Use papéis de IAM com contas de serviço personalizadas para:

  • limitar o acesso das suas instâncias às APIs do Cloud Platform usando papéis de IAM granulares;
  • dar a cada instância ou conjunto de instâncias uma identidade única;
  • limitar o acesso à sua conta de serviço padrão.

Saiba mais sobre contas de serviço.

Grupos de instâncias gerenciadas e IAM

Grupos de instâncias gerenciadas, especialmente quando configurados para serem escalonados automaticamente, são recursos que executam ações em seu nome sem interação direta com o usuário. Os grupos de instâncias gerenciadas usam uma identidade de conta de serviço para criar, excluir e gerenciar instâncias em um grupo. Para mais informações, leia a documentação de grupos de instâncias gerenciadas e IAM.

Operações incompatíveis

Não é possível conceder acesso para executar atualizações graduais em grupos de instâncias usando papéis de IAM.

Para conceder permissão para executar essas operações, use os papéis mais abrangentes: proprietário, editor ou leitor.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine