Avaliação de hierarquia

Ao definir uma política da organização em um recurso, todos os descendentes desse recurso herdam a política da organização por padrão. Se você definir uma política da organização no recurso da organização, essas restrições serão herdadas por todos os recursos filhos.

É possível definir a mesma política da organização com uma configuração diferente em recursos filhos, que serão substituídos ou mesclados com a política herdada com base nas regras de avaliação da hierarquia e no tipo de restrição definido na política da organização.

Antes de começar

Exemplo de hierarquia

No diagrama de hierarquia de recursos a seguir, cada recurso define uma política da organização que aplica uma restrição gerenciada legada e define se a política herda a política do recurso pai. As formas coloridas representam os valores que a política da organização permite ou nega.

Diagrama de herança

Uma restrição é um tipo específico de limitação que é aplicada a um Google Cloud serviço ou a uma lista de Google Cloud serviços. No exemplo anterior, a restrição representa o padrão de restrição, que define o comportamento quando a restrição não é definida em uma política da organização. O padrão de restrição neste exemplo permite todos os valores. Os nós abaixo dela definem políticas da organização que substituem o padrão de restrição, permitindo ou negando valores.

A política vigente em cada node é avaliada com base nas regras de herança. Se uma política da organização não estiver definida, o recurso herdará o comportamento da restrição padrão. Se você definir uma política da organização, ela será usada. No exemplo anterior, o nó da organização define uma política que permite o quadrado vermelho e o círculo verde.

Os recursos que estão na hierarquia abaixo do nó da organização são avaliados da seguinte maneira:

  1. O recurso 1 define uma política que define inheritFromParent como TRUE e permite o losango azul. A política do nó da organização é herdada e mesclada com a política definida no recurso 1. A política vigente é avaliada para permitir o quadrado vermelho, o círculo verde e o losango azul.

  2. O recurso 2 define uma política que define inheritFromParent como TRUE e nega o círculo verde. Os valores de negação sempre têm precedência durante a reconciliação de políticas. A política do nó da organização é herdada e mesclada com a política definida no recurso 2. A política vigente é avaliada para permitir apenas o quadrado vermelho.

  3. O recurso 3 define uma política que define inheritFromParent como FALSE e permite o hexágono amarelo . A política do nó da organização não é herdada, então a política vigente é avaliada para permitir apenas o hexágono amarelo.

  4. O recurso 4 define uma política que define inheritFromParent como FALSE e inclui o valor restoreDefault. A política do nó da organização não é herdada e o comportamento de restrição padrão é usado, portanto, a política vigente é avaliada para permitir todos os valores.

Regras de avaliação da hierarquia

As regras a seguir controlam como uma política da organização é avaliada em um determinado recurso. O papel Administrador da política da organização é necessário para definir a política da organização.

Restrições aplicadas automaticamente

Se uma política da organização não for aplicada, ela será herdada do ancestral mais baixo em que uma política da organização for aplicada. Se nenhuma política da organização for aplicada em nenhum lugar na hierarquia de ancestrais, o comportamento padrão gerenciado pelo Google da restrição será aplicado.

Se o comportamento padrão gerenciado pelo Google de uma restrição de política da organização restringir uma operação, essa operação será restrita mesmo que você nunca tenha definido explicitamente uma política da organização. Para permitir essas operações, crie políticas da organização que substituam a política pai.

Para uma lista de restrições de política da organização que têm um comportamento padrão gerenciado pelo Google que restringe operações, consulte Restrições de política da organização.

Herança

Um recurso que tenha uma política da organização definida por padrão suplanta qualquer política definida pelos recursos pai na hierarquia. No entanto, se um recurso tiver definido inheritFromParent = true, a política vigente do recurso pai será herdada, mesclada e reconciliada para avaliar a política vigente resultante. Exemplo:

  • Uma pasta rejeita o valor projects/123.
  • Um projeto abaixo dessa pasta rejeita o valor projects/456.

As duas políticas são mescladas e, nesse caso, resultam em uma política eficaz que rejeita projects/123 e projects/456.

Como herdar o comportamento padrão

O comportamento padrão nunca é mesclado. Quando uma política é definida, ela sempre substitui qualquer comportamento padrão. Exemplo:

  • A constraints/iam.allowServiceAccountCredentialLifetimeExtension é definida como DENY por padrão no nível da organização.
  • Para essa restrição, um projeto diretamente abaixo dessa organização permite o valor SomeServiceAccount.

Como o comportamento padrão nunca é mesclado e sempre substituído, isso resulta em uma política eficaz que permite SomeServiceAccount. Por outro lado, se a política fosse definida explicitamente como DENY no nível da organização, a regra "o valor DENY tem precedência" seria aplicada e a política vigente seria DENY.

Não permitir herança

Se um recurso tiver uma política que inclua inheritFromParent = false, ele não herdará a política da organização do pai. Em vez disso, o recurso herda o comportamento padrão da restrição, a menos que você defina uma política com valores permitidos ou negados.

Como reconciliar conflitos de políticas

Quando um recurso herda políticas da organização, as políticas herdadas são mescladas e reconciliadas com a política da organização do recurso pai. Ao avaliar políticas da organização com regras de lista, os valores DENY sempre têm precedência. Exemplo:

  • Uma pasta rejeita o valor projects/123.
  • Um projeto abaixo dessa pasta permite o valor projects/123.

As políticas são mescladas e o valor DENY tem precedência. A política vigente nega todos os valores e é avaliada da mesma forma, seja o recurso pai ou filho negando o valor. Recomendamos não incluir um valor nas listas permitidas e negadas. Isso pode dificultar a compreensão de suas políticas.

As políticas da organização com regras booleanas não mesclam e reconciliam políticas. Se uma política for especificada em um recurso, esse valor TRUE ou FALSE será usado para determinar a política vigente. Exemplo:

  • Uma pasta define enforced: true para constraints/iam.managed.disableServiceAccountCreation.

  • Um projeto abaixo dessa pasta define enforced: false para constraints/iam.managed.disableServiceAccountCreation.

O valor enforced: true definido na pasta é ignorado porque enforced: false é definido no próprio projeto. A política da organização não é aplicada a esse projeto.

Redefinir para a política padrão

Ao invocar RestoreDefault, a política da organização usa o comportamento padrão da restrição para esse recurso. Os recursos filhos também herdam esse comportamento.