Controle de acesso para projetos que usam o IAM

O Google Cloud Platform oferece gerenciamento de identidade e acesso (IAM) para que você possa conceder acesso mais detalhado 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.

Por meio da definição de políticas do IAM, é possível atribuir papéis aos usuários para que eles acessem recursos específicos. As políticas do IAM concedem papéis específicos a um usuário, dando a ele certas permissões.

Esta página explica os papéis do gerenciamento de identidade e acesso (IAM) disponíveis no nível do projeto. Para uma descrição detalhada do Cloud IAM, leia a documentação do IAM. Em particular, consulte Como conceder, alterar e revogar acesso.

Permissões e papéis

Com o Cloud IAM, todos os métodos do Google Cloud Platform exigem que a conta solicitante da API tenha as permissões necessárias para acessar o recurso. Com essas permissões, os usuários podem desempenhar ações específicas nos recursos do Google Cloud. Por exemplo, com a permissão resourcemanager.projects.list um usuário pode listar os projetos que tem. Já com a permissão resourcemanager.projects.delete, um usuário pode excluir um projeto.

A tabela a seguir lista as permissões que o solicitante precisa ter para chamar uma API de 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 solicitante tem a permissão resourcemanager.projects.get. Se você fornece um filtro ao chamar list(), como byParent, o método lista os projetos para os quais você tem a permissão resourcemanager.projects.get e que satisfazem a condição do filtro.
resourcemanager.projects.setIamPolicy() resourcemanager.projects.setIamPolicy
resourcemanager.projects.testIamPermissions() Does not require any permission.
resourcemanager.projects.undelete() resourcemanager.projects.undelete
resourcemanager.projects.update() Para atualizar os metadados de um projeto, é necessário 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.

Não é possível conceder permissões diretamente aos usuários. É preciso conceder papéis aos usuários, que têm uma ou mais permissões integradas a eles.

É possível conceder um ou mais papéis no mesmo projeto. Ao usar o método resourcemanager.projects.getIamPolicy() para visualizar permissões, somente as atribuídas ao próprio projeto serão exibidas, e não todas as permissões herdadas.

Como usar papéis predefinidos

A tabela a seguir lista os papéis que você pode conceder para acessar um projeto, a descrição do que o papel faz e as permissões incluídas nele.

Papel 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 Resource Manager, lembre-se dos seguintes pontos:
  • Você precisa conceder as permissões "list" e "get", por exemplo resourcemanager.projects.get/list, sempre como um par.
  • Quando o papel personalizado tem as permissões folders.list e folders.get, ele também inclui 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 para envolvidos no projeto

É possível conceder papéis aos usuários no nível do projeto usando o Console do Google Cloud Platform, a API Resource Manager e a ferramenta de linha de comando gcloud. Para mais instruções, veja 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. Ele pode ser alterado normalmente em uma política do Cloud IAM.

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

Enviar comentários sobre…

Documentação do Resource Manager