

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

# 使用最低权限策略管理加密 Amazon SQS 队列的访问权限
<a name="sqs-least-privilege-policy"></a>

您可以使用 Amazon SQS 通过与 [AWS Key Management Service (KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) 集成的服务器端加密 (SSE) 在应用程序之间交换敏感数据。通过集成 Amazon SQS 和 AWS KMS，您可以集中管理保护 Amazon SQS 的密钥以及保护您的其他资源的密钥。 AWS 

多个 AWS 服务可以充当向 Amazon SQS 发送事件的事件源。要使事件源能够访问加密的 Amazon SQS 队列，您需要使用[客户](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) AWS KMS 管理的密钥配置队列。然后，使用密钥策略允许服务使用所需的 AWS KMS API 方法。该服务还需要对访问进行身份验证的权限才能使队列发送事件。您可以使用 Amazon SQS 策略来实现这一目标，该策略是一种基于资源的策略，可用于控制对 Amazon SQS 队列及其数据的访问。

以下各节提供有关如何通过亚马逊 SQS 策略和 AWS KMS 密钥策略控制对加密的 Amazon SQS 队列的访问权限的信息。本指南中的策略将帮助您实现[最低权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)。

本指南还介绍了基于资源的策略如何使用 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)、[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) 和 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid) 全局 IAM 条件上下文键来解决[混淆代理问题](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)。

**Topics**
+ [

## 概述
](#sqs-least-privilege-overview)
+ [

## 最低权限 Amazon SQS 密钥政策
](#sqs-least-privilege-use-case)
+ [

## 死信队列的 Amazon SQS 策略语句
](#sqs-policy-dlq)
+ [

## 防范跨服务混淆代理问题
](#sqs-confused-deputy-prevention)
+ [

## 使用 IAM Access Analyzer 查看跨账户访问权限
](#sqs-cross-account-findings)

## 概述
<a name="sqs-least-privilege-overview"></a>

在本主题中，我们将为您介绍一个常见使用案例，以说明如何构建密钥政策和 Amazon SQS 队列策略。此使用案例如下图所示。

![\[将 Amazon SNS 消息发布到 Amazon SQS。\]](http://docs.aws.amazon.com/zh_cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-least-privilege.png)


在此示例中，消息创建者是 [Amazon Simple Notification Service (SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) 主题，该主题配置为将消息扇出到您的加密 Amazon SQS 队列。消息使用者是一项计算服务，例如 [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 函数、[Amazon Elastic Compute Cloud（EC2）](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html)实例或 [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) 容器。然后，将您的 Amazon SQS 队列配置为将失败的消息发送到[死信队列 (DLQ)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html)。这对于调试应用程序或消息传递系统非常有用 DLQs ，因为您可以隔离未使用的消息，以确定其处理失败的原因。在本主题中定义的解决方案中，使用 Lambda 函数等计算服务来处理存储在 Amazon SQS 队列中的消息。如果消息使用者位于虚拟私有云（VPC）中，则本指南中包含的 [`DenyReceivingIfNotThroughVPCE`](#sqs-restrict-message-to-endpoint) 策略语句允许您将消息接收限制在该特定 VPC 上。

**注意**  
本指南仅以策略语句的形式包含所需的 IAM 权限。要制定政策，您需要将声明添加到您的 Amazon SQS 政策或 AWS KMS 密钥策略中。本指南不提供有关如何创建 Amazon SQS 队列或密钥的 AWS KMS 说明。有关如何创建这些资源的说明，请参阅[创建 Amazon SQS 队列](creating-sqs-standard-queues.md#step-create-standard-queue)和[创建密钥](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。  
本指南中定义的 Amazon SQS 策略不支持将消息直接重新发送到相同或不同的 Amazon SQS 队列。

## 最低权限 Amazon SQS 密钥政策
<a name="sqs-least-privilege-use-case"></a>

在本节中，我们将介绍 AWS KMS 用于加密 Amazon SQS 队列的客户管理密钥所需的最低权限权限。使用这些权限，您可以将访问权限限制为仅限目标实体，同时实施最低权限。密钥政策必须包含以下策略语句，我们将通过以下资源详细描述这些语句：
+ [向 AWS KMS 密钥授予管理员权限](#sqs-use-case-kms-admin-permissions)
+ [授予对密钥元数据的只读访问权限](#sqs-use-case-read-only-permissions)
+ [授予 Amazon SNS KMS 对 Amazon SNS 向队列发布消息的权限](#sqs-use-case-publish-messages-permissions)
+ [允许使用者解密来自队列的消息](#sqs-use-case-decrypt-messages-permissions)

### 向 AWS KMS 密钥授予管理员权限
<a name="sqs-use-case-kms-admin-permissions"></a>

要创建 AWS KMS 密钥，您需要为用于部署密 AWS KMS 钥的 IAM 角色提供 AWS KMS 管理员权限。这些管理员权限在以下 `AllowKeyAdminPermissions` 策略语句中进行了定义。在 AWS KMS 密钥策略中添加此声明时，请务必使用用于部署密钥、管理密 AWS KMS 钥或两者兼而有之的 IAM 角色的 Amazon 资源名称 (ARN) 替换*<admin-role ARN>*。 AWS KMS 这可以是您部署管道的 IAM 角色，也可以是 [AWS Organizations](https://aws.amazon.com/organizations/) 中[您组织的管理员角色](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_access.html)。

```
{
  "Sid": "AllowKeyAdminPermissions",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "<admin-role ARN>"
    ]
  },
  "Action": [
    "kms:Create*",
    "kms:Describe*",
    "kms:Enable*",
    "kms:List*",
    "kms:Put*",
    "kms:Update*",
    "kms:Revoke*",
    "kms:Disable*",
    "kms:Get*",
    "kms:Delete*",
    "kms:TagResource",
    "kms:UntagResource",
    "kms:ScheduleKeyDeletion",
    "kms:CancelKeyDeletion"
  ],
  "Resource": "*"
}
```

**注意**  
在 AWS KMS 密钥策略中，`Resource`元素的值必须是`*`，这意味着 “这个 AWS KMS 密钥”。星号 (`*`) 标识 AWS KMS 密钥策略所关联的密钥。

### 授予对密钥元数据的只读访问权限
<a name="sqs-use-case-read-only-permissions"></a>

要向其他 IAM 角色授予对您密钥元数据的只读访问权限，请将 `AllowReadAccessToKeyMetaData` 语句添加到您的密钥政策中。例如，以下语句允许您列出账户中的所有 AWS KMS 密钥以供审计。此语句授予 AWS 根用户对密钥元数据的只读访问权限。因此，账户中的任何 IAM 主体只要其基于身份的策略具有以下语句中列出的权限，就可以访问密钥元数据：`kms:Describe*`、`kms:Get*` 和 `kms:List*`。请务必*<account-ID>*用您自己的信息替换。

```
{
  "Sid": "AllowReadAcesssToKeyMetaData",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "arn:aws:iam::<accountID>:root"
    ]
  },
  "Action": [
    "kms:Describe*",
    "kms:Get*",
    "kms:List*"
  ],
  "Resource": "*"
}
```

### 授予 Amazon SNS KMS 对 Amazon SNS 向队列发布消息的权限
<a name="sqs-use-case-publish-messages-permissions"></a>

要允许您的 Amazon SNS 主题向加密的 Amazon SQS 队列发布消息，请将 `AllowSNSToSendToSQS` 策略语句添加到您的密钥政策中。此声明授予亚马逊 SNS 使用该 AWS KMS 密钥发布到您的亚马逊 SQS 队列的权限。请务必*<account-ID>*用您自己的信息替换。

**注意**  
声明`Condition`中的限制只能在同一 AWS 账户中使用 Amazon SNS 服务。

```
{
  "Sid": "AllowSNSToSendToSQS",
  "Effect": "Allow",
  "Principal": {
    "Service": [
      "sns.amazonaws.com"
    ]
  },
  "Action": [
    "kms:Decrypt",
    "kms:GenerateDataKey"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "aws:SourceAccount": "<account-id>"
    }
  }
}
```

### 允许使用者解密来自队列的消息
<a name="sqs-use-case-decrypt-messages-permissions"></a>

以下 `AllowConsumersToReceiveFromTheQueue` 语句向 Amazon SQS 消息使用者授予解密从加密 Amazon SQS 队列收到的消息所需的权限。附加策略声明时，请替换为消息*<consumer's runtime role ARN>*使用者的 IAM 运行时角色 ARN。

```
{
  "Sid": "AllowConsumersToReceiveFromTheQueue",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "<consumer's execution role ARN>"
    ]
  },
  "Action": [
    "kms:Decrypt"
  ],
  "Resource": "*"
}
```

### 最低权限 Amazon SQS 策略
<a name="sqs-use-case-specific-policy"></a>

本节将引导您了解本指南所涵盖的使用案例的最低权限 Amazon SQS 队列策略（例如，从 Amazon SNS 到 Amazon SQS）。定义的策略旨在通过混合使用 `Deny` 和 `Allow` 语句来防止意外访问。`Allow` 语句会向目标实体或实体授予访问权限。`Deny` 语句可防止其他意外实体访问 Amazon SQS 队列，同时将目标实体排除在策略条件之外。

Amazon SQS 策略包括以下语句，我们在下面对其进行了详细描述：
+ [限制 Amazon SQS 管理权限](#sqs-use-case-restrict-permissions)
+ [限制指定组织的 Amazon SQS 队列操作](#sqs-use-case-restrict-permissions-from-org)
+ [向使用者授予 Amazon SQS 权限](#sqs-use-grant-consumer-permissions)
+ [实施传输中加密](#sqs-encryption-in-transit)
+ [将消息传输限制为特定的 Amazon SNS 主题](#sqs-restrict-transmission-to-topic)
+ [（可选）将消息接收限制为特定 VPC 端点](#sqs-restrict-message-to-endpoint)

### 限制 Amazon SQS 管理权限
<a name="sqs-use-case-restrict-permissions"></a>

以下 `RestrictAdminQueueActions` 策略语句将 Amazon SQS 管理权限限制为仅限于您用于部署队列、管理队列或两者兼而有之的 IAM 角色。确保将 *<placeholder values>* 替换为您自己的信息。指定用于部署 Amazon SQS 队列的 IAM 角色的 ARN，以及ARNs 应具有 Amazon SQS 管理权限的任何管理员角色的 ARN。

```
{
  "Sid": "RestrictAdminQueueActions",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": [
    "sqs:AddPermission",
    "sqs:DeleteQueue",
    "sqs:RemovePermission",
    "sqs:SetQueueAttributes"
  ],
  "Resource": "<SQS Queue ARN>",
  "Condition": {
    "StringNotLike": {
      "aws:PrincipalARN": [
        "arn:aws:iam::<account-id>:role/<deployment-role-name>",
        "<admin-role ARN>"
      ]
    }
  }
}
```

### 限制指定组织的 Amazon SQS 队列操作
<a name="sqs-use-case-restrict-permissions-from-org"></a>

要帮助保护您的 Amazon SQS 资源不被外部访问（由 [AWS 组织](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)外部实体访问），请使用以下语句。此语句会限制您在 `Condition` 中指定的组织访问 Amazon SQS 队列。请务必*<SQS queue ARN>*替换为用于部署 Amazon SQS 队列的 IAM 角色的 ARN；并使用您的组织 *<org-id>* ID 替换。

```
{
  "Sid": "DenyQueueActionsOutsideOrg",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": [
    "sqs:AddPermission",
    "sqs:ChangeMessageVisibility",
    "sqs:DeleteQueue",
    "sqs:RemovePermission",
    "sqs:SetQueueAttributes",
    "sqs:ReceiveMessage"
  ],
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "StringNotEquals": {
      "aws:PrincipalOrgID": [
        "<org-id>"
      ]
    }
  }
}
```

### 向使用者授予 Amazon SQS 权限
<a name="sqs-use-grant-consumer-permissions"></a>

要接收来自 Amazon SQS 队列的消息，您需要向消息使用者提供必要的权限。以下策略语句会向您指定的使用者授予使用来自 Amazon SQS 队列的消息所需的权限。将该声明添加到您的 Amazon SQS 策略时，请务必*<consumer's IAM runtime role ARN>*替换为使用者使用的 IAM 运行时角色的 ARN；以及*<SQS queue ARN>*替换为用于部署 Amazon SQS 队列的 IAM 角色的 ARN。

```
{
  "Sid": "AllowConsumersToReceiveFromTheQueue",
  "Effect": "Allow",
  "Principal": {
    "AWS": "<consumer's IAM execution role ARN>"
  },
  "Action": [
    "sqs:ChangeMessageVisibility",
    "sqs:DeleteMessage",
    "sqs:GetQueueAttributes",
    "sqs:ReceiveMessage"
  ],
  "Resource": "<SQS queue ARN>"
}
```

要防止其他实体接收来自 Amazon SQS 队列的消息，请将 `DenyOtherConsumersFromReceiving` 语句添加到 Amazon SQS 队列策略中。此语句会限制消息仅供您指定的使用者使用，不允许其他使用者访问，即使他们的身份权限会授予他们访问权限，也是如此。请务必*<consumer’s runtime role ARN>*用您自己的信息替换*<SQS queue ARN>*和。

```
{
  "Sid": "DenyOtherConsumersFromReceiving",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": [
    "sqs:ChangeMessageVisibility",
    "sqs:DeleteMessage",
    "sqs:ReceiveMessage"
  ],
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "StringNotLike": {
      "aws:PrincipalARN": "<consumer's execution role ARN>"
    }
  }
}
```

### 实施传输中加密
<a name="sqs-encryption-in-transit"></a>

以下 `DenyUnsecureTransport` 策略语句强制使用者和创建者使用安全通道（TLS 连接）发送和接收来自 Amazon SQS 队列的消息。请务必*<SQS queue ARN>*替换为用于部署 Amazon SQS 队列的 IAM 角色的 ARN。

```
{
  "Sid": "DenyUnsecureTransport",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": [
    "sqs:ReceiveMessage",
    "sqs:SendMessage"
  ],
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "Bool": {
      "aws:SecureTransport": "false"
    }
  }
}
```

### 将消息传输限制为特定的 Amazon SNS 主题
<a name="sqs-restrict-transmission-to-topic"></a>

以下 `AllowSNSToSendToTheQueue` 策略语句允许指定的 Amazon SNS 主题向 Amazon SQS 队列发送消息。请务必*<SQS queue ARN>*替换为用于部署亚马逊 SQS 队列的 IAM 角色的 ARN；*<SNS topic ARN>*并替换为亚马逊 SNS 主题 ARN。

```
{
  "Sid": "AllowSNSToSendToTheQueue",
  "Effect": "Allow",
  "Principal": {
    "Service": "sns.amazonaws.com"
  },
  "Action": "sqs:SendMessage",
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "ArnLike": {
      "aws:SourceArn": "<SNS topic ARN>"
    }
  }
}
```

以下 `DenyAllProducersExceptSNSFromSending` 策略语句禁止其他创建者向队列发送消息。将 *<SQS queue ARN>* 和 *<SNS topic ARN>* 替换为您自己的信息。

```
{
  "Sid": "DenyAllProducersExceptSNSFromSending",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": "sqs:SendMessage",
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "ArnNotLike": {
      "aws:SourceArn": "<SNS topic ARN>"
    }
  }
}
```

### （可选）将消息接收限制为特定 VPC 端点
<a name="sqs-restrict-message-to-endpoint"></a>

要限制仅向特定的 [VPC 端点](https://aws.amazon.com/about-aws/whats-new/2018/12/amazon-sqs-vpc-endpoints-aws-privatelink/)发送消息，请在您的 Amazon SQS 队列策略中添加以下策略语句。除非消息来自所需的 VPC 端点，否则此语句可防止消息使用者接收来自队列的消息。*<SQS queue ARN>*替换为用于部署 Amazon SQS 队列的 IAM 角色的 ARN *<vpce\$1id>* 和 VPC 终端节点的 ID。

```
{
  "Sid": "DenyReceivingIfNotThroughVPCE",
  "Effect": "Deny",
  "Principal": "*",
  "Action": [
    "sqs:ReceiveMessage"
  ],
  "Resource": "<SQS queue ARN>",
  "Condition": {
    "StringNotEquals": {
      "aws:sourceVpce": "<vpce id>"
    }
  }
}
```

## 死信队列的 Amazon SQS 策略语句
<a name="sqs-policy-dlq"></a>

将以下策略语句（由其语句 ID 标识）添加到您的 DLQ 访问策略中：
+ `RestrictAdminQueueActions`
+ `DenyQueueActionsOutsideOrg`
+ `AllowConsumersToReceiveFromTheQueue`
+ `DenyOtherConsumersFromReceiving`
+ `DenyUnsecureTransport`

除了将上述策略语句添加到 DLQ 访问策略外，您还应添加一条语句，以限制向 Amazon SQS 队列传输消息，如下一节所述。

### 限制向 Amazon SQS 队列传输消息
<a name="sqs-dlq-restrict-permissions"></a>

要限制同一账户只能访问 Amazon SQS 队列，请在 DLQ 队列策略中添加以下 `DenyAnyProducersExceptSQS` 策略语句。此语句不会将消息传输限制到特定队列，因为您需要在创建主队列之前部署 DLQ，因此在创建 DLQ 时不会知道 Amazon SQS ARN。如果您需要将访问权限限制为仅一个 Amazon SQS 队列，请在知道时使用您的 Amazon SQS 源队列的 ARN 修改 `Condition` 中的 `aws:SourceArn`。

```
{
  "Sid": "DenyAnyProducersExceptSQS",
  "Effect": "Deny",
  "Principal": {
    "AWS": "*"
  },
  "Action": "sqs:SendMessage",
  "Resource": "<SQS DLQ ARN>",
  "Condition": {
    "ArnNotLike": {
      "aws:SourceArn": "arn:aws:sqs:<region>:<account-id>:*"
    }
  }
}
```

**重要**  
本指南中定义的 Amazon SQS 队列策略不会将 `sqs:PurgeQueue` 操作限制在某个 IAM 角色或多个角色。`sqs:PurgeQueue` 操作允许您删除 Amazon SQS 队列中的所有消息。您也可以使用此操作更改消息格式，而无需替换 Amazon SQS 队列。调试应用程序时，您可以清除 Amazon SQS 队列以删除可能错误的消息。测试应用程序时，您可以通过 Amazon SQS 队列发送大量消息，然后在进入生产环境之前清除队列以重新开始。之所以不将此操作限制为某个角色，是因为在部署 Amazon SQS 队列时可能不知道此角色。您需要将此权限添加到角色基于身份的策略中，才能清除队列。

## 防范跨服务混淆代理问题
<a name="sqs-confused-deputy-prevention"></a>

[混淆代理问题](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)是一个安全问题，即没有执行操作权限的实体可能会迫使更具权限的实体执行该操作。为了防止这种情况， AWS 如果您向第三方（称为跨账户）或其他 AWS 服务（称为跨服务）提供对您账户中资源的访问权限，则提供可帮助您保护账户的工具。本节中的策略语句可以帮助您防范跨服务混淆代理问题。

一个服务（呼叫服务）调用另一项服务（所谓的服务)时，可能会发生跨服务模拟。可以操纵调用服务以使用其权限对另一个客户的资源进行操作，否则该服务不应有访问权限。为了帮助防范此问题，本文中定义的基于资源的策略使用 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)、[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) 和 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid) 全局 IAM 条件上下文键。这限制了服务对Organizations中特定资源、特定账户或特定 AWS 组织的权限。

## 使用 IAM Access Analyzer 查看跨账户访问权限
<a name="sqs-cross-account-findings"></a>

您可以使用 [AWS IAM Access Analy](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) zer 查看您的 Amazon SQS 队列策略和 AWS KMS 密钥策略，并在亚马逊 SQS 队列或密钥授予外部 AWS KMS 实体访问权限时提醒您。IAM Access Analyzer 帮助标识您组织中的[资源](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-resources.html)和与信任区域之外的实体共享的账户。此信任区域可以是您在启用 IAM Access Analyzer 时指定的 AWS 账户或组织。 AWS 

IAM Access Analyzer 使用基于逻辑的推理来分析环境中基于资源的策略，从而识别与外部委托人共享的资源。 AWS 对于在您的信任区域外共享的资源的每个实例，Access Analyzer 都会生成一个调查结果。[调查结果](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-findings.html)包括有关访问权限以及该访问权限授予到的外部主体的信息。您可以查看调查结果，以确定该访问权限是按计划授予且安全，还是计划外的访问权限并存在安全风险。对于任何意外访问，请查看受影响的策略并进行修复。有关 AWS IAM Access Analyzer 如何识别对您的 AWS 资源的意外访问的更多信息，请参阅此[博客文章](https://aws.amazon.com/blogs/aws/identify-unintended-resource-access-with-aws-identity-and-access-management-iam-access-analyzer/)。

有关 AWS IAM 访问分析器的更多信息，请参阅 [AWS IAM 访问分析器文档](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html)。