允許政策的政策分析工具

透過允許政策的政策分析工具,您可以根據 IAM 允許政策,瞭解哪些主體 (例如使用者、服務帳戶、群組和網域) 具備哪些 Google Cloud 資源的存取權。

允許政策的政策分析工具可協助您解答下列問題:

  • 誰可以存取這個 IAM 服務帳戶?
  • 誰可以讀取這個 BigQuery 資料集中的資料,其中包含個人識別資訊 (PII)?
  • dev-testers 群組在這個專案的任何資源中,具備哪些角色和權限?
  • Tal 可以在專案 A 中刪除哪些 Compute Engine 虛擬機器 (VM) 執行個體?
  • 晚上 7 點時,誰可以存取這個 Cloud Storage bucket?

允許政策的政策分析工具運作方式

如要使用政策分析工具分析允許政策,請建立分析查詢、指定分析範圍,然後執行查詢。

分析查詢

如要使用政策分析工具,請建立分析查詢,並指定一或多個下列欄位:

  • 主體:您要檢查存取權的身分 (例如使用者、服務帳戶、群組和網域)
  • 存取權:要檢查的權限和角色
  • 資源:您要檢查存取權的資源
  • (僅限 API) 條件背景資訊:您要檢查存取權的背景資訊,例如一天中的時間

通常您會在分析查詢中指定一或兩個欄位,然後使用查詢結果取得未指定欄位的詳細資訊。舉例來說,如要瞭解誰對特定資源具有特定權限,您會在分析查詢中指定存取權和資源,但不會指定主體。

如需更多可建立的查詢類型範例,請參閱「常見查詢類型」。

分析範圍

如要執行分析查詢,您必須指定要分析的範圍。範圍是您要限制分析作業的機構、資料夾或專案。系統只會分析附加至做為範圍的資源,以及附加至其後代的 IAM 允許政策。

在 REST API 和 gcloud CLI 中,您需要手動指定範圍。在 Google Cloud 控制台中,系統會根據您管理的專案、資料夾或機構,自動判斷範圍。

建立分析查詢並指定範圍後,即可執行查詢,分析該範圍內的政策。

查詢結果

執行分析查詢時,政策分析工具會回報包含您在查詢中指定的主體、存取權和資源的所有角色繫結。針對每個角色繫結,這項服務會回報繫結中的主體、繫結授予的存取權 (角色和權限),以及繫結授予存取權的資源。

您可以查看這些結果,進一步瞭解專案、資料夾或機構的存取權。舉例來說,如果您執行查詢,找出哪些主體有權存取特定資源,則會查看查詢結果中的主體。

您可以啟用查詢選項,調整查詢結果中的資訊。

支援的政策類型

允許政策的政策分析工具僅支援 IAM 允許政策

允許政策的政策分析工具不支援下列形式的存取控管:

政策分析工具查詢結果不會將不支援的政策類型納入考量。舉例來說,假設使用者因允許政策而擁有專案的 iam.roles.get 權限,但拒絕政策會禁止他們使用該權限。政策分析工具會回報他們擁有 iam.roles.get 權限,即使有拒絕政策也一樣。

政策繼承

為考量政策繼承,政策分析工具會自動分析指定範圍內的所有相關允許政策,無論這些政策位於資源階層的哪個位置。

舉例來說,假設您想瞭解哪些人可以存取 IAM 服務帳戶:

  • 如果將查詢範圍限定為專案,政策分析工具會分析服務帳戶的允許政策和專案的允許政策。
  • 如果將查詢範圍限定為機構,政策分析工具會分析服務帳戶的允許政策、擁有服務帳戶的專案允許政策、包含專案的所有資料夾允許政策,以及機構的允許政策。

條件式存取

如果角色繫結有條件,只有在符合該條件時,才會授予主體存取權。政策分析工具一律會回報附加至相關角色繫結的條件。相關角色繫結是一種角色繫結,當中包含您在分析查詢中指定的主體、存取權和資源。

在某些情況下,政策分析工具也能分析條件,也就是回報條件是否符合。政策分析工具可以分析下列類型的條件:

如果相關角色繫結包含條件,政策分析工具會執行下列其中一項操作:

  • 如果政策分析工具可以分析條件,就會執行下列其中一項操作:

    • 如果條件評估結果為 true,政策分析工具會在查詢結果中加入角色繫結,並將條件評估結果標示為 TRUE
    • 如果條件評估結果為 false,政策分析工具就不會在查詢結果中納入該角色。
  • 如果政策分析工具無法分析相關角色繫結的條件,就會將該角色納入查詢結果,並將條件評估標示為 CONDITIONAL

資料更新間隔

政策分析器會使用 Cloud Asset API,盡可能提供最新資料。幾乎所有政策更新都會在幾分鐘內顯示在 Policy Analyzer 中,但 Policy Analyzer 可能不會包含最新的政策更新。

常見查詢類型

本節說明如何使用分析查詢,解答常見的存取權相關問題。

哪些主體可以存取這項資源?

如要判斷哪些主體可以存取資源,請建立分析查詢,指定資源,並視需要指定要檢查的角色和權限。

這些查詢可協助您回答下列問題:

  • 誰可以存取這個 IAM 服務帳戶?
  • 誰有權模擬這個 IAM 服務帳戶?
  • 專案 A 的帳單管理員是誰?
  • (僅限 API 和 gcloud CLI):誰可以模擬服務帳戶,更新專案 A?

如要瞭解如何建立及傳送這些查詢,請參閱「判斷哪些主體可以存取資源」。

哪些主體具備這些角色和權限?

如要判斷哪些主體具備特定角色和權限,請建立分析查詢,指定要檢查的主體和一組角色與權限。

這些查詢可協助您回答下列問題:

  • 誰有權限模擬機構中的服務帳戶?
  • 誰是組織中的帳單管理員?
  • 誰可以讀取這個包含個人識別資訊 (PII) 的 BigQuery 資料集?
  • (僅限 API 和 gcloud CLI):機構中哪些使用者可以模擬服務帳戶,讀取 BigQuery 資料集?

如要瞭解如何建立及傳送這些查詢,請參閱「判斷哪些主體具備特定角色或權限」。

這個主體在這項資源中具備哪些角色和權限?

如要判斷主體對特定資源有哪些角色和權限,請建立分析查詢,指定要檢查權限的主體和資源。

這些查詢可協助您回答下列問題:

  • 使用者 Sasha 在這個 BigQuery 資料集上擁有哪些角色和權限?
  • dev-testers 群組在這個專案的任何資源中,具備哪些角色和權限?
  • (僅限 API 和 gcloud CLI):如果使用者 Dana 模擬服務帳戶,Dana 在這個 BigQuery 資料集上會有哪些角色和權限?

如要瞭解如何建立及傳送這些查詢,請參閱「判斷主體對資源的存取權」。

這個主體可以存取哪些資源?

如要判斷特定主體可以存取哪些資源,請建立分析查詢,指定主體和要檢查的角色與權限。

這些查詢可協助您回答下列問題:

  • 使用者 Mahan 有權讀取哪些 BigQuery 資料集?
  • dev-testers 群組是哪些 BigQuery 資料集的資料擁有者?
  • Tal 可刪除專案 A 中的哪些 VM?
  • (僅限 API 和 gcloud CLI):使用者 John 模擬服務帳戶時,可以刪除哪些 VM?

如要瞭解如何建立及傳送這些查詢,請參閱「判斷主體可存取的資源」。

已儲存的分析查詢

如果您使用 REST API,可以儲存分析查詢,以便重複使用或與他人共用。執行已儲存的查詢的方式,與執行其他查詢相同。

如要進一步瞭解如何儲存查詢,請參閱「管理已儲存的查詢」。

匯出查詢結果

您可以使用 analyzeIamPolicyLongrunning 非同步執行查詢,並將查詢結果匯出至 BigQuery 或 Cloud Storage。

如要瞭解如何將查詢結果匯出至 BigQuery,請參閱「將政策分析結果寫入 BigQuery」。

如要瞭解如何將查詢結果匯出至 Cloud Storage,請參閱「將政策分析結果寫入 Cloud Storage」。

查詢選項

政策分析工具提供多種選項,可為查詢結果新增更多詳細資料。

如要瞭解如何啟用這些選項,請參閱「啟用選項」。

群組展開

啟用群組展開功能後,查詢結果中的所有群組都會展開為個別成員。每個群組最多可擴充至 1,000 名成員。如果您具備足夠的群組權限,系統也會展開巢狀群組。只有在查詢中未指定主體時,這個選項才會生效。

舉例來說,假設您為「誰有 project-1storage.buckets.delete 權限?」查詢啟用群組擴展功能。如果政策分析工具找到任何具有 storage.buckets.delete 權限的群組,查詢結果不僅會列出群組 ID,還會列出群組中的所有個別成員。

即使存取權是使用者加入群組所致,您也能透過這個選項瞭解個別使用者的存取權。

角色擴展

如果啟用角色擴展功能,查詢結果會列出每個角色內的所有權限,以及角色本身。只有在查詢中未指定任何權限或角色時,才能使用這個選項。

舉例來說,假設您為「my-user@example.com 對值區 bucket-1 具有哪些存取權?」查詢啟用角色擴展功能。如果政策分析工具找到任何授予 my-user@example.com bucket-1 存取權的角色,查詢結果不僅會列出角色名稱,還會列出角色包含的所有權限。

這個選項可讓你查看主體擁有的確切權限。

資源擴充

如果為政策分析工具查詢啟用資源擴充功能,查詢結果會列出查詢結果中任何父項資源 (專案、資料夾和機構) 的所有相關子項資源。這項擴展作業設有上限,每個父項資源的政策分析工具查詢最多可擴展 1,000 項資源,每個父項資源的政策分析工具長時間查詢最多可擴展 100,000 項資源。

舉例來說,請考量資源擴展對下列查詢的影響:

  • 誰擁有 project-1 的「storage.buckets.delete」權限?

    如果為這項查詢啟用資源擴展功能,查詢結果的資源部分不僅會列出專案,也會列出專案內的所有儲存空間值區。

  • my-user@example.com 對哪些資源具有 compute.instances.setIamPolicy 權限?

    如果您為這項查詢啟用資源擴展功能,且政策分析工具發現 my-user@example.com 具有包含該權限的專案層級角色,查詢結果的資源部分不僅會列出專案,也會列出專案內的所有 Compute Engine 執行個體。

這個選項可讓您詳細瞭解主體可存取的資源。

服務帳戶模擬

如果您使用 REST API 或 gcloud CLI,可以啟用服務帳戶模擬分析。

如果啟用這個選項,政策分析工具會執行額外的分析查詢,判斷哪些人可以模擬服務帳戶,並取得指定資源的指定存取權。政策分析工具 會針對查詢結果中的每個服務帳戶執行一次查詢。這些查詢會分析哪些使用者對服務帳戶具有下列任一權限:

  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.getAccessToken
  • iam.serviceAccounts.getOpenIdToken
  • iam.serviceAccounts.implicitDelegation
  • iam.serviceAccounts.signBlob
  • iam.serviceAccounts.signJwt

配額與限制

Cloud Asset Inventory 會根據消費者專案,限制傳入要求的頻率,包括政策分析要求。此外,Cloud Asset Inventory 也會限制群組成員資格內的群組擴展,以及資源階層內的資源擴展。

如要查看政策分析工具的預設配額和限制,請參閱 Cloud Asset Inventory 說明文件中的「配額和限制」。

定價

每個機構每天最多可免費執行 20 項分析查詢。這項限制包括允許政策分析和機構政策分析。

如要每天執行超過 20 項分析查詢,您必須在機構層級啟用 Security Command Center 的進階或企業方案。詳情請參閱帳單問題

後續步驟