Controlo de acesso para pastas com IAM

Trusted Cloud by S3NS oferece a gestão de identidade e de acesso (IAM), que lhe permite conceder acesso mais detalhado a recursos Trusted Cloud específicos e evitar 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 funções da IAM disponíveis ao nível das pastas e como criar e gerir políticas de autorização para pastas através da API Cloud Resource Manager. Para mais informações, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Vista geral das funções de IAM para pastas

Para ajudar a configurar as suas funções de IAM, a tabela seguinte apresenta:

  • O tipo de ações que quer ativar
  • As funções necessárias para realizar essas ações
  • O nível de recurso no qual tem de aplicar essas funções
Tipo de ações Funções necessárias Nível do recurso
Administre pastas no recurso de organização Administrador da pasta Recurso da organização
Administrar uma pasta e todos os projetos e pastas que contém Administrador da pasta Pasta específica
Aceda e administre as políticas de permissão de uma pasta Administrador do IAM de pastas Pasta específica
Crie novas pastas Criador de pastas Recurso principal para a localização das novas pastas
Mova pastas e projetos Mover pastas Recurso principal para a localização da pasta original e a localização da nova pasta
Mova um projeto para uma nova pasta Editor do projeto ou proprietário do projeto Recurso principal para a localização do projeto original e a localização do novo projeto
Elimine uma pasta Editor de pastas ou administrador de pastas Pasta específica

Práticas recomendadas para usar funções e autorizações de IAM com pastas

Ao atribuir funções e autorizações da IAM para utilização com pastas, tenha em atenção o seguinte:

  • Use grupos sempre que possível para gerir os responsáveis.
  • Minimize a utilização de funções básicas, como proprietário, editor e visitante. Em alternativa, tente usar as funções predefinidas para o princípio do menor privilégio.
  • Para a gestão ao nível da pasta, atribua autorizações ao nível da pasta e faça com que os projetos as herdem automaticamente. Por exemplo, pode atribuir ao grupo de administradores do departamento a função de administrador da pasta na pasta. Os administradores de rede que precisam de ter autorizações ao nível do departamento podem ter a função de administrador de rede para a pasta.
  • Considere cuidadosamente que autorizações podem mudar antes de mover um recurso para fora de uma pasta. Caso contrário, pode correr o risco de interromper apps ou fluxos de trabalho existentes que exijam essas autorizações nesse recurso.
  • Planeie e teste cuidadosamente a hierarquia de recursos antes de mover projetos de produção para pastas. Uma forma de o fazer é criar uma pasta de teste no recurso da sua organização e criar um protótipo da hierarquia pretendida antecipadamente.
  • A atribuição de uma função a um utilizador ao nível da pasta também lhe atribui essa função para todos os recursos abaixo dessa pasta. Por exemplo, se conceder a um utilizador a função de administrador de computação (roles/compute.admin) numa pasta, esse utilizador terá controlo total de todos os recursos do Compute Engine em todos os projetos nessa pasta.

Compreender as funções e as autorizações das pastas

Funções predefinidas

Quando cria uma pasta, recebe as funções de administrador da pasta e editor da pasta para ter controlo total como criador. Consulte abaixo as autorizações que estas funções oferecem. Estas funções predefinidas podem ser alteradas normalmente numa política de autorização.

Usar funções predefinidas

Função Autorizações

(roles/resourcemanager.folderAdmin)

Fornece todas as autorizações disponíveis para trabalhar com pastas.

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

  • 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 autorizações para administrar políticas de permissão em pastas.

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

  • 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)

Fornece as autorizações necessárias para procurar a hierarquia e criar pastas.

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

  • 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 autorização para modificar pastas, bem como para ver a política de permissão de uma pasta.

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

  • 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 autorização para mover projetos e pastas para dentro e para fora de uma organização ou uma pasta principal.

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

  • Pasta

resourcemanager.folders.move

resourcemanager.projects.move

(roles/resourcemanager.folderViewer)

Concede autorização para obter uma pasta e listar as pastas e os projetos abaixo de um recurso.

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

  • 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

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.

Conceder funções para ativar a navegação de pastas

As autorizações de listagem ativam a navegação de pastas. Os dois tipos de autorizações de listas que normalmente têm de ser concedidas são resourcemanager.folders.list, que permite aos utilizadores listar pastas num recurso, e resourcemanager.projects.list, que permite aos utilizadores procurar projetos num recurso de organização ou numa pasta. O administrador da organização é inicializado com ambas as autorizações. Para os utilizadores aos quais não foi atribuída a função de administrador da organização:

  • resourcemanager.folders.list podem ser concedidas através das funções de Leitor de pastas e Editor de pastas.
  • resourcemanager.projects.list podem ser concedidas através das funções de Leitor ou Navegador.

Para que os principais de recursos da organização possam procurar toda a hierarquia de recursos da organização, as autorizações de listagem devem ser concedidas ao nível do recurso da organização.

Atribuir funções para ativar a criação de pastas

Os utilizadores que precisam de criar pastas têm de receber a função de criador de pastas num recurso na hierarquia acima do nível no qual a pasta vai ser criada. Pode ser útil conceder autorizações de navegação juntamente com as autorizações de criação de pastas para que os utilizadores possam navegar eficazmente para o local na hierarquia onde a pasta vai ser criada. Consulte a secção acima para ver mais informações sobre as autorizações de navegação.

A função Criador de pastas não concede a um utilizador autorização para eliminar uma pasta. No entanto, quando uma pessoa cria uma pasta, é-lhe automaticamente concedida a função de Editor de pastas. A função de editor de pastas permite a eliminação de pastas.

Atribuir funções para permitir o movimento de pastas

Para mover uma pasta de um recurso principal para outro, os utilizadores têm de ter a função de gestor de pastas nos recursos principais antigos e novos, ou num antepassado comum.

Conceder funções para permitir o movimento de projetos

Para mover um projeto para uma pasta, os utilizadores têm de ter as funções de editor do projeto ou proprietário do projeto no projeto e a função de transferidor de projetos nos recursos principais de origem e destino.

Isto é ligeiramente diferente dos requisitos para mover um projeto que não seja propriedade da organização para o recurso da organização, em que os utilizadores têm de ter a função de Editor do projeto ou Proprietário do projeto no projeto e a função de Criador do projeto no recurso da organização.

Conceder funções específicas da pasta para ativar a criação de projetos

Para criar projetos, os utilizadores têm de ter a função Criador de projetos. No entanto, em vez de conceder autorização de criação de projetos ao nível da organização, pode ser útil restringir os utilizadores à visualização e criação de projetos apenas numa determinada pasta.

Para conceder autorizações específicas da pasta:

  1. Atribuir ao utilizador a função de Leitor da organização ao nível do nó da organização (por exemplo, domain.com).
  2. Crie uma nova pasta.
  3. Adicione o utilizador ao IAM ao nível da pasta e conceda-lhe as funções Folder Viewer e Project Creator.

Isto permite que o utilizador crie projetos na respetiva pasta sem lhe conceder visibilidade a todos os projetos no recurso de organização mais amplo.