Compreender a avaliação da hierarquia

Quando define uma política da organização num recurso, todos os descendentes desse recurso herdam a política da organização por predefinição. Se definir uma política da organização no recurso da organização, essas restrições são herdadas por todos os recursos subordinados.

Pode definir a mesma política de organização com uma configuração diferente nos recursos secundários, que vai substituir ou unir-se à política herdada com base nas regras de avaliação da hierarquia e no tipo de restrição definido na política de organização.

Antes de começar

Hierarquia de exemplo

No diagrama de hierarquia de recursos seguinte, cada recurso define uma política de organização que aplica uma restrição gerida antiga e define se a política herda a política do recurso principal. 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 restriçã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 a predefinição da restrição, que define o comportamento quando a restrição não está definida numa política da organização. A predefinição da restrição neste exemplo permite todos os valores . Os nós abaixo definem políticas da organização que substituem a predefinição da restrição permitindo ou recusando valores.

A política em vigor em cada nó é avaliada com base nas regras de herança. Se uma política da organização não estiver definida, o recurso herda o comportamento da restrição predefinido. Se definir uma política da organização, a sua política é usada em alternativa. 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 forma:

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

  2. O recurso 2 define uma política que define inheritFromParent como TRUE e nega o círculo verde . Os valores de recusa têm sempre precedência durante a conciliação de políticas. A política do nó da organização é herdada e unida à política definida no recurso 2. A política efetiva é 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, pelo que a política em vigor é 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 é usado o comportamento da restrição predefinido, pelo que a política efetiva é avaliada para permitir todos os valores.

Regras de avaliação da hierarquia

As seguintes regras regem a forma como uma política de organização é avaliada num determinado recurso. Precisa da função Administrador da política da organização para definir a política da organização.

Nenhuma política da organização definida

Se não definir uma política da organização, um recurso herda do seu ancestral mais baixo com uma política definida. Se não existir nenhuma política definida em nenhum ponto da hierarquia de antecessores, o comportamento predefinido da restrição é aplicado.

Herança

Um recurso que tenha uma política de organização definida por predefinição substitui qualquer política definida pelos respetivos recursos principais na hierarquia. No entanto, se um recurso tiver inheritFromParent = true definido, a política efetiva do recurso principal é herdada, unida e reconciliada para avaliar a política efetiva resultante. Por exemplo:

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

As duas políticas são unidas e, neste caso, resultam numa política eficaz que nega projects/123 e projects/456.

Herdar o comportamento predefinido

O comportamento predefinido nunca é unido. Quando uma política é definida, substitui sempre qualquer comportamento predefinido. Por exemplo:

  • Por predefinição, o constraints/iam.allowServiceAccountCredentialLifetimeExtension está definido como DENY ao nível da organização.
  • Para esta restrição, um projeto diretamente abaixo dessa organização permite o valor SomeServiceAccount.

Uma vez que o comportamento predefinido nunca é unido e é sempre substituído, isto resulta numa política eficaz que permite o SomeServiceAccount. Por outro lado, se a política fosse definida explicitamente como DENY ao nível da organização, a regra "O valor DENY tem prioridade" seria aplicada e a política efetiva seria DENY.

Não permita a herança

Se um recurso tiver uma política que inclua inheritFromParent = false, não herda a política da organização do respetivo recurso principal. Em alternativa, o recurso herda o comportamento predefinido da restrição, a menos que defina uma política com valores permitidos ou recusados.

Conciliar conflitos de políticas

Quando um recurso herda políticas da organização, as políticas herdadas são unidas e reconciliadas com a política da organização do recurso principal. Quando avalia as políticas da organização com regras de lista, os valores DENY têm sempre precedência. Por exemplo:

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

As políticas são unidas e o valor DENY tem precedência. A política eficaz nega todos os valores e é avaliada da mesma forma, quer o recurso principal ou o recurso secundário negue o valor. Recomendamos que não inclua um valor nas listas permitidas e recusadas. Se o fizer, pode dificultar a compreensão das suas políticas.

As políticas da organização com regras booleanas não são unidas nem reconciliadas. Se for especificada uma política num recurso, esse valor de TRUE ou FALSE é usado para determinar a política eficaz. Por 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 está definido no próprio projeto. A política organizacional não é aplicada nesse projeto.

Reponha a política predefinida

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