Controle de acesso para projetos com IAM

Google Cloud oferece Identity and Access Management (IAM), que permite a concessão de acesso mais granular a recursos Google Cloud específicos e impede o acesso indesejado a outros recursos. Com o IAM, é possível adotar o princípio de segurança de privilégio mínimo, para conceder apenas o acesso necessário aos recursos.

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

Esta página explica as permissões e os papéis do IAM que podem ser usados para gerenciar o acesso a projetos. Para mais informações, consulte Gerenciar o acesso a projetos, pastas e organizações.

Permissões e papéis

Para controlar o acesso aos recursos, Google Cloud o exige que as contas que fazem solicitações de API tenham papéis do IAM apropriados. Os papéis do IAM incluem permissões que permitem que os usuários realizem ações específicas em Google Cloud recursos. Por exemplo, a permissão 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, que têm 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.

Permissões

Para gerenciar projetos, o autor da chamada precisa ter um papel que inclua as seguintes permissões. O papel é concedido no recurso da 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
Esta permissão também concede acesso para receber o nome da conta de faturamento associada ao projeto por meio do método da API Billing billing.projects.getBillingInfo
resourcemanager.projects.getIamPolicy resourcemanager.projects.getIamPolicy
resourcemanager.projects.list resourcemanager.projects.list
resourcemanager.projects.search resourcemanager.projects.get
resourcemanager.projects.setIamPolicy resourcemanager.projects.setIamPolicy
resourcemanager.projects.testIamPermissions Não requer permissões.
resourcemanager.projects.undelete resourcemanager.projects.undelete
resourcemanager.projects.patch Para atualizar os metadados de um projeto, é preciso ter a permissão resourcemanager.projects.update. Para atualizar o pai de um projeto e movê-lo para um recurso de organização, é preciso ter a permissão resourcemanager.projects.create no recurso da organização.
projects.move projects.move

Como usar papéis predefinidos

Os papéis predefinidos do IAM permitem gerenciar as permissões disponíveis para os usuários. Para uma lista completa dos papéis que podem ser concedidos no nível do projeto, consulte Noções básicas sobre papéis.

A tabela a seguir lista os papéis predefinidos que podem ser usados para conceder acesso a um projeto. Cada papel inclui uma descrição da finalidade e das permissões que ele contém.

Papel Permissões

(roles/resourcemanager.projectCreator)

Dá acesso para criar novos projetos. Quando um usuário cria um projeto, o papel de proprietário to é automaticamente atribuído a ele.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Pasta

resourcemanager.organizations.get

resourcemanager.projects.create

(roles/resourcemanager.projectDeleter)

Concede acesso para excluir Google Cloud projetos.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Projeto

resourcemanager.projects.delete

(roles/resourcemanager.projectMover)

Concede acesso para atualizar e mover projetos.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Projeto

resourcemanager.projects.get

resourcemanager.projects.move

resourcemanager.projects.update

(roles/resourcemanager.projectIamAdmin)

Concede permissões para administrar as políticas do IAM em projetos.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Projeto

iam.policybindings.*

  • iam.policybindings.get
  • iam.policybindings.list

resourcemanager.projects.createPolicyBinding

resourcemanager.projects.deletePolicyBinding

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.searchPolicyBindings

resourcemanager.projects.setIamPolicy

resourcemanager.projects.updatePolicyBinding

(roles/browser)

Acesso de leitura para navegar na hierarquia de um projeto, incluindo a pasta, a organização e a política de permissão. Este papel não inclui permissão para ver recursos no projeto.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Projeto

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.organizations.get

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.list

Papéis básicos

Use papéis básicos somente quando necessário. Esses papéis são altamente privilegiados e concedem permissões abrangentes em todos os Google Cloud serviços. Para mais informações sobre quando usar papéis básicos, consulte Papéis básicos.

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 à maioria dos recursos. Acesso de criação e atualização para a maioria dos recursos.
roles/viewer Acesso de leitura à maioria dos recursos. Acesso de recebimento e listagem para a maioria dos recursos.

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 uso 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 sua função personalizada inclui as permissões folders.list e folders.get, ele também precisa incluir projects.list e projects.get.
  • Esteja ciente de que a permissão setIamPolicy para recursos de organização, pasta e projeto permite que o usuário conceda todas as outras permissões e, portanto, deve ser atribuída com cuidado.

Controle de acesso no nível do projeto

É possível conceder papéis a usuários no nível do projeto usando o Google Cloud console, a API Resource Manager e a Google Cloud CLI. Para instruções, consulte Como conceder, alterar e revogar acesso.

Papéis padrão

Ao criar um projeto, você recebe o papel roles/owner, que concede controle total sobre o projeto. É possível mudar esse papel padrão em uma política de permissão.

VPC Service Controls

O VPC Service Controls pode fornecer segurança adicional ao usar a API Resource Manager. 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.