Quando você define uma política da organização em um recurso, todos os descendentes desse recurso herdam a política 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.
Você pode 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 de hierarquia.
Antes de começar
Leia a página Noções básicas sobre restrições para saber o que é uma restrição.
Leia a visão geral do serviço Política da organização para saber como funciona a política da organização.
Exemplo de hierarquia
No diagrama de hierarquia de recursos a seguir, cada recurso define uma política da organização e define se ela herda a política do recurso pai. As formas coloridas representam os valores que a política da organização permite ou nega.
Uma restrição é uma definição dos comportamentos controlados por uma política da organização. No exemplo anterior, a restrição representa o padrão de restrição, que define o comportamento quando não há uma política da organização para a restrição. O padrão de restrição neste exemplo permite todos os valores de
. Os nós abaixo dela definem políticas da organização que substituem o padrão da 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 vai herdar o comportamento padrão da restrição. Se você definir uma política da organização, ela será usada. No exemplo anterior, o Node 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:
O recurso 1 define uma política que define
inheritFromParent
comoTRUE
e permite um 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 .O recurso 2 define uma política que define
inheritFromParent
comoTRUE
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 .O recurso 3 define uma política que define
inheritFromParent
comoFALSE
e permite um 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 .O recurso 4 define uma política que define
inheritFromParent
comoFALSE
e inclui o valorrestoreDefault
. 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.
Nenhuma política da organização definida
Se você não definir uma política da organização, um recurso será herdado do ancestral mais baixo com uma política definida. Se não houver uma política definida em nenhum lugar na hierarquia de ancestrais, o comportamento padrão da restrição será aplicado.
Herança
Um recurso com uma política da organização definida por padrão prevalece sobre qualquer
política definida pelos recursos pais 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
.
Herança do comportamento padrão
O comportamento padrão nunca é mesclado. Quando uma política é definida, ela sempre substitui qualquer comportamento padrão. Exemplo:
- O
constraints/iam.allowServiceAccountCredentialLifetimeExtension
é definido comoDENY
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
vai 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, elas 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. Com a política vigente, todos os valores são negados e será avaliado, da mesma forma, se o recurso pai ou filho nega 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 se mesclam e não 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
paraconstraints/iam.managed.disableServiceAccountCreation
.Um projeto abaixo dessa pasta define
enforced: false
paraconstraints/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.