

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

# AWS IAM 访问分析器
<a name="iam-access-analyzer"></a>

您可以使用[中的 IAM 访问分析器对 CloudFormation 在模板、Terraform 计划和 JSON 策略文档中编写的 IAM 策略进行AWS 身份与访问管理 (IAM)](https://aws.amazon.com/iam/access-analyzer/) Access Analyzer 策略检查。 AWS Toolkit for Visual Studio Code

IAM 访问权限分析器策略检查包括策略验证和自定义策略检查。策略验证有助于根据*AWS Identity and Access Management*用户指南中的 IAM [JSON 策略语言语法和 IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) 主题中的 AWS [安全最佳实践中详述的标准验证您的 IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) 策略。策略验证检查结果包括安全警告、错误、常规警告和策略建议。

您还可以使用自定义策略检查，根据安全标准检查新的访问。每次针对新访问的自定义策略检查都会产生费用。有关定价的详细信息，请参阅 [AWS IAM 访问权限分析器定价](https://aws.amazon.com/iam/access-analyzer/pricing/)网站。有关 IAM 访问权限分析器策略检查的详细信息，请参阅**《AWS Identity and Access Management用户指南》中的[检查验证策略](https://docs.aws.amazon.com//IAM/latest/UserGuide/access-analyzer-checks-validating-policies.html)主题。

以下主题介绍了如何在 AWS Toolkit for Visual Studio Code中使用 IAM 访问权限分析器策略检查。

**Topics**
+ [使用 AWS IAM 访问分析器](iam-access-analyzer-overview.md)

# 使用 AWS IAM 访问分析器
<a name="iam-access-analyzer-overview"></a>

以下各部分介绍了如何在 AWS Toolkit for Visual Studio Code中执行 IAM 策略验证和自定义策略检查。有关更多详细信息，请参阅 AWS Identity and Access Management 用户指南中的以下主题：[IAM Access Analyzer 策略验证](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)和 I [AM Access Analyzer 自定义策略检查](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 Problems Panel displaying security warnings and version recommendations.\]](http://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\$1Shift\$1P** 打开 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\$1Shift\$1P** 打开 VS Code 命令面板，搜索 **IAM Policy Checks** 并进行单击以打开 **IAM 策略检查**窗格。

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

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

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

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\$1Shift\$1P** 打开 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 是一项自定义策略检查，用于验证您的策略是否授予对模板中支持的资源类型的公共访问权限。

有关支持的资源类型的具体信息，请参阅[cloudformation-iam-policy-validator](https://github.com/awslabs/aws-cloudformation-iam-policy-validator?tab=readme-ov-file#supported-resource-based-policies)和[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\$1Shift\$1P** 打开 VS Code 命令面板，搜索 **IAM Policy Checks** 并进行单击以打开 **IAM 策略检查**窗格。

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

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

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

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

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