階層評估

機構政策套用至資源後,該資源的所有子系都會預設沿用該政策。如果您在機構資源上設定機構政策,所有子項資源都會沿用這些限制。

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

事前準備

階層範例

在下方的資源階層圖表中,各項資源設定了機構政策,強制執行舊版受管理限制,並定義政策是否沿用父項資源的政策。彩色形狀代表機構政策允許或拒絕該值。

沿用圖表

限制是指針對Google Cloud 服務或一組 Google Cloud 服務強制執行的特定規範類型。在上述範例中,Constraint 代表限制預設值,定義限制未在機構政策中定義時的行為。本例中的限制預設值允許 所有值。其下層節點定義了機構政策,可透過允許或拒絕值來覆寫限制預設值。

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

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

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

  2. 資源 2 定義的政策將 inheritFromParent 設為 TRUE,並拒絕 綠色圓形。政策協調期間一律會優先採用拒絕值。系統會沿用機構節點的政策,並與資源 2 設定的政策合併。有效政策的評估結果為只允許 紅色方塊。

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

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

階層評估規則

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

自動強制執行的限制

如果沒有強制執行機構政策,系統會沿用最低層級祖先的政策。如果祖系階層的任何位置都沒有強制執行組織政策,系統就會強制執行 Google 管理的限制條件預設行為。

如果機構政策限制的 Google 管理預設行為會限制作業,即使您從未明確定義機構政策,該作業也會受到限制。如要允許這些作業,您必須建立組織政策來覆寫上層政策。

如要查看 Google 代管的預設行為會限制作業的機構政策限制清單,請參閱「機構政策限制」。

繼承

如果資源預設了機構政策,則會取代階層中父項資源設定的任何政策。不過,如果資源設定了 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,針對此資源使用限制的預設行為。子項資源也會沿用這項行為。