

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 与... 合作 AWS IAM 访问分析器
<a name="iam-access-analyzer-overview"></a>

以下各部分介绍了如何在 AWS Toolkit for Visual Studio Code中执行 IAM 策略验证和自定义策略检查。有关其他详细信息，请参阅 AWS Identity and Access Management 用户指南中的以下主题：[IAM 访问分析器策略验证](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)和 [ IAM 访问分析器自定义策略检查](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-custom-policy-checks.html)。

## 先决条件
<a name="w2aac17c39c13b5"></a>

要在 Toolkit 中使用 IAM 访问权限分析器策略检查，就必须先满足以下先决条件。
+ 安装 Python 版本 3.6 或更高版本。
+ 安装[适用于 CloudFormation的 IAM 策略验证器](https://github.com/awslabs/aws-cloudformation-iam-policy-validator)或[适用于 Terraform 的 IAM 策略验证器](https://github.com/awslabs/terraform-iam-policy-validator)，这是 Python CLI 工具所必需的，并在“IAM 策略检查”窗口中指定。
+ 配置您的 AWS 角色证书。

## IAM 访问权限分析器策略检查
<a name="w2aac17c39c13b7"></a>

您可以使用对 CloudFormation 模板、Terraform 计划和 JSON 策略文档执行策略检查。 AWS Toolkit for Visual Studio Code您的检查结果可在 VS Code **问题面板**中查看。下图显示的是 VS Code **问题面板**。

![VS Code 问题面板显示 CloudFormation 资源的安全警告和缺失版本警告。](https://docs.aws.amazon.com/zh_cn/toolkit-for-vscode/latest/userguide/images/vscproblemspanel2024.png)


IAM 访问权限分析器提供 4 种类型的检查：
+ 验证策略
+ CheckAccessNotGranted
+ CheckNoNewAccess
+ CheckNoPublicAccess

以下各部分介绍了如何运行每种类型的检查。

**注意**  
在运行任何类型的检查之前，请配置您的 AWS 角色证书。支持的文件包括以下文档类型： CloudFormation 模板、Terraform 计划和 JSON 政策文档  
文件路径引用通常由管理员或安全团队提供，可以是系统文件路径或 Amazon S3 存储桶 URI。要使用 Amazon S3 存储桶 URI，您的当前角色必须可以访问 Amazon S3 存储桶。  
每次自定义策略检查都会产生费用。有关自定义策略检查定价的详细信息，请参阅 [AWS IAM 访问权限分析器定价](https://aws.amazon.com/iam/access-analyzer/pricing/)指南。

### 运行验证策略
<a name="w2aac17c39c13b7c15"></a>

验证策略检查（也称为策略验证）根据 IAM 策略语法和 AWS 最佳实践来验证您的政策。有关更多信息，请参阅《*AWS Identity and Access Management*用户指南》中的 IAM JSON 策略语言语[法](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html)和 IAM [ 主题中的 AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)安全最佳实践。

1. 在 VS Code 中，在 VS Code 编辑器中打开一个包含 AWS IAM 策略的支持文件。

1. 要打开 IAM 访问权限分析器策略检查，请在 VS Code 编辑器中按下 **CRTL\+Shift\+P** 打开 VS Code 命令面板，搜索 **IAM Policy Checks** 并进行单击以打开 **IAM 策略检查**窗格。

1. 在 **IAM 策略检查**窗格中，从下拉菜单中选择您的文档类型。

1. 从**验证策略**部分，选择**运行策略验证**按钮以运行“验证策略”检查。

1. 在 VS Code 的**问题面板**中，查看策略检查结果。

1. 更新策略并重复此过程，重新运行“验证策略”检查，直到策略检查结果不再显示安全警告或错误。

### 跑步 CheckAccessNotGranted
<a name="w2aac17c39c13b7c17"></a>

CheckAccessNotGranted 是一项自定义策略检查，用于验证您的策略是否不允许特定 IAM 操作。

**注意**  
文件路径引用通常由管理员或安全团队提供，可以是系统文件路径或 Amazon S3 存储桶 URI。要使用 Amazon S3 存储桶 URI，您的当前角色必须可以访问 Amazon S3 存储桶。必须至少指定一个操作或资源，并且文件结构应遵循以下示例：  

```
              {"actions": ["action1", "action2", "action3"], "resources": ["resource1", "resource2", "resource3"]}
```

1. 在 VS Code 中，在 VS Code 编辑器中打开一个包含 AWS IAM 策略的支持文件。

1. 要打开 IAM 访问权限分析器策略检查，请在 VS Code 编辑器中按下 **CRTL\+Shift\+P** 打开 VS Code 命令面板，搜索 **IAM Policy Checks** 并进行单击以打开 **IAM 策略检查**窗格。

1. 在 **IAM 策略检查**窗格中，从下拉菜单中选择您的文档类型。

1. 在 “**自定义策略检查” ** 部分中，选择**CheckAccessNotGranted**。

1. 在文本输入字段中，您可以输入包含操作和资源 ARN 的以逗号分隔的列表。必须至少提供一项操作或资源。

1. 选择**运行自定义策略检查**按钮。

1. 在 VS Code 的**问题面板**中，查看策略检查结果。自定义策略检查会返回 `PASS` 或 `FAIL` 结果。

1. 更新您的策略并重复此过程，重新运行 CheckAccessNotGranted 检查直到它返回`PASS`。

### 跑步 CheckNoNewAccess
<a name="w2aac17c39c13b7c19"></a>

CheckNoNewAccess 是一项自定义策略检查，用于验证与参考策略相比，您的策略是否授予新的访问权限。

1. 在 VS Code 中，在 VS Code 编辑器中打开一个包含 AWS IAM 策略的支持文件。

1. 要打开 IAM 访问权限分析器策略检查，请在 VS Code 编辑器中按下 **CRTL\+Shift\+P** 打开 VS Code 命令面板，搜索 **IAM Policy Checks** 并进行单击以打开 **IAM 策略检查**窗格。

1. 在 **IAM 策略检查**窗格中，从下拉菜单中选择您的文档类型。

1. 在 “**自定义策略检查” ** 部分中，选择**CheckNoNewAccess**。

1. 输入引用 JSON 策略文档。或者，您也可以提供引用 JSON 策略文档的文件路径。

1. 选择与您的引用文档类型相匹配的**引用策略类型**。

1. 选择**运行自定义策略检查**按钮。

1. 在 VS Code 的**问题面板**中，查看策略检查结果。自定义策略检查会返回 `PASS` 或 `FAIL` 结果。

1. 更新您的策略并重复此过程，重新运行 CheckNoNewAccess 检查直到它返回`PASS`。

### 跑步 CheckNoPublicAccess
<a name="w2aac17c39c13b7c21"></a>

CheckNoPublicAccess 是一项自定义策略检查，用于验证您的策略是否授予对模板中支持的资源类型的公开访问权限。

有关支持的资源类型的具体信息，请参阅 c [ loudformation-iam-policy-validator 和 terraform-iam-policy-](https://github.com/awslabs/aws-cloudformation-iam-policy-validator?tab=readme-ov-file#supported-resource-based-policies) validator 存储库。[https://github.com/awslabs/terraform-iam-policy-validator](https://github.com/awslabs/terraform-iam-policy-validator) GitHub 

1. 在 VS Code 中，在 VS Code 编辑器中打开一个包含 AWS IAM 策略的支持文件。

1. 要打开 IAM 访问权限分析器策略检查，请在 VS Code 编辑器中按下 **CRTL\+Shift\+P** 打开 VS Code 命令面板，搜索 **IAM Policy Checks** 并进行单击以打开 **IAM 策略检查**窗格。

1. 在 **IAM 策略检查**窗格中，从下拉菜单中选择您的文档类型。

1. 在 “**自定义策略检查” ** 部分中，选择**CheckNoPublicAccess**。

1. 选择**运行自定义策略检查**按钮。

1. 在 VS Code 的**问题面板**中，查看策略检查结果。自定义策略检查会返回 `PASS` 或 `FAIL` 结果。

1. 更新您的策略并重复此过程，重新运行 CheckNoNewAccess 检查直到它返回`PASS`。