O Google Cloud oferece o Gerenciamento de acesso e identidade (IAM Identity and Access Management), que permite a concessão de acesso mais granular a recursos específicos do Google Cloud e impede o acesso indesejado a outros recursos. Com o IAM, é possível 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.
Nesta página, explicamos os papéis do IAM disponíveis no nível da pasta e como criar e gerenciar políticas do IAM para pastas que usam a API Resource Manager. Para uma descrição detalhada do IAM, leia a documentação do IAM. Em particular, consulte 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 básicos, como proprietário, editor e visualizador. 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 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.
- 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.
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. Esses papéis padrão podem ser alterados normalmente em uma política do 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 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 seu papel personalizado inclui as permissões
folders.list
efolders.get
, ela também deve incluirprojects.list
eprojects.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 aos usuários listar pastas em um recurso, e resourcemanager.projects.list
, que permite aos usuários procurar 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 o papel Administrador de organização:
resourcemanager.folders.list
pode ser concedido pelos papéis Visualizador de pastas e no Editor de pastas.resourcemanager.projects.list
pode ser concedido pelos papéis Visualizador 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 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.
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 é um pouco diferente dos requisitos para mover um projeto que não é da organização para a Organização, na qual os usuários devem ter o papel Editor do projeto ou Proprietário do projeto no projeto e o papel 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:
- Conceda ao usuário o papel Visualizador da organização no nível do Org Node. Por exemplo, domain.com.
- Crie uma nova pasta.
- 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.