瞭解階層評估

機構政策套用在某資源之後,該資源的所有子系都會預設繼承該政策。如果您在機構資源上設定機構政策,該政策的所有子項資源都會沿用這項政策。

您可以在子系資源上設定具有不同設定的相同機構政策,該政策會根據階層評估規則覆寫或合併沿用的政策。

事前準備

階層範例

在以下資源階層圖表中,各資源設定了機構政策,並定義其是否沿用父項資源的政策。彩色形狀代表機構政策允許或拒絕該值。

沿用圖表

限制代表機構政策控制的行為定義。在上述範例中,Constraint 代表限制預設值,定義限制沒有機構政策時的行為。本範例中的限制預設值允許所有值。其下層節點定義了機構政策,可透過允許或拒絕值來覆寫限制預設值。

各節點的有效政策會根據沿用規則而定。如果沒有設定機構政策,資源會繼承預設的限制行為。如果沒有設定機構政策,則使用自訂政策。在上述範例中,機構節點定義的政策允許 紅色方塊和 綠色圓形。

在該階層中,機構節點以下的資源會透過下列方式進行評估:

  1. 資源 1 定義的政策將 inheritFromParent 設為 TRUE,並允許 藍色菱形。沿用機構節點政策,並與在資源 1 上設定的政策合併。有效政策的評估結果為允許紅色方形、綠色圓形和藍色菱形。

  2. 資源 2 定義的政策將 inheritFromParent 設為 TRUE,並拒絕 綠色圓形。協調政策時,都會優先採用拒絕值的政策。沿用機構節點政策並與資源 2 設定的政策合併。因此有效政策的評估結果為僅允許紅色方形。

  3. 資源 3 定義的政策將 inheritFromParent 設為 FALSE,並允許 黃色六邊形。不沿用機構節點的政策,因此有效政策評估為只允許黃色六邊形。

  4. 資源 4 定義的政策將 inheritFromParent 設為 FALSE,並包含 restoreDefault 值。不沿用機構節點的政策但使用預設限制行為,因此有效政策評估為允許所有值。

階層評估規則

下列規則管理特定資源的機構政策評估方式。您需要組織政策管理員角色,才能設定組織政策。

沒有設定機構政策

如果您沒有設定機構政策,資源會沿用最低層級祖先的政策。如果祖先階層的任何位置都沒有設定政策,系統就會強制執行限制的預設行為。

繼承

如果資源預設了機構政策,則會取代階層中父項資源設定的任何政策。不過,如果資源設定了 inheritFromParent = true,則父項資源的有效政策,經沿用、合併及協調後評估出該節點的有效政策。例如:

  • 某資料夾拒絕 projects/123 一值。
  • 該資料夾下的專案拒絕 projects/456 一值。

這兩個政策就會合併,因此有效的政策則是同時拒絕 projects/123projects/456

沿用預設行為

預設行為一律不會合併。設定政策後,一律會取代任何預設行為。例如:

  • 機構層級的 constraints/iam.allowServiceAccountCredentialLifetimeExtension 預設為 DENY
  • 對於這項限制,該機構直接下方的專案允許 SomeServiceAccount 值。

由於系統一律會取代預設行為,而不會合併,因此這項政策會允許 SomeServiceAccount。反之,如果政策明確設為機構層級的 DENY,「DENY 值優先」規則就會套用,有效政策也會是 DENY

拒絕沿用

如果資源的政策包含 inheritFromParent = false,則不繼承其父項的機構政策。而是沿用限制的預設行為,除非您設定了含允許值或拒絕值的政策。

協調政策衝突

當資源沿用機構政策時,系統會合併沿用的政策,並與父項資源的機構政策協調一致。評估含有清單規則的機構政策時,一律會優先採用 DENY 值。例如:

  • 某資料夾拒絕 projects/123 一值。
  • 該資料夾下的專案允許 projects/123 一值。

這時會合併政策並優先採用 DENY 值。有效政策會拒絕所有值,然後以相同方式評估父項或子資源是否拒絕該值。建議不要同時在允許和拒絕的清單中加入相同值。這麼做會混淆政策,以致難以理解。

含有布林規則的機構政策不會合併及協調政策。如果資源指定了政策,將使用 TRUEFALSE 值來判斷有效政策。例如:

  • 某資料夾的 enforced: true 設定為 constraints/iam.managed.disableServiceAccountCreation

  • 該資料夾下的專案將 enforced: false 設為 constraints/iam.managed.disableServiceAccountCreation

將忽略資料夾設定的 enforced: true 值,因為專案本身定義了 enforced: false。機構政策不會針對該專案強制執行。

重設為預設政策

機構政策會透過叫用 RestoreDefault,針對此資源使用限制的預設行為。子資源也會繼承此行為。