允許政策的 Policy Simulator

您可以使用 Identity and Access Management 的政策模擬器允許政策,在變更生效前,先瞭解變更允許政策可能對主體存取權產生什麼影響。您可以使用 Policy Simulator,確保所做的變更不會導致主體失去所需的存取權。

這項功能只會評估允許政策。如要瞭解如何模擬其他政策類型,請參閱以下內容:

允許政策的 Policy Simulator 運作方式

允許政策的政策模擬器可協助您判斷變更允許政策對使用者可能造成的影響。為此,系統不只會比較目前和建議的許可政策中的權限。而是使用存取記錄,專注於實際會影響使用者的權限變更。

為瞭解允許政策變更可能對主體存取權產生什麼影響,Policy Simulator 會判斷過去 90 天內哪些存取嘗試在採用建議的允許政策和目前的允許政策時,會產生不同的結果。然後將這些結果做為存取權變更清單回報。

模擬允許政策變更時,您必須提供要測試變更內容的建議允許政策。這項建議的允許政策適用於任何接受允許政策的資源

執行模擬時,Policy Simulator 會執行以下操作:

  1. 擷取過去 90 天內支援的資源類型的存取記錄。收集這些記錄的位置取決於您模擬的允許政策所屬資源:

    • 如果您要模擬專案或機構的許可政策,Policy Simulator 會擷取該專案或機構的存取記錄。
    • 如果您要模擬不同類型資源的允許政策,Policy Simulator 會擷取該資源上層專案或機構的存取記錄。
    • 如果您一次模擬多個資源的允許政策,Policy Simulator 會擷取資源最近的共同專案或機構的存取記錄。

    如果父項資源已不存在 90 天,Policy Simulator 會擷取資源建立後的所有存取嘗試。

  2. 使用目前的允許政策重新評估或重播存取記錄中記錄的存取嘗試,並考量任何繼承的允許政策和在子項資源上設定的任何允許政策。

    使用目前的許可政策重播存取嘗試,可確保 Policy Simulator 只會回報因提議的許可政策而造成的存取權變更,不會回報因您在過去 90 天內修改其他許可政策而造成的變更。

  3. 使用建議的允許政策再次重播存取嘗試,並再次考量任何已繼承的允許政策,以及在子項資源上設定的任何允許政策。

  4. 比較兩次重播的結果,並回報差異,說明提議的變更對主體存取權的影響。

範例:測試政策變更

假設您想移除使用者的「機構檢視者」角色 (roles/resourcemanager.organizationViewer),並想使用政策模擬工具確認這項變更不會影響使用者的存取權。

您可以使用 Google Cloud 控制台、REST API 或 Google Cloud CLI 模擬允許政策變更

開始模擬時,Policy Simulator 會執行以下操作:

  • 擷取機構過去 90 天內的存取記錄。
  • 使用機構目前的允許政策重播存取嘗試,其中使用者具有「機構檢視者」角色。
  • 使用建議的許可政策再次重播存取嘗試,其中使用者沒有「機構檢視者」角色。
  • 比較兩次重播的結果,並回報兩者之間的差異。

接著,您可以查看結果,瞭解建議的變更對使用者的存取權有何影響。

範例:政策繼承

假設您想模擬對機構內資料夾 Engineering 的允許政策變更,該機構的結構如下:

機構架構範例

請注意,Engineering 有一個父項資源,即機構 example.com,它會繼承允許政策。它還有三個子專案,可擁有自己的允許政策:example-prodexample-devexample-test

您提供建議的允許政策,並執行模擬作業。開始模擬時,Policy Simulator 會執行以下操作:

  • 擷取過去 90 天內的所有相關記錄。由於 Engineering 是資料夾,因此 Policy Simulator 會從其上層機構 example.com 擷取記錄。
  • 使用資料夾目前的允許政策、從 example.com 繼承的允許政策,以及子專案的允許政策,重播存取嘗試。
  • 使用建議的許可政策、從 example.com 繼承的許可政策,以及子專案的許可政策,再次重播每次存取嘗試。
  • 比較重播結果,並回報兩者之間的差異。

接著,您可以查看結果,瞭解建議的變更對使用者的存取權有何影響。

政策模擬器結果

Policy Simulator 會將允許政策的變更提案影響列為存取權變更清單。存取權變更代表過去 90 天內的存取嘗試,在提議的許可政策下,與目前許可政策的結果不同。

政策模擬工具也會列出模擬期間發生的所有錯誤,協助您找出模擬中可能出現的差距。

存取權變更類型分為以下幾種:

存取權限變更 詳細資料
已撤銷存取權 主體在目前的允許政策下具備存取權,但在提出變更後,將不再具備存取權。
可能已撤銷存取權限

產生這個結果的原因如下:

  • 主體在目前的允許政策下具備存取權,但在建議的允許政策下具備的存取權為「不明」
  • 在現行允許政策下,主體的存取權為「不明」,但在提議變更後,主體將無法存取。
取得存取權 主體在目前的允許政策下沒有存取權,但在提出變更後就會具備存取權。
可能已授予存取權

產生這個結果的原因如下:

  • 主體在目前的允許政策下沒有存取權,但在提出變更後,存取權狀態不明
  • 在目前的允許政策下,主體的存取權為「不明」,但在提出變更後,主體將擁有存取權。
存取權不明 在目前的允許政策和提議的允許政策下,主體的存取權為「不明」,且提議的變更可能會影響主體的存取權。
錯誤 模擬期間發生錯誤。

不明的結果

如果存取結果為「不明」,表示 Policy Simulator 沒有足夠的資訊來完整評估存取權要求。

以下是可能導致結果不明的幾個原因:

  • 角色資訊遭拒:執行模擬的使用者沒有權限查看一或多個模擬角色的角色詳細資料。
  • 無法存取政策:執行模擬作業的主體沒有權限,無法取得模擬作業中涉及的一或多項資源的允許政策。
  • 成員資訊遭拒:執行模擬的使用者主體沒有權限查看模擬允許政策中包含的一或多個群組的成員。
  • 不支援的條件:在測試的許可政策中,有條件式角色繫結。政策模擬工具不支援條件,因此無法評估繫結。

如果存取結果不明,Policy Simulator 結果會回報不明的原因,以及無法存取或評估的特定角色、允許政策、會員資訊和條件。

錯誤

政策模擬工具也會回報模擬期間發生的任何錯誤。請務必檢查這些錯誤,瞭解模擬中可能存在的差距。

政策模擬器可能會回報幾種錯誤:

  • 操作錯誤:無法執行模擬作業。

    如果錯誤訊息指出專案或機構中的記錄太多,因此無法執行模擬作業,您就無法在資源上執行模擬作業。

    如果您因為其他原因收到這則錯誤訊息,請嘗試再次執行模擬作業。如果您仍無法執行模擬,請來信至 policy-simulator-feedback@google.com。

  • 重播錯誤:重播單一存取嘗試失敗,因此 Policy Simulator 無法判斷在提議的允許政策下,存取嘗試的結果是否會變更。

  • 不支援的資源類型錯誤:建議的允許政策會影響與不支援的資源類型相關聯的權限,而政策模擬工具無法模擬這類錯誤。Policy Simulator 會在模擬結果中列出這些權限,讓您瞭解無法模擬哪些權限。

記錄重播大小上限

模擬器可重播的存取記錄數量上限為 5,000 筆。如果您的專案或機構在過去 90 天內的存取記錄超過 5,000 筆,模擬作業就會失敗。

如要瞭解 Policy Simulator 如何決定要擷取哪些存取記錄,請參閱本頁的「Policy Simulator 運作方式」。

資源類型的支援級別

政策模擬工具不支援模擬中的所有資源類型。這會影響模擬的權限變更。

支援的資源類型

Policy Simulator「僅」支援下列資源類型:

服務 支援的資源類型
Cloud Storage
  • buckets
Pub/Sub
  • snapshots
  • subscriptions
  • topics
Cloud SQL
  • backupRuns
  • databases
  • instances
  • sslCerts
  • users
Spanner
  • backups
  • backupOperations
  • databases
  • databaseOperations
  • instanceConfigs
  • instanceOperations
  • instances
  • sessions
Resource Manager
  • folders
  • organizations
  • projects
Compute Engine
  • instances

不支援的資源類型

不支援的資源類型是指政策模擬工具無法擷取存取記錄的資源類型。如果 Policy Simulator 無法擷取資源的存取記錄,就無法評估提議的允許政策對這些存取嘗試的影響。

如果允許政策的變更內容涉及不支援的資源類型權限,Policy Simulator 會在模擬結果中列出這些權限,讓您瞭解無法模擬哪些權限。舉例來說,政策模擬工具不支援 AI Platform 模型。因此,如果建議的允許政策移除了具有 aiplatform.models.list 權限的角色,模擬結果會指出無法模擬 aiplatform.models.list 權限。

後續步驟