

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 IAM 政策模擬器測試 IAM 政策
<a name="access_policies_testing-policies"></a>

使用 IAM 政策模擬器，您可以測試身分型政策、IAM 許可界限、服務控制政策 (SCPs)，以及您提供的資源型政策。您會模擬 AWS 如何根據這些政策評估請求，而不將實際請求傳送至任何 AWS 服務。每個模擬都會針對您測試的每個動作和資源傳回二進位授權結果：允許或拒絕該動作。當結果是允許或明確拒絕時，模擬器也會顯示產生該結果的政策，讓您可以了解並修正原因。

如需有關如何以及為什麼要使用 IAM 政策的詳細資訊，請參閱 [中的政策和許可 AWS Identity and Access Management](access_policies.md)。

**重要**  
政策模擬器結果可能與您的即時 AWS 環境不同。建議您在使用政策模擬器進行測試後，針對即時 AWS 環境檢查政策，以確認您擁有所需的結果。如需詳細資訊，請參閱[IAM 政策模擬器的運作方式](#policies_policy-simulator-how-it-works)。

下列螢幕擷取畫面顯示 IAM 政策模擬器，您可以在其中選取身分及其政策，並在執行模擬之前選擇要測試的動作和資源。

![主體模式中的 IAM 政策模擬器主控台。](https://docs.aws.amazon.com/zh_tw/IAM/latest/UserGuide/images/policysim-console-screenshot-1.png)


**Topics**
+ [政策模擬器模式](#policies_policy-simulator-modes)
+ [您可以使用政策模擬器做什麼](#policies_policy-simulator-what-you-can-do)
+ [IAM 政策模擬器的運作方式](#policies_policy-simulator-how-it-works)
+ [IAM 政策模擬器中條件索引鍵評估的運作方式](#policies_policy-simulator-condition-keys)
+ [使用政策模擬器的許可](permissions-required_policy-simulator.md)
+ [如何模擬政策](policies_policy-simulator-how-to.md)

## 政策模擬器模式
<a name="policies_policy-simulator-modes"></a>

政策模擬器有兩種模式。選擇符合您想要測試帳戶中已存在的政策，或是您仍在起草的政策的模式。

**主體模式**  
在主體模式中，您會測試已連接至現有 IAM 使用者、角色或群組的政策。您可以為模擬選擇一個身分，而模擬器會評估連接到該身分的政策。您也可以包含或排除模擬的自訂身分政策或許可界限。這些新增項目模擬為連接到委託人，而不是實際連接到 IAM，因此您的帳戶保持不變。

**自訂模式**  
在自訂模式中，您會測試一個或多個您寫入或貼上的政策。這對於在連接政策之前檢查政策非常有用。自訂政策是自行模擬的，不會儲存至您的帳戶。

如需選取模式和執行模擬的詳細step-by-step說明，請參閱 [如何模擬政策](policies_policy-simulator-how-to.md)。

## 您可以使用政策模擬器做什麼
<a name="policies_policy-simulator-what-you-can-do"></a>

以下是您可以使用政策模擬器執行的一些常見作業。您可以在 中找到更詳細的step-by-step指南，以及 API 和主控台行為之間的差異[如何模擬政策](policies_policy-simulator-how-to.md)。
+ 測試身分型政策，無論它們是否已連接到 IAM 使用者、群組或角色，或是您寫入或貼上的新政策。對於具有多個政策的連接身分，您可以一起測試所有政策或選取個別政策，並查看特定資源允許或拒絕哪些動作。新政策的評估就像是連接到身分一樣，而不會實際連接到您的帳戶；它們僅用於模擬，不會儲存到您的帳戶。
+ 測試限制性控制對存取的影響。您可以一次模擬一個許可界限。如果您的 AWS 帳戶 是 中組織的成員[AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/)，您也可以測試服務控制政策 (SCPs) 對您身分型政策的影響。模擬器會告訴您 SCP 是否允許或拒絕動作，但基於安全考量，它不會像其他政策類型一樣從 SCP 浮現相符的陳述式。
+ 測試您提供的以資源為基礎的政策的效果。除了 主控台之外，模擬器不會為您擷取資源的政策。若要在模擬中包含資源型政策，您可以提供政策與資源。
+ 在實際情況下測試特定服務、動作和資源，並識別決定結果的因素。例如，您可以測試政策是否允許在特定儲存貯體上 Amazon S3 中的 `CreateBucket``ListAllMyBuckets`、 和 `DeleteBucket`動作，並提供內容索引鍵，例如正在測試的政策中`Condition`元素所參考的 IP 地址或日期。對於每個結果，模擬器會識別哪些特定陳述式允許或拒絕存取；相符的陳述式可能來自身分型政策和您提供的資源型政策。

## IAM 政策模擬器的運作方式
<a name="policies_policy-simulator-how-it-works"></a>

當您執行模擬時，政策模擬器會評估請求範圍內的政策、範圍內的任何 SCPs，以及您提供的輸入，例如動作、資源和內容索引鍵值。在自訂模式中，您可以直接提供政策。在主體模式中，模擬器會使用連接到您所選身分的政策，而且您可以在模擬中包含或排除更多政策。結果是每個動作和資源的二進位結果：允許或拒絕。

政策模擬器與即時 AWS 環境的差別如下：
+ 政策模擬器不會提出實際 AWS 的服務請求，因此您可以安全地測試請求，否則可能會對您的即時 AWS 環境進行不必要的變更。它不會使用生產環境中的真實內容索引鍵值，而且因為動作實際上並未執行，所以不會傳回任何服務回應。唯一的結果是是否允許或拒絕每個請求的動作。
+ 如果您在政策模擬器中編輯政策，變更只會影響模擬。您 中的對應政策 AWS 帳戶 保持不變。
+ 政策模擬器會評估 SCPs，包括拒絕陳述式中的條件索引鍵和資源範圍，但不支援資源控制政策 (RCPs)。模擬結果仍然可能與某些進階組態的即時行為不同，例如 VPC 端點政策、角色鏈結或單一資源上的多個資源型政策。
+ 跨帳戶模擬會在 中傳回per-policy-type決策 （身分政策和資源政策）`EvalDecisionDetails`。

## IAM 政策模擬器中條件索引鍵評估的運作方式
<a name="policies_policy-simulator-condition-keys"></a>

許多政策使用相依於條件索引鍵的`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 全域條件內容索引鍵](reference_policies_condition-keys.md)。

**服務控制政策 (SCPs中的條件索引鍵**  
模擬器會評估 SCPs 中的條件索引鍵和資源範圍。如何提供這些金鑰的值取決於您執行模擬的方式：
+ 使用 AWS CLI 或 AWS API，您可以為 SCPs 參考的條件索引鍵提供值。
+ 在 IAM 主控台中，您只能為出現在身分型政策、許可界限或資源型政策中的條件金鑰設定值。如果只有 SCP 參考條件索引鍵，您就無法在主控台中為其設定值。不過，如果其中一個其他政策中也顯示相同的條件索引鍵，則您設定的值會用於整個評估，包括 SCP。

基於安全考量，SCP 評估不會傳回缺少的內容值。您仍然會收到請求的允許或拒絕決定。