Controle de acesso para pastas com o IAM

É possível usar papéis do Identity and Access Management (IAM) no nível da pasta para gerenciar o acesso em grupos de projetos e recursos. Os papéis no nível da pasta ajudam a aplicar o princípio de privilégio mínimo na hierarquia de recursos ao vincular papéis a principais em políticas de permissão.

Use a API Cloud Resource Manager para criar e gerenciar políticas de permissão ou aplicar políticas de negação para bloquear explicitamente permissões específicas. Para configurar um novo ambiente e conceder acesso inicial, siga a lista de verificação de configuração doCloud de Confiance by S3NS . Para gerenciar o acesso contínuo, consulte Gerenciar o acesso a projetos, pastas e organizações.

Visão geral dos papéis do IAM para pastas

Para ajudá-lo a configurar os papéis do IAM, a tabela a seguir lista:

  • O tipo de ação que você quer ativar.
  • Os papéis necessários para realizar essas ações.
  • O nível de recurso em que você precisa aplicar esses papéis.
Tipo de ações Papéis necessários Nível do recurso
Administrar pastas no recurso da organização Administrador de pastas Recurso da organização
Administrar uma pasta e todos os projetos e pastas que ela contém Administrador de pastas Pasta específica
Acessar e administrar as políticas de permissão de uma pasta Administrador de pastas do IAM Pasta específica
Criar novas pastas Criador de pastas Recurso pai no local das novas pastas
Mover pastas e projetos Transportador de pastas Recurso pai do local original e do novo local da pasta
Mover um projeto para uma nova pasta Editor de projetos ou Proprietário do projeto Recurso pai do local original e do novo local do projeto
Excluir uma pasta Editor de pastas ou Administrador de pastas Pasta específica

Melhores práticas para usar os papéis e permissões do IAM com pastas

Ao atribuir papéis e permissões do IAM para uso com pastas, lembre-se disso:

  • Use grupos sempre que possível para gerenciar membros.
  • Minimize o uso de papéis básicos, como proprietário, editor e visualizador. Em vez disso, tente usar os papéis predefinidos para o princípio de privilégio mínimo.
  • Para o gerenciamento de toda a pasta, atribua permissões no nível da pasta e faça os projetos herdá-las automaticamente. Por exemplo, você pode atribuir a um grupo de administrador de departamento o papel Administrador de pastas na pasta. Os administradores da rede que precisam ter permissões para todo o departamento podem ter o papel de Administrador de rede para a pasta.
  • Considere cuidadosamente quais permissões podem mudar antes de mover um recurso de uma pasta. Caso contrário, você corre o risco de corromper aplicativos atuais ou fluxos de trabalho que exigem essas permissões para o recurso.
  • Planeje e teste cuidadosamente sua hierarquia de recursos antes de mover projetos de produção para pastas. Uma maneira de fazer isso é criar uma pasta de teste no recurso da organização e um protótipo da hierarquia pretendida com antecedência.
  • A concessão de um papel a um usuário no nível da pasta dará esse papel a ele para todos os recursos nas pastas abaixo. Por exemplo, se você conceder a um usuário o papel de Administrador do Compute (roles/compute.admin) em uma pasta, esse usuário terá controle total de todos os recursos do Compute Engine em cada projeto na pasta.

Entender os papéis e as permissões de pastas

As pastas funcionam como limites administrativos na organização, permitindo que você agrupe projetos e aplique políticas em grande escala. O acesso a essas pastas é gerenciado por uma combinação de permissões herdadas da organização e papéis concedidos diretamente no nível da pasta.

Papéis padrão

Ao criar uma pasta, você recebe os papéis de Administrador de pastas e Editor de pastas, que dão controle total. Consulte a tabela a seguir para ver as permissões que esses papéis fornecem. É possível mudar esses papéis padrão em uma política de permissão.

Usar papéis predefinidos

Papel Permissões

(roles/resourcemanager.folderAdmin)

Concede todas as permissões disponíveis para trabalhar com pastas.

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

  • Pasta

essentialcontacts.*

  • essentialcontacts.contacts.create
  • essentialcontacts.contacts.delete
  • essentialcontacts.contacts.get
  • essentialcontacts.contacts.list
  • essentialcontacts.contacts.send
  • essentialcontacts.contacts.update

iam.policybindings.*

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

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.*

  • resourcemanager.capabilities.get
  • resourcemanager.capabilities.update

resourcemanager.folders.*

  • resourcemanager.folders.create
  • resourcemanager.folders.createPolicyBinding
  • resourcemanager.folders.delete
  • resourcemanager.folders.deletePolicyBinding
  • resourcemanager.folders.get
  • resourcemanager.folders.getIamPolicy
  • resourcemanager.folders.list
  • resourcemanager.folders.move
  • resourcemanager.folders.searchPolicyBindings
  • resourcemanager.folders.setIamPolicy
  • resourcemanager.folders.undelete
  • resourcemanager.folders.update
  • resourcemanager.folders.updatePolicyBinding

resourcemanager.hierarchyNodes.*

  • resourcemanager.hierarchyNodes.createTagBinding
  • resourcemanager.hierarchyNodes.deleteTagBinding
  • resourcemanager.hierarchyNodes.listEffectiveTags
  • resourcemanager.hierarchyNodes.listTagBindings

resourcemanager.projects.createPolicyBinding

resourcemanager.projects.deletePolicyBinding

resourcemanager.projects.get

resourcemanager.projects.getIamPolicy

resourcemanager.projects.list

resourcemanager.projects.move

resourcemanager.projects.searchPolicyBindings

resourcemanager.projects.setIamPolicy

resourcemanager.projects.updatePolicyBinding

(roles/resourcemanager.folderIamAdmin)

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

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

  • Pasta

iam.policybindings.*

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

resourcemanager.folders.createPolicyBinding

resourcemanager.folders.deletePolicyBinding

resourcemanager.folders.get

resourcemanager.folders.getIamPolicy

resourcemanager.folders.searchPolicyBindings

resourcemanager.folders.setIamPolicy

resourcemanager.folders.updatePolicyBinding

(roles/resourcemanager.folderCreator)

Concede permissões necessárias para navegar na hierarquia e criar pastas.

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

  • Pasta

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.get

resourcemanager.folders.create

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/resourcemanager.folderEditor)

Concede permissão para modificar pastas, bem como para visualizar a política do IAM de uma pasta.

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

  • Pasta

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.*

  • resourcemanager.capabilities.get
  • resourcemanager.capabilities.update

resourcemanager.folders.delete

resourcemanager.folders.get

resourcemanager.folders.getIamPolicy

resourcemanager.folders.list

resourcemanager.folders.searchPolicyBindings

resourcemanager.folders.undelete

resourcemanager.folders.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/resourcemanager.folderMover)

Concede permissões para mover projetos e pastas para dentro e para fora de uma organização ou pasta mãe.

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

  • Pasta

resourcemanager.folders.move

resourcemanager.projects.move

(roles/resourcemanager.folderViewer)

Concede permissão para acessar uma pasta e listar as pastas e os projetos abaixo de um recurso.

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

  • Pasta

essentialcontacts.contacts.get

essentialcontacts.contacts.list

orgpolicy.constraints.list

orgpolicy.policies.list

orgpolicy.policy.get

resourcemanager.capabilities.get

resourcemanager.folders.get

resourcemanager.folders.list

resourcemanager.projects.get

resourcemanager.projects.list

Como criar papéis personalizados

Além dos papéis predefinidos descritos neste tópico, também é possível criar papéis personalizados, que são coleções de permissões que você adapta às suas necessidades. Ao criar um papel personalizado para uso com o Resource Manager, esteja ciente dos seguintes pontos:
  • as permissões list e get, como resourcemanager.projects.get/list, devem sempre ser concedidas como um par;
  • Quando o papel personalizado inclui as permissões folders.list e folders.get, ele também precisa incluir projects.list e projects.get.
  • A permissão setIamPolicy para recursos de organização, pasta e projeto permite que o usuário conceda todas as outras permissões. Por isso, ela precisa ser atribuída com cuidado.

Conceder papéis para ativar a navegação em pastas

As permissões de lista permitem a procura nas pastas. Os dois tipos de permissões de lista que normalmente precisam ser concedidas são resourcemanager.folders.list, que permite aos usuários listar pastas em um recurso, e resourcemanager.projects.list, que permite aos usuários navegar por projetos em um recurso ou pasta da organização. O administrador da organização é inicializado com as duas permissões. Para usuários que não receberam o papel de Administrador da organização:

  • resourcemanager.folders.list pode ser concedida usando os papéis Leitor de pastas e Editor de pastas.
  • resourcemanager.projects.list pode ser concedido usando os papéis Leitor ou Navegador.

Para que os principais de recursos da organização naveguem por toda a hierarquia de recursos da organização, as permissões de listagem precisam ser concedidas no nível do recurso da organização.

Conceder papéis para permitir a criação de pastas

Os usuários que têm necessidade de criar pastas precisam ter o papel Criador de pastas em um recurso na hierarquia acima do nível em que elas serão criadas. Pode ser útil conceder permissões de procura juntamente com permissões de criação de pastas para que os usuários possam procurar efetivamente até onde a pasta será criada na hierarquia. Consulte a seção acima para saber mais sobre permissões de procura.

Com o papel Criador de pastas, o usuário não tem permissão para excluir uma pasta. No entanto, quando uma pessoa cria uma pasta, ela recebe automaticamente o papel Editor de pastas. O papel Editor de pastas permite que pastas sejam excluídas.

Conceder papéis para permitir a movimentação de pastas

Para mover uma pasta de um recurso pai para outro, os usuários precisam ter o papel Transportador de pastas em recursos pai antigos e novos ou em um ancestral comum.

Conceder papéis para permitir a movimentação de projetos

Para mover um projeto para uma pasta, os usuários precisam ter os papéis Editor de projetos ou Proprietário do projeto no projeto e Transportador de projetos nos recursos pai de origem e de destino.

Isso é um pouco diferente dos requisitos para mover um projeto que não pertence à organização para o recurso de organização, em que os usuários precisam ter o papel de Editor do projeto ou Proprietário do projeto no projeto e o papel de Criador do projeto no recurso de organização.

Conceder papéis específicos da pasta para permitir a criação de projetos

Para criar projetos, os usuários precisam ter a função Criador de projetos. No entanto, em vez de conceder essa permissão em toda a organização, recomendamos que você restrinja a criação e visualização de projetos do usuário a apenas uma determinada pasta.

Para conceder permissões específicas de pasta:

  1. Conceda ao usuário o papel de Leitor da organização no nível do recurso da organização (por exemplo, domain.com). No console do Cloud de Confiance , selecione o recurso da organização no seletor de projetos e organizações na parte de cima da página ou clique no seu domínio na coluna Herança na página IAM.
  2. Criar uma nova pasta.
  3. Adicione o usuário ao IAM no nível da pasta e conceda a ele os papéis de Leitor de pastas e Criador de projetos.

Isso permite que o usuário crie projetos na pasta sem conceder a ele visibilidade de todos os projetos no recurso da organização maior.