Controle de acesso para projetos que usam o IAM

O Google Cloud oferece o gerenciamento de identidade e acesso (IAM), que permite a concessão de acesso mais granular a recursos específicos do Google Cloud e impede o acesso indesejado a outros recursos. Com o IAM, é possível 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 (usuários) tem quais acessos (papéis) a quais recursos, definindo políticas do IAM que concedem papéis específicos com determinadas permissões.

Nesta página, explicamos as permissões e os papéis do IAM que podem ser usados para gerenciar o acesso a projetos. Para uma descrição detalhada do IAM, leia a documentação do IAM. Consulte, especificamente, Como conceder, alterar e revogar acesso.

Permissões e papéis

Com o IAM, todos os métodos do Google Cloud exigem que a conta que faz a solicitação de API tenha as permissões apropriadas para acessar o recurso. Com as permissões, os usuários podem executar ações específicas nos recursos do Google Cloud. Por exemplo, a permissão resourcemanager.projects.list deixa que um usuário liste os projetos que possui, enquanto resourcemanager.projects.delete permite que um usuário exclua um projeto.

Você não concede permissões diretamente aos usuários, você atribui a eles papéis com uma ou mais permissões agrupadas. Você concede esses papéis em um recurso específico, mas eles também se aplicam a todos os descendentes desse recurso na hierarquia de recursos.

Para gerenciar projetos, o autor da chamada precisa ter um papel que inclua as seguintes permissões e que é concedido na organização ou pasta que contém os projetos:

Método Permissões necessárias
resourcemanager.projects.create resourcemanager.projects.create
resourcemanager.projects.delete resourcemanager.projects.delete
resourcemanager.projects.get resourcemanager.projects.get
resourcemanager.projects.getIamPolicy resourcemanager.projects.getIamPolicy
resourcemanager.projects.list Não requer permissões. O método lista projetos para os quais o autor da chamada tem a permissão resourcemanager.projects.get. Se você fornecer um filtro ao chamar list(), por exemplo byParent, o método listará os projetos para os quais você tem a permissão resourcemanager.projects.get e que satisfazem a condição de filtro.
resourcemanager.projects.setIamPolicy resourcemanager.projects.setIamPolicy
resourcemanager.projects.testIamPermissions Não requer permissões.
resourcemanager.projects.undelete resourcemanager.projects.undelete
resourcemanager.projects.update Para atualizar os metadados de um projeto, é preciso ter a permissão resourcemanager.projects.update. Para atualizar o pai de um projeto e mover o projeto para uma organização, é necessário ter a permissão resourcemanager.projects.create na organização.
projects.move projects.move

Como usar papéis básicos

A tabela a seguir lista os papéis básicos que é possível conceder para acessar um projeto, a descrição do que o papel faz e as permissões incluídas nele. Evite usar funções básicas, exceto quando for absolutamente necessário. Esses papéis são muito poderosos e incluem um grande número de permissões em todos os serviços do Google Cloud. Para mais detalhes sobre quando usar papéis básicos, consulte as Perguntas frequentes sobre gerenciamento de identidade e acesso.

Os papéis predefinidos do IAM são muito mais detalhados e permitem gerenciar com cuidado o conjunto de permissões a que os usuários têm acesso. Consulte Noções básicas sobre papéis para ver uma lista de papéis que podem ser concedidos no nível do projeto. Criar papéis personalizados pode aumentar ainda mais o controle que você tem sobre as permissões do usuário.

Role Descrição Permissões
roles/owner Acesso completo a todos os recursos. Todas as permissões para todos os recursos.
roles/editor Acesso de edição a todos os recursos. Acesso de criação e atualização para todos os recursos.
roles/viewer Acesso de leitura a todos os recursos. Acesso de recebimento e listagem para todos os recursos.
roles/browserBeta Acesso para procurar recursos no projeto.
  • resourcemanager.organizations.get
  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.list
  • resourcemanager.projectInvites.get

Como criar papéis personalizados

Além dos papéis predefinidos descritos neste tópico, é possível criar papéis personalizados. Eles são conjuntos de permissões que você adapta de acordo com suas necessidades. Ao criar um papel personalizado para usar com o Gerenciador de Recursos, lembre-se dos seguintes pontos:
  • as permissões list e get, como resourcemanager.projects.get/list, devem sempre ser concedidas como um par;
  • quando seu papel personalizado inclui as permissões folders.list e folders.get, ela também deve incluir projects.list e projects.get;
  • atribua com cuidado a permissão setIamPolicy para organizações, pastas e projetos. Com ela, o usuário pode conceder todas as outras permissões.

Controle de acesso no nível do projeto

É possível conceder papéis a usuários no nível do projeto usando o Console do Google Cloud, a API do Gerenciador de Recursos e a ferramenta de linha de comando gcloud. Para mais instruções, consulte Como conceder, alterar e revogar o acesso dos membros do projeto.

Funções padrão

Ao criar um projeto, você recebe o papel roles/owner para, como seu criador, ter controle total do projeto. Veja acima as permissões que este papel fornece. Esse papel padrão pode ser alterado normalmente em uma política do IAM.

VPC Service Controls

Controles de serviço VPC podem fornecer segurança adicional ao usar a API do Gerenciador de Recursos. Para saber mais sobre o VPC Service Controls, consulte a visão geral sobre ele.

Para saber mais sobre as limitações atuais no uso do Gerenciador de Recursos com os Controles de serviço VPC, consulte a página produtos e limitações suportados.