

# 使用 IAM Access Analyzer API 预览访问
<a name="access-analyzer-preview-access-apis"></a>

您可以使用 [IAM Access Analyzer API](https://docs.aws.amazon.com/access-analyzer/latest/APIReference/Welcome.html) 预览 Amazon S3 存储桶的公共和跨账户访问、AWS KMS 密钥、IAM 角色、Amazon SQS 队列和 Secrets Manager 密钥。您可以通过为您拥有的现有资源或您想要部署的新资源提供建议的权限来预览访问。

要预览对资源的外部访问，您必须具有适用于资源账户和区域的活动账户分析器。您还必须具有使用 IAM Access Analyzer 和预览访问所需的权限。有关启用 IAM Access Analyzer 以及所需权限的更多信息，请参阅 [AWS Identity and Access Management Access Analyzer 入门](access-analyzer-getting-started.md)。

要预览资源的访问，可以使用 `CreateAccessPreview` 操作，并提供分析器 ARN 和资源的访问控制配置。该服务返回访问预览的唯一 ID，您可以使用该 ID 通过 `GetAccessPreview` 操作查看访问预览的状态。当状态为 `Completed`，则可以使用 `ListAccessPreviewFindings` 操作来检索为访问预览生成的结果。`GetAccessPreview` 和 `ListAccessPreviewFindings` 操作将检索大约 24 小时内创建的访问预览和结果。

检索的每个结果都包含描述访问的[结果详细信息](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-findings-view.html)。结果的预览状态，描述权限部署之后结果是否为 `Active`、`Archived` 或者 `Resolved`，以及 `changeType`。`changeType` 提供了有关访问预览结果如何与 IAM Access Analyzer 中标识的现有访问进行比较的上下文：
+ **新结果** ― 结果适用于新引入的访问。
+ **不变** ― 预览结果是将保持不变的现有结果。
+ **已更改** ― 预览结果是状态发生变化的现有查找结果。

`status` 和 `changeType` 帮助您了解资源配置将如何更改现有资源访问。如果 `changeType` 为 `Unchanged` 或“已更改”，则结果还将包含 IAM Access Analyzer 中结果的现有 ID 和状态。例如，`Changed` 结果具有预览状态 `Resolved` 和现有状态 `Active`，指示资源的现有 `Active` 结果将由于建议权限更改而成为 `Resolved`。

您可以使用 `ListAccessPreviews` 操作来检索指定分析器的访问预览列表。此操作将检索约一小时内创建的访问预览信息。

通常，如果访问预览适用于现有资源，并且未指定配置选项，则预设情况下，访问预览将使用现有资源配置。如果访问预览适用于新资源，并且未指定配置选项，则访问预览将使用默认值，具体取决于资源类型。有关每个资源类型的配置案例，请参阅下文。

## 预览对 Amazon S3 存储桶的访问
<a name="access-analyzer-preview-access-s3-bucket"></a>

要为新 Amazon S3 存储桶或您拥有的现有 Amazon S3 存储桶创建访问预览，您可以通过指定附加到存储桶的 Amazon S3 存储桶策略、存储桶 ACL、存储桶 BPA 设置和 Amazon S3 访问点（包括多区域访问点）来建议存储桶配置。

**注意**  
在尝试为新存储桶创建访问预览之前，我们建议您调用 Amazon S3 [HeadBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html) 操作来检查指定的存储桶是否已经存在。此操作可用于确定存储桶是否存在以及您是否有权访问该存储桶。

**存储桶策略** — 如果配置适用于现有 Amazon S3 存储桶，并且您未指定 Amazon S3 存储桶策略，则访问预览将使用附加到存储桶的现有策略。如果访问预览适用于新资源，并且您没有指定 Amazon S3 存储桶策略，则访问预览会假定存储桶没有策略。要建议删除现有存储桶策略，您可以指定一个空字符串。有关支持的存储桶策略限制的更多信息，请参阅[存储桶策略示例](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html)。

**存储桶 ACL 授权** — 每个存储桶最多可提议 100 个 ACL 授权。如果建议的授权配置适用于现有存储桶，则访问预览会使用建议的授权配置列表来代替现有授权。否则，访问预览将使用存储桶的现有授权。

**存储桶访问点** — 分析支持每个存储桶多达 100 个访问点，包括多区域访问点，包括每个存储桶最多可建议的 10 个新访问点。如果建议的 Amazon S3 访问点配置适用于现有存储桶，则访问预览会使用建议的访问点配置代替现有访问点。要建议没有策略的访问点，可以提供空字符串作为访问点策略。有关访问点策略限制的更多信息，请参阅[访问点限制和局限性](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points-restrictions-limitations.html)。

**阻止公有访问配置** — 如果建议的配置适用于现有 Amazon S3 存储桶，并且您未指定配置，则访问预览将使用现有设置。如果建议的配置适用于新存储桶，并且您未指定存储桶 BPA 配置，则访问预览会使用 `false`。如果建议的配置适用于新的访问点或多区域访问点，并且您未指定访问点 BPA 配置，则访问预览会使用 `true`。

## 预览对您的 AWS KMS 密钥的访问
<a name="access-analyzer-preview-access-kms-key"></a>

要为新的 AWS KMS 密钥或您所拥有的现有 AWS KMS 密钥创建访问预览，可以通过指定免邮策略和 AWS KMS 授权配置来建议 AWS KMS 密钥。

**AWS KMS 密钥策略** — 如果配置适用于现有密钥，并且您未指定密钥策略，则访问预览将使用该密钥的现有策略。如果访问预览适用于新资源，并且您未指定密钥策略，则访问预览将使用默认密钥策略。建议的密密钥策略不能是空字符串。

**AWS KMS 授权** — 分析最多支持每个配置 100 个 KMS 授权 \*。\* 如果建议的授权配置适用于现有密钥，则访问预览会在现有授权中使用建议的授权配置列表。否则，访问预览将使用该密钥的现有授权。

## 预览对 IAM 角色的访问
<a name="access-analyzer-preview-iam-role"></a>

要为新 IAM 角色或您拥有的现有 IAM 角色创建访问预览，您可以通过指定信任策略来建议 IAM 角色配置。

**角色信任策略** — 如果配置适用于新 IAM 角色，则必须指定信任策略。如果配置适用于您拥有的现有 IAM 角色，并且您没有建议信任策略，则访问预览将使用角色的现有信任策略。建议的信任策略不能是空字符串。

## 预览对您的 Amazon SQS 队列的访问
<a name="access-analyzer-preview-sqs-queue"></a>

要为新 Amazon SQS 队列或您拥有的现有 Amazon SQS 队列创建访问预览，您可以通过为队列指定 Amazon SQS 策略来建议 Amazon SQS 队列配置。

**Amazon SQS 队列策略** — 如果配置适用于现有 Amazon SQS 队列，并且您未指定 Amazon SQS 策略，则访问预览将为队列使用现有的 Amazon SQS 策略。如果访问预览适用于新资源，并且您没有指定策略，则访问预览会假定 Amazon SQS 队列没有策略。要建议删除现有 Amazon SQS 队列策略，您可以为 Amazon SQS 策略指定一个空字符串。

## 预览对您的 Secrets Manager 密钥的访问
<a name="access-analyzer-preview-secrets-manager-secret"></a>

要为新的 Secrets Manager 密钥或您拥有的现有 Secrets Manager 密钥创建访问预览，您可以通过指定密钥策略和可选的 AWS KMS 加密密钥。

**密钥策略** — 如果配置适用于现有密钥，并且您未指定密钥策略，则访问预览将使用现有的密钥策略。如果访问预览适用于新资源，并且您未指定策略，则访问预览会假定密钥没有策略。要建议删除现有策略，可以指定一个空字符串。

**AWS KMS 加密密钥** — 如果建议的配置适用于新密钥，并且您没有指定 AWS KMS 密钥 ID，则访问预览将使用 AWS 账户的默认 KMS 密钥。如果您为 AWS KMS 密钥 ID 指定空字符串，则访问预览将使用 AWS 账户的默认 KMS 密钥。