Controle de acesso para pastas usando 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 de 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, na sigla em inglês) disponíveis no nível de pasta e como criar e gerenciar políticas do IAM para pastas que usam a API Resource Manager. Para uma descrição detalhada do Cloud IAM, leia a documentação dele. Consulte, especificamente, Como conceder, alterar e revogar acesso.

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 das ações que você quer ativar;
  • os papéis necessários para realizar essas ações;
  • o nível de recurso no qual você precisa aplicar esses papéis.
Tipo de ações Papéis necessários Nível do recurso
Administrar pastas em toda a Organização Administrador de pastas 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 do IAM 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 primitivos, como proprietário, editor e leitor. Em vez disso, tente usar os papéis predefinidos para o princípio do menor privilégio.
  • 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 de rede que precisam ter permissões em todo o departamento podem ter o papel de Administrador de rede na 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 sob o recurso da Organização e criar um modelo prévio da hierarquia pretendida.

Noções básicas sobre papéis e permissões de pastas

Funções padrão

Ao criar uma pasta, você recebe as funções de Administrador de pasta e Editor de pasta para, como seu criador, ter controle total sobre ela. Veja abaixo as permissões que terá com essas funções. São funções padrão que podem ser alteradas normalmente em uma política do Cloud IAM.

Papel Administrador de pastas

O Administrador de pastas tem todas as permissões de pasta disponíveis.

Permissões concedidas:

orgpolicy.policy.get permissão para receber políticas da organização em um recurso
resourcemanager.folders.get permissão para receber uma pasta ou as pastas descendentes
resourcemanager.folders.create permissão para criar uma pasta
resourcemanager.folders.list permissão para listar as pastas abaixo de um recurso
resourcemanager.folders.move permissão para mover pastas de ou para um recurso
resourcemanager.folders.update permissão para atualizar o nome de uma pasta
resourcemanager.folders.delete permissão para excluir uma pasta
resourcemanager.folders.undelete permissão para cancelar a exclusão de uma pasta
resourcemanager.folders.getIamPolicy permissão para receber a política de IAM de uma pasta
resourcemanager.folders.setIamPolicy permissão para definir a política de IAM de uma pasta
resourcemanager.projects.get permissão para receber um projeto
resourcemanager.projects.list permissão para listar projetos abaixo de um recurso
resourcemanager.projects.move permissão para mover projetos de ou para um recurso
resourcemanager.projects.getIamPolicy permissão para receber a política de IAM de um projeto
resourcemanager.projects.setIamPolicy permissão para definir a política de IAM de um projeto

Papel Administrador de IAM de pastas

Com o papel Administrador de IAM de pastas, os usuários administram as políticas de IAM nas pastas.

Permissões concedidas:

resourcemanager.folders.get permissão para receber uma pasta ou as pastas descendentes
resourcemanager.folders.getIamPolicy permissão para receber a política de IAM de uma pasta
resourcemanager.folders.setIamPolicy permissão para definir a política de IAM de uma pasta

Papel Criador de pastas

O papel Criador de pastas concede as permissões necessárias para navegar na hierarquia e criar pastas.

Permissões concedidas:

orgpolicy.policy.get permissão para receber políticas da organização em um recurso
resourcemanager.folders.get permissão para receber uma pasta
resourcemanager.folders.list permissão para listar as pastas abaixo de um recurso
resourcemanager.folders.create permissão para criar uma pasta
resourcemanager.projects.get permissão para receber um projeto
resourcemanager.projects.list permissão para listar projetos abaixo de um recurso

Papel Editor de pastas

O papel Editor de pastas concede a permissão para modificar pastas e visualizar a política do IAM de uma pasta.

Permissões concedidas:

orgpolicy.policy.get permissão para receber políticas da organização em um recurso
resourcemanager.folders.get permissão para receber uma pasta
resourcemanager.folders.list permissão para listar as pastas abaixo de um recurso
resourcemanager.folders.update permissão para atualizar o nome de uma pasta
resourcemanager.folders.delete permissão para excluir uma pasta
resourcemanager.folders.undelete permissão para cancelar a exclusão de uma pasta
resourcemanager.folders.getIamPolicy permissão para receber a política do IAM definida em uma pasta
resourcemanager.projects.get permissão para receber um projeto
resourcemanager.projects.list permissão para listar projetos abaixo de um recurso

Papel Transportador de pastas

O papel Transportador de pastas concede a permissão para mover projetos e pastas para dentro e para fora de uma organização ou pasta pai.

Permissões concedidas:

resourcemanager.folders.move permissão para mover pastas de ou para um recurso
resourcemanager.projects.move permissão para mover projetos de ou para um recurso

Papel Visualizador de pastas

O papel Visualizador de pastas concede a permissão para receber uma pasta e listar as pastas e projetos abaixo de um recurso.

Permissões concedidas:

orgpolicy.policy.get permissão para receber políticas da organização em um recurso
resourcemanager.folders.get permissão para receber uma pasta ou as pastas descendentes
resourcemanager.folders.list permissão para listar as pastas abaixo de um recurso
resourcemanager.projects.get permissão para receber um projeto
resourcemanager.projects.list permissão para listar projetos abaixo de um recurso

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.

Como atribuir papéis para ativar a procura nas pastas

As permissões de lista permitem a procura nas pastas. Os dois tipos de permissões de lista que normalmente precisam ser concedidos são resourcemanager.folders.list, que permite que os usuários listem as pastas sob um recurso, e resourcemanager.projects.list, que permite que os usuários procurem os projetos em uma Organização ou pasta. O papel Administrador de organização é inicializado com as duas permissões. Para usuários que não receberam esse papel de Administrador de organização:

  • resourcemanager.folders.list pode ser concedido por meio dos papéis Visualizador de pastas e Editor de pastas.
  • É possível conceder resourcemanager.projects.list por meio dos papéis Leitor ou Navegador.

Para que os membros da organização procurem por toda a hierarquia dela, as permissões de lista precisam ser concedidas no nível da organização.

Como atribuir papéis para ativar 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 informações 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. Dessa forma, é possível fazer a exclusão.

Como atribuir papéis para ativar o movimento 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.

Como atribuir 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 difere um pouco dos requisitos de transferência de um projeto não pertencente à organização para dentro dela. Nesse caso, os usuários precisam ter o papel Editor de projetos ou Criador de projetos no projeto e Criador de projetos na Organização.

Como conceder papéis específicos de pasta para ativar a criação do projeto

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 Visualizador da organização no nível do Org Node. Por exemplo, domain.com.
  2. Crie uma nova pasta.
  3. Adicione o usuário ao IAM no nível da pasta e conceda a ele os papéis Visualizador de pastas e Criador de projetos.

Desse modo, o usuário pode criar projetos na própria pasta sem que lhe tenha sido concedida visibilidade para cada projeto em toda a organização.

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

Enviar comentários sobre…

Documentação do Resource Manager