

# 使用 IAM Access Analyzer 验证策略
<a name="access-analyzer-policy-validation"></a>

您可以使用 AWS Identity and Access Management Access Analyzer 策略验证来验证您的策略。您可以在 IAM 控制台中使用 AWS CLI、AWS API 或 JSON 策略编辑器创建或编辑策略。IAM Access Analyzer 将根据 IAM [policy 语法](reference_policies_grammar.md)和 [AWS 最佳实践](best-practices.md)来验证您的策略。您可以查看策略验证检查结果，其中包括策略的安全警告、错误、常规警告和策略建议。这些结果提供了可操作的建议，可帮助您编写可操作且符合安全最佳实践的策略。要查看 IAM Access Analyzer 运行的基本策略检查列表，请参阅 [IAM 策略验证检查引用](access-analyzer-reference-policy-checks.md)。

## 在 IAM（控制台）中验证策略
<a name="access-analyzer-policy-validation-iam-console"></a>

在 IAM 控制台中创建或编辑托管策略时，可以查看 IAM Access Analyzer 策略验证生成的调查发现。您还可以查看这些内联用户或角色策略的结果。IAM Access Analyzer 不会为内联组策略生成这些调查发现。

**查看 IAM JSON 策略的策略检查生成的结果**

1. 登录 AWS 管理控制台，然后通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 使用以下方法之一开始创建或编辑策略：

   1. 要创建新的托管策略，请转到 **Policies**（策略）页面并创建新策略。有关更多信息，请参阅 [使用 JSON 编辑器创建策略](access_policies_create-console.md#access_policies_create-json-editor)。

   1. 要查看现有客户管理型策略的策略检查，请转到**策略**页面，选择策略的名称，然后选择**编辑**。有关更多信息，请参阅 [编辑客户托管策略（控制台）](access_policies_manage-edit-console.md#edit-customer-managed-policy-console)。

   1. 要查看针对用户或角色的内联策略的策略检查，请转到**用户**或**角色**页面，选择用户或角色的名称，在**权限**选项卡上选择策略名称，然后选择**编辑**。有关更多信息，请参阅 [编辑内联策略（控制台）](access_policies_manage-edit-console.md#edit-inline-policy-console)。

1. 在策略编辑器中，选择 **JSON** 选项卡。

1. 在策略下方的策略验证窗格中，选择以下一个或多个选项卡。选项卡名称还指示策略的每种查找类型的数量。
   + **Security**（安全）— 如果您的策略允许访问，但由于访问权限过于宽松而致使 AWS 认为存在安全风险，则可查看相关警告。
   + **Errors**（错误）— 如果策略包含阻止策略运行的行，则可查看错误。
   + **警告** – 如果您的策略不符合最佳实践，但问题不属于安全风险，则可查看警告。
   + **Suggestions**（建议）— 如果 AWS 的建议不影响策略权限的改进，则可查看建议。

1. 查看 IAM Access Analyzer 策略检查提供的结果详细信息。每个结果都会指示所报告问题的位置。要了解有关导致问题的原因以及如何解决问题的详细信息，请选择结果旁的 **Learn more**（了解更多）链接。您还可以在 [Access Analyzer policy checks](access-analyzer-reference-policy-checks.md)（Access Analyzer 策略检查）参考页面搜索与各个结果关联的策略检查。

1. 可选。如果正在编辑现有策略，则可以运行自定义策略检查，以确定与现有版本相比，更新后的策略是否授予新的访问权限。在策略下方的策略验证窗格中，选择**检查新访问**选项卡，然后选择**检查策略**。如果修改后的权限授予新的访问权限，则该语句将在策略验证窗格中突出显示。如果不打算授予新的访问权限，请更新策略声明并选择**检查策略**，直到检测不到新的访问。有关更多信息，请参阅 [使用 IAM Access Analyzer 自定义策略检查来验证策略](access-analyzer-custom-policy-checks.md)。
**注意**  
每次检查新的访问都会产生费用。有关定价的更多详细信息，请参阅 [IAM Access Analyzer 定价](https://aws.amazon.com/iam/access-analyzer/pricing)。

1. 请更新策略以解决结果。
**重要**  
在生产工作流中实施新策略之前，测试新策略或彻底编辑这些策略。

1. 完成后，选择**下一步**。[策略验证器](access_policies_policy-validator.md)会报告 IAM Access Analyzer 未报告的任何语法错误。
**注意**  
您可以随时在**可视化**和 **JSON** 选项卡之间切换。但如果您进行更改或在**可视化**选项卡中选择**下一步**，IAM 可能会重组您的策略，以针对可视化编辑器进行优化。有关更多信息，请参阅 [调整策略结构](troubleshoot_policies.md#troubleshoot_viseditor-restructure)。

1. 对于新策略，在**查看和创建**页面上，输入您要创建的策略的**策略名称**和**描述**（可选）。查看**此策略中定义的权限**，了解策略授予的权限。然后，选择**创建策略**以保存您的工作。

   对于现有策略，在**查看和保存**页面上，查看**此策略中定义的权限**，了解策略授予的权限。选择**将此新版本设置为默认版本。**复选框以将更新后的版本保存为策略的默认版本。然后选择**保存更改**以保存您的工作。

## 使用 IAM Access Analyzer（AWS CLI 或 AWS API）验证策略
<a name="access-analyzer-policy-validation-cli"></a>

您可以从 AWS Command Line Interface（AWS CLI）查看 IAM Access Analyzer 策略验证生成的调查发现。

**要查看 IAM Access Analyzer 策略验证（AWS CLI 或 AWS API）生成的调查发现**  
使用以下值之一：
+ AWS CLI: [aws accessanalyzer validate-policy](https://docs.aws.amazon.com/cli/latest/reference/accessanalyzer/validate-policy.html) 
+ AWS API: [ValidatePolicy](https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_ValidatePolicy.html) 