本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 IAM 政策模擬器測試 IAM 政策
使用 IAM 政策模擬器,您可以測試身分型政策、IAM 許可界限、服務控制政策 (SCPs),以及您提供的資源型政策。您會模擬 AWS 如何根據這些政策評估請求,而不會將實際請求傳送至任何 AWS 服務。每個模擬都會針對您測試的每個動作和資源傳回二進位授權結果:允許或拒絕該動作。當結果是允許或明確拒絕時,模擬器也會顯示產生該結果的政策,讓您可以了解並修正原因。
如需有關如何以及為什麼要使用 IAM 政策的詳細資訊,請參閱 中的政策和許可 AWS Identity and Access Management。
重要
政策模擬器結果可能與您的即時 AWS 環境不同。建議您在使用政策模擬器進行測試後,針對即時 AWS 環境檢查政策,以確認您擁有所需的結果。如需詳細資訊,請參閱IAM 政策模擬器的運作方式。
下列螢幕擷取畫面顯示 IAM 政策模擬器,您可以在其中選取身分及其政策,並在執行模擬之前選擇要測試的動作和資源。
政策模擬器模式
政策模擬器有兩種模式。選擇符合您想要測試帳戶中已存在的政策,或是您仍在起草的政策的模式。
主體模式
在主體模式中,您會測試已連接至現有 IAM 使用者、角色或群組的政策。您可以為模擬選擇一個身分,而模擬器會評估連接到該身分的政策。您也可以包含或排除模擬的自訂身分政策或許可界限。這些新增項目會模擬成附加至委託人,而不是實際附加至 IAM,因此您的帳戶不會變更。
自訂模式
在自訂模式中,您會測試一個或多個您寫入或貼上的政策。這對於在連接政策之前檢查政策非常有用。自訂政策是自行模擬的,不會儲存至您的帳戶。
如需選取模式和執行模擬的詳細step-by-step說明,請參閱 如何模擬政策。
您可以使用政策模擬器做什麼
以下是您可以使用政策模擬器執行的一些常見作業。您可以在 中找到更詳細的step-by-step指南,以及 API 和主控台行為之間的差異如何模擬政策。
-
測試身分型政策,無論它們是否已連接到 IAM 使用者、群組或角色,或是您寫入或貼上的新政策。對於具有多個政策的連接身分,您可以一起測試所有政策或選取個別政策,並查看特定資源允許或拒絕哪些動作。新政策的評估就像是連接到身分一樣,而不會實際連接到您的帳戶;它們僅用於模擬,不會儲存到您的帳戶。
-
測試限制性控制對存取的影響。您可以一次模擬一個許可界限。如果您的 AWS 帳戶 是 中組織的成員AWS Organizations,您也可以測試服務控制政策 (SCPs) 對您身分型政策的影響。模擬器會告訴您 SCP 是否允許或拒絕動作,但基於安全考量,它不會像其他政策類型一樣從 SCP 浮現相符的陳述式。
-
測試您提供的以資源為基礎的政策的效果。除了主控台之外,模擬器不會為您擷取資源的政策。若要在模擬中包含資源型政策,您可以提供政策與資源。
-
在實際條件下測試特定服務、動作和資源,並識別決定結果的因素。例如,您可以測試政策是否允許在特定儲存貯體上 Amazon S3 中的
CreateBucketListAllMyBuckets、 和DeleteBucket動作,並提供內容索引鍵,例如正在測試的政策中Condition元素所參考的 IP 地址或日期。對於每個結果,模擬器會識別哪些特定陳述式允許或拒絕存取;相符的陳述式可能來自身分型政策和您提供的資源型政策。
IAM 政策模擬器的運作方式
當您執行模擬時,政策模擬器會評估請求範圍內的政策、範圍內的任何 SCPs,以及您提供的輸入,例如動作、資源和內容索引鍵值。在自訂模式中,您可以直接提供政策。在主體模式中,模擬器會使用連接到您所選身分的政策,而且您可以在模擬中包含或排除更多政策。結果是每個動作和資源的二進位結果:允許或拒絕。
政策模擬器與即時 AWS 環境的差別如下:
-
政策模擬器不會提出實際 AWS 的服務請求,因此您可以安全地測試請求,否則可能會對您的即時 AWS 環境進行不必要的變更。它不會使用生產環境中的真實內容索引鍵值,而且因為動作實際上並未執行,所以不會傳回任何服務回應。唯一的結果是是否允許或拒絕每個請求的動作。
-
如果您在政策模擬器中編輯政策,變更只會影響模擬。您 中的對應政策 AWS 帳戶 保持不變。
-
政策模擬器會評估 SCPs,包括拒絕陳述式中的條件索引鍵和資源範圍,但不支援資源控制政策 (RCPs)。模擬結果仍然可能與某些進階組態的即時行為不同,例如 VPC 端點政策、角色鏈結或單一資源上的多個資源型政策。
-
跨帳戶模擬會在 中傳回per-policy-type決策 (身分政策和資源政策)
EvalDecisionDetails。
IAM 政策模擬器中條件索引鍵評估的運作方式
許多政策使用相依於條件索引鍵的Condition元素,例如 aws:RequestedRegion或 aws:MultiFactorAuthPresent。當您執行模擬時,政策模擬器會從兩個來源取得條件索引鍵的值:模擬器自動填入的值,以及您作為模擬輸入提供的值。如果值不符合條件,則會拒絕動作。
模擬器自動填入的內容
模擬器會填入下列主體和組織內容索引鍵以進行評估:
-
主體內容:
aws:PrincipalAccount、aws:PrincipalId、aws:PrincipalType、aws:Type、aws:UserId、aws:UserName -
組織內容:
aws:PrincipalOrgID、aws:PrincipalOrgMasterAccountId、aws:PrincipalOrgPaths
由於這些金鑰會為您填入,因此使用委託人或組織條件SCPs 和其他政策會正確評估。您可以為政策參考的所有其他條件索引鍵提供值。檢閱您正在測試的政策中的Condition元素,並針對不在上述清單中的任何金鑰提供值。
全域條件金鑰和服務支援
對於身分型政策和資源型政策,模擬器不會判斷哪些服務支援指定的全域條件金鑰以進行授權。例如,模擬器不會識別服務不支援 aws:TagKeys。相反地,服務控制政策 (SCPs) 是以服務感知邏輯進行評估,包括全域條件索引鍵,例如 aws:RequestedRegion和 aws:PrincipalAccount。如需條件索引鍵的詳細資訊,請參閱 AWS 全域條件內容索引鍵。
服務控制政策 (SCPs中的條件索引鍵
模擬器會評估 SCPs 中的條件索引鍵和資源範圍。如何提供這些金鑰的值取決於您執行模擬的方式:
-
使用 AWS CLI 或 AWS API,您可以為 SCPs 參考的條件索引鍵提供值。
-
在 IAM 主控台中,您只能為出現在身分型政策、許可界限或資源型政策中的條件金鑰設定值。如果只有 SCP 參考條件索引鍵,您就無法在主控台中為其設定值。不過,如果其中一個其他政策中也顯示相同的條件索引鍵,則您設定的值會用於整個評估,包括 SCP。
基於安全考量,SCP 評估不會傳回缺少的內容值。您仍然會收到請求的允許或拒絕決定。