Controlo de acesso para projetos com o IAM

Google Cloud oferece a gestão de identidade e de acesso (IAM), que lhe permite conceder acesso mais detalhado a recursos Google Cloud específicos e impedir o acesso indesejado a outros recursos. O IAM permite-lhe adotar o princípio de segurança do menor privilégio, pelo que concede apenas o acesso necessário aos seus recursos.

O IAM permite-lhe controlar quem (utilizadores) tem que acesso (funções) a que recursos definindo políticas de autorização. As políticas de permissão concedem funções específicas a um utilizador, o que lhe dá determinadas autorizações.

Esta página explica as autorizações e as funções da IAM que pode usar para gerir o acesso aos projetos. Para mais informações, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Autorizações e funções

Para controlar o acesso aos recursos, Google Cloud é necessário que as contas que fazem pedidos de API tenham funções de IAM adequadas. As funções do IAM incluem autorizações que permitem aos utilizadores realizar ações específicas emGoogle Cloud recursos. Por exemplo, a autorização resourcemanager.projects.delete permite que um utilizador elimine um projeto.

Não concede autorizações diretamente aos utilizadores. Em vez disso, atribui-lhes funções, que têm uma ou mais autorizações incluídas. Concede estas funções num recurso específico, mas também se aplicam a todos os descendentes desse recurso na hierarquia de recursos.

Autorizações

Para gerir projetos, o autor da chamada tem de ter uma função que inclua as seguintes autorizações. A função é concedida no recurso da organização ou na pasta que contém os projetos:

Método Autorizações necessárias
resourcemanager.projects.create resourcemanager.projects.create
resourcemanager.projects.delete resourcemanager.projects.delete
resourcemanager.projects.get resourcemanager.projects.get
A concessão desta autorização também concede acesso para obter o nome da conta de faturação associada ao projeto através 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 autorizações.
resourcemanager.projects.undelete resourcemanager.projects.undelete
resourcemanager.projects.patch Para atualizar os metadados de um projeto, é necessária a autorização resourcemanager.projects.update. Para atualizar o elemento principal de um projeto e mover o projeto para um recurso da organização, é necessária a autorização resourcemanager.projects.create no recurso da organização.
projects.move projects.move

Usar funções predefinidas

As funções predefinidas do IAM permitem-lhe gerir cuidadosamente o conjunto de autorizações a que os seus utilizadores têm acesso. Para ver uma lista completa das funções que podem ser concedidas ao nível do projeto, consulte Compreender as funções.

A tabela seguinte apresenta as funções predefinidas que pode usar para conceder acesso a um projeto. Cada função inclui uma descrição do que faz e as autorizações incluídas nessa função.

Função Autorizações

(roles/resourcemanager.projectCreator)

Fornece acesso para criar novos projetos. Quando um utilizador cria um projeto, é-lhe automaticamente atribuída a função de proprietário desse projeto.

Recursos de nível mais baixo onde pode conceder esta função:

  • Pasta

resourcemanager.organizations.get

resourcemanager.projects.create

(roles/resourcemanager.projectDeleter)

Fornece acesso para eliminar Google Cloud projetos.

Recursos de nível mais baixo onde pode conceder esta função:

  • Projeto

resourcemanager.projects.delete

(roles/resourcemanager.projectMover)

Fornece acesso para atualizar e mover projetos.

Recursos de nível mais baixo onde pode conceder esta função:

  • Projeto

resourcemanager.projects.get

resourcemanager.projects.move

resourcemanager.projects.update

(roles/resourcemanager.projectIamAdmin)

Concede autorizações para administrar políticas de permissão em projetos.

Recursos de nível mais baixo onde pode conceder esta função:

  • 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 procurar a hierarquia de um projeto, incluindo a pasta, a organização e a política de permissão. Esta função não inclui autorização para ver recursos no projeto.

Recursos de nível mais baixo onde pode conceder esta função:

  • Projeto

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.organizations.get

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.list

Funções básicas

Evite usar funções básicas, exceto quando for absolutamente necessário. Estas funções são muito poderosas e incluem um grande número de autorizações em todos os Google Cloud serviços. Para mais detalhes sobre quando deve usar funções básicas, consulte o artigo Funções básicas.

Função Descrição Autorizações
roles/owner Acesso total a todos os recursos. Todas as autorizações para todos os recursos.
roles/editor Editar o acesso à maioria dos recursos. Criar e atualizar o acesso para a maioria dos recursos.
roles/viewer Acesso de leitura à maioria dos recursos. Obter e listar o acesso à maioria dos recursos.

Criar funções personalizadas

Além das funções predefinidas descritas neste tópico, também pode criar funções personalizadas que são conjuntos de permissões que personaliza de acordo com as suas necessidades. Ao criar uma função personalizada para utilização com o Resource Manager, tenha em atenção os seguintes pontos:
  • As autorizações de listagem e obtenção, como resourcemanager.projects.get/list, devem ser sempre concedidas em conjunto.
  • Quando a sua função personalizada inclui as autorizações folders.list e folders.get, também deve incluir projects.list e projects.get.
  • Tenha em atenção que a autorização setIamPolicy para recursos de organização, pasta e projeto permite ao utilizador conceder todas as outras autorizações e, por isso, deve ser atribuída com cuidado.

Controlo de acesso ao nível do projeto

Pode conceder funções aos utilizadores ao nível do projeto através da Google Cloud console, da API Cloud Resource Manager e da CLI Google Cloud. Para ver instruções, consulte o artigo Conceder, alterar e revogar o acesso.

Funções predefinidas

Quando cria um projeto, é-lhe concedida a função roles/owner para o projeto, o que lhe dá controlo total como criador. Esta função predefinida pode ser alterada normalmente numa política de autorização.

VPC Service Controls

Os VPC Service Controls podem oferecer segurança adicional quando usa a API Cloud Resource Manager. Para saber mais acerca do VPC Service Controls, consulte a vista geral do VPC Service Controls.

Para saber mais sobre as limitações atuais na utilização do Resource Manager com os VPC Service Controls, consulte a página Produtos compatíveis e limitações.