

# 适用于 AWS 资源的 Access Management
<a name="access"></a>

AWS Identity and Access Management (IAM) 是一种 Web 服务，可以帮助您安全地控制对 AWS 资源的访问。当[主体](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?icmpid=docs_homepage_addtlrcs#principal)在 AWS 中发出请求时，AWS 执行代码会检查是否对主体进行身份验证（登录）和授权（具有权限）。您将创建策略并将其附加到 IAM 身份或 AWS 资源，以便管理 AWS 中的访问。策略是 AWS 中的 JSON 文档，在附加到身份或资源时，策略定义它们的权限。有关策略类型和用法的更多信息，请参阅[AWS Identity and Access Management 中的策略和权限](access_policies.md)。

有关身份验证和授权过程的其余部分的详细信息，请参阅[IAM 的工作原理](intro-structure.md)。

![\[AccessManagement_Diagram\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/access-diagram_800.png)


在授权期间，AWS 执行代码使用[请求上下文](intro-structure.md#intro-structure-request)中的值检查匹配的策略并确定是允许还是拒绝请求。

AWS 检查应用于请求上下文的每个策略。如果一个策略拒绝请求，AWS 将拒绝整个请求并停止评估策略。这称为*显式拒绝*。由于请求是*默认拒绝的*，因此，只有在适用的策略允许请求的每个部分时，IAM 才会授权请求。单个账户中对于请求的[评估逻辑](reference_policies_evaluation-logic.md)遵循以下规则：
+ 默认情况下，所有请求都被隐式拒绝。（或者，默认情况下，AWS 账户根用户 拥有完全访问权限。） 
+ 基于身份或基于资源的策略中的显式允许将覆盖此默认值。
+ 如果存在权限边界、AWS Organizations SCP 或会话策略，它可能会使用隐式拒绝覆盖允许。
+ 任何策略中的显式拒绝将覆盖任何允许。

在对您的请求进行身份验证和授权后，AWS 将批准该请求。如果您需要在另一个账户中发出请求，其他账户中的策略必须允许访问资源。此外，您用于发出请求的 IAM 实体必须具有基于身份的策略，该策略允许该请求。

## 访问管理资源
<a name="access_resources"></a>

有关权限和创建策略的更多信息，请参阅以下资源：

AWS 安全博客中的以下文章介绍 Amazon S3 存储桶和对象访问策略的常用编写方法。
+ [编写 IAM policy：如何授予对 Amazon S3 存储桶的访问权限](https://aws.amazon.com/blogs/security/writing-iam-policies-how-to-grant-access-to-an-amazon-s3-bucket/)
+ [编写 IAM policy：授予对 Amazon S3 存储桶中用户特定文件夹的访问权限](https://aws.amazon.com/blogs/security/writing-iam-policies-grant-access-to-user-specific-folders-in-an-amazon-s3-bucket/)
+ [IAM policy、存储桶策略和 ACL！天哪！(Controlling Access to S3 Resources)](https://aws.amazon.com/blogs/security/iam-policies-and-bucket-policies-and-acls-oh-my-controlling-access-to-s3-resources/)（控制对 S3 资源的访问）。
+ [RDS 资源级别权限读本](https://aws.amazon.com/blogs/security/a-primer-on-rds-resource-level-permissions)
+ [阐明 EC2 资源级权限](https://aws.amazon.com/blogs/security/demystifying-ec2-resource-level-permissions/)

# AWS Identity and Access Management 中的策略和权限
<a name="access_policies"></a>

在 AWS 中通过创建策略并将其附加到 IAM 身份（用户、用户组或角色）或 AWS 资源来管理访问权限。策略是 AWS 中的对象；在与身份或资源相关联时，策略定义它们的权限。在某个 IAM 主体（用户或角色）发出请求时，AWS 将评估这些策略。策略中的权限确定是允许还是拒绝请求。大多数策略作为 JSON 文档存储在 AWS 中。AWS 支持七种类型的策略：基于身份的策略、基于资源的策略、权限边界、AWS Organizations 服务控制策略（SCP）、AWS Organizations 资源控制策略（RCP）、访问控制列表（ACL）和会话策略。

IAM 策略定义操作的权限，无关乎您使用哪种方法执行操作。例如，如果一个策略允许 [GetUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html) 操作，则具有该策略的用户可以从 AWS 管理控制台、AWS CLI 或 AWS API 获取用户信息。在创建 IAM 用户时，您可以选择允许控制台或编程访问。如果允许控制台访问，则 IAM 用户可以使用其登录凭证登录到控制台。如果允许编程访问，则用户可以通过访问密钥来使用 CLI 或 API。

## 策略类型
<a name="access_policy-types"></a>

以下策略类型按从最常用到不常用的顺序列出，可在 AWS 中使用。有关更多详细信息，请参阅下面有关各种策略类型的各部分。
+ **[基于身份的策略](#policies_id-based)** – 将[托管](#managedpolicy)策略和[内联](#inline)策略附加到 IAM 身份（用户、用户所属组或角色）。基于身份的策略向身份授予权限。
+ **[基于资源的策略](#policies_resource-based)** - 将内联策略附加到资源。基于资源的策略的最常见示例是 Amazon S3 存储桶策略和 IAM 角色信任策略。基于资源的策略向在策略中指定的主体授予权限。主体可以与资源位于同一个账户中，也可以位于其他账户中。
+ **[权限边界](#policies_bound)** - 使用托管策略作为 IAM 实体（用户或角色）的权限边界。该策略定义基于身份的策略可以授予实体的最大权限，但不授予权限。权限边界不定义基于资源的策略可以授予实体的最大权限。
+ **[AWS Organizations SCP](#policies_scp)**：使用 AWS Organizations 服务控制策略（SCP）为组织或组织单位（OU）的账户的 IAM 用户和 IAM 角色定义最大权限。SCP 限制基于身份的策略或基于资源的策略授予账户中的 IAM 用户或 IAM 角色的权限。SCP 不授予权限。
+ **[AWS Organizations RCP](#policies_rcp)**：使用 AWS Organizations 资源控制策略（RCP）为组织或组织单位（OU）中账户内的资源定义最大权限。RCP 限制了基于身份和基于资源的策略可以向组织内账户中的资源授予的权限。RCP 不授予权限。
+ **[访问控制列表 (ACL)](#policies_acl)** - 使用 ACL 来控制其他账户中的哪些主体可以访问 ACL 附加到的资源。ACL 类似于基于资源的策略，但它们是唯一不使用 JSON 策略文档结构的策略类型。ACL 是跨账户的权限策略，向指定的主体授予权限。ACL 不能向同一账户内的实体授予权限。
+ **[会话策略](#policies_session)** - 在您使用 AWS CLI 或 AWS API 担任某个角色或联合身份用户时，传递高级会话策略。会话策略限制角色或用户的基于身份的策略授予会话的权限。会话策略限制所创建会话的权限，但不授予权限。有关更多信息，请参阅[会话策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)。

### 基于身份的策略
<a name="policies_id-based"></a>

基于身份的策略是 JSON 权限的策略文档，用于控制身份（用户、用户组和角色）可在什么样的条件下对哪些资源执行哪些操作。基于身份的策略可以进一步分类：
+ **托管策略** – 基于身份的独立策略，可附加到您的 AWS 账户 中的多个用户、组和角色。有两种托管策略：
  + **AWS 托管策略** - 由 AWS 创建和管理的托管策略。
  + **客户管理型策略** – 您在 AWS 账户 中创建和管理的管理型策略。与 AWS 托管策略相比，客户托管策略可以更精确地控制策略。
+ **内联策略** — 直接添加到单个用户、组或角色的策略。内联策略维持策略与身份之间严格的一对一关系。当您删除身份时，它们将会被删除。

要了解如何在托管策略或内联策略之间选择，请参阅 [在托管策略与内联策略之间进行选择](access_policies-choosing-managed-or-inline.md)。

### 基于资源的策略
<a name="policies_resource-based"></a>

基于资源的策略是附加到资源（如 Amazon S3 存储桶）的 JSON 策略文档。这些策略授予指定的主体对该资源执行特定操作的权限，并定义这在哪些条件下适用。基于资源的策略是内联策略。没有基于托管资源的策略。

要启用跨账户存取，您可以将整个账户或其它账户中的 IAM 实体指定为基于资源的策略中的主体。将跨账户主体添加到基于资源的策略只是建立信任关系工作的一半而已。当主体和资源位于单独的 AWS 账户 中时，还必须使用基于身份的策略来授予对资源的主体访问权限。但是，如果基于资源的策略向同一个账户中的主体授予访问权限，则不需要额外的基于身份的策略。有关授予跨服务访问权限的分步说明，请参阅 [IAM 教程：使用 IAM 角色委托跨 AWS 账户的访问权限](tutorial_cross-account-with-roles.md)。

IAM 服务仅支持一种类型的基于资源的策略（称为角色*信任策略*），这种策略附加到 IAM 角色。IAM 角色既是身份，又是支持基于资源的策略的资源。因此，您必须将信任策略和基于身份的策略同时附加到 IAM 角色。信任策略定义哪些主体实体（账户、用户、角色和联合身份用户）可以代入该角色。要了解 IAM 角色如何与其他基于资源的策略不同，请参阅 [IAM 中的跨账户资源访问](access_policies-cross-account-resource-access.md)。

要了解哪些其他服务支持基于资源的策略，请参阅[使用 IAM 的 AWS 服务](reference_aws-services-that-work-with-iam.md)。要了解基于资源的策略的更多信息，请参阅 [基于身份的策略和基于资源的策略](access_policies_identity-vs-resource.md)。要了解您信任区域之外的账户（受信任的企业或账户）中的主体是否有权承担您的角色，请参阅[什么是 IAM Access Analyzer？](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html)。

### IAM 权限边界
<a name="policies_bound"></a>

权限边界是一项高级功能，借助该功能，您可以设置基于身份的策略可以授予 IAM 实体的最大权限。当您设置实体的权限边界时，该实体只能执行其基于身份的策略和其权限边界同时允许的操作。如果您在基于资源的策略的主体元素中指定角色会话或用户，则无需在权限边界内显式允许。但是，如果您在基于资源的策略的主体元素中指定角色 ARN，则需要在权限边界内显式允许。在这两种情况下，在权限边界内显式拒绝都是有效的。任一项策略中的显式拒绝将覆盖允许。有关权限边界的更多信息，请参阅[IAM 实体的权限边界](access_policies_boundaries.md)。

### AWS Organizations 服务控制策略（SCP）
<a name="policies_scp"></a>

如果在组织内启用了所有特征，则可对任意或全部账户应用服务控制策略（SCP）。SCP 是为组织或组织单位（OU）的账户内的 IAM 用户和 IAM 角色指定最大权限的 JSON 策略。SCP 限制成员账户中主体（包括每个 AWS 账户根用户）的权限。任一项策略中的显式拒绝将覆盖其他策略中的允许。

有关 AWS Organizations 和 SCP 的更多信息，请参阅*《AWS Organizations 用户指南》*中的[服务控制策略 (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)。

### AWS Organizations 资源控制策略（RCP）
<a name="policies_rcp"></a>

如果在组织内启用了所有功能，则可使用资源控制策略（RCP）在多个 AWS 账户内对资源集中应用访问控制。RCP 是 JSON 策略，您可以使用它们设置账户中资源的最大可用权限，而无需更新附加到您拥有的每个资源的 IAM 策略。RCP 限制了成员账户中资源的权限，并可能影响身份（包括 AWS 账户根用户）的有效权限，无论这些身份是否属于您的组织。任何适用的 RCP 中的显式拒绝将覆盖可能附加到个人身份或资源的其他策略中的允许。

有关 AWS Organizations 和 RCP（包括支持 RCP 的 AWS 服务 列表）的更多信息，请参阅*《AWS Organizations 用户指南》*中的[资源控制策略 (RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)。

### 访问控制列表（ACL）
<a name="policies_acl"></a>

访问控制列表 (ACL) 是一种服务策略，允许您控制另一个账户中的哪些主体可以访问资源。不能使用 ACL 控制同一账户中的主体的访问权限。ACL 类似于基于资源的策略，但它们是唯一不使用 JSON 策略文档格式的策略类型。Amazon S3、AWS WAF 和 Amazon VPC 是支持 ACL 的服务示例。要了解有关 ACL 的更多信息，请参阅《Amazon Simple Storage Service 开发人员指南》**中的[访问控制列表（ACL）概述](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html)。

### 会话策略
<a name="policies_session"></a>

会话策略是当您以编程方式为角色或 AWS STS 联合用户主体创建临时会话时作为参数传递的高级策略。会话的权限是用于创建会话的 IAM 实体（用户或角色）的基于身份的策略与会话策略的交集。权限也可以来自基于资源的策略。任一项策略中的显式拒绝将覆盖允许。

您可以使用 `AssumeRole`、`AssumeRoleWithSAML` 或 `AssumeRoleWithWebIdentity` API 操作以编程方式创建角色会话和传递会话策略。您可以使用 `Policy` 参数传递单个 JSON 内联会话策略文档。您可以使用 `PolicyArns` 参数指定最多 10 个托管会话策略。有关创建角色会话的更多信息，请参阅 [临时安全凭证的权限](id_credentials_temp_control-access.md)。

当您创建 AWS STS 联合用户主体会话时，您使用 IAM 用户的访问密钥以编程方式调用 `GetFederationToken` API 操作。您还必须传递会话策略。生成的会话的权限是基于身份的策略与会话策略的交集。有关创建联合身份用户的更多信息，请参阅 [通过自定义身份凭证代理程序请求凭证](id_credentials_temp_request.md#api_getfederationtoken)。

基于资源的策略可以将用户或角色的 ARN 指定为主体。在这种情况下，在创建会话之前，将在角色或用户的基于身份的策略中添加基于资源的策略中的权限。会话策略限制由基于资源的策略和基于身份的策略授予的总权限。生成的会话权限是会话策略与基于资源的策略的交集以及会话策略与基于身份的策略的交集。

![\[评估会话策略以及指定实体 ARN 的基于资源的策略\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/EffectivePermissions-session-rbp-id.png)


基于资源的策略可以将会话的 ARN 指定为主体。在这种情况下，在创建会话后，将添加基于资源的策略中的权限。基于资源的策略权限不受会话策略限制。生成的会话具有基于资源的策略中的所有权限*以及* 基于身份的策略与会话策略的交集。

![\[评估会话策略以及指定会话 ARN 的基于资源的策略\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/EffectivePermissions-session-rbpsession-id.png)


权限边界可以设置用于创建会话的用户或角色的最大权限。在这种情况下，生成的会话的权限是会话策略、权限边界和基于身份的策略的交集。不过，权限边界不会限制指定生成的会话 ARN 基于资源的策略授予权限。

![\[评估会话策略以及权限边界\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/EffectivePermissions-session-boundary-id.png)


## 策略和根用户
<a name="access_policies-root"></a>

AWS 账户根用户 会受到一些策略类型的影响，但不会受其他策略类型的影响。您不能将基于身份的策略附加到根用户，也不能为根用户设置权限边界。不过，您可以在基于资源的策略或 ACL 中将根用户指定为主体。根用户仍然是账户的成员。如果该账户是 AWS Organizations 中的组成成员，则根用户受账户的 SCP 和 RCP 影响。

## JSON 策略概述
<a name="access_policies-json"></a>

大多数策略在 AWS 中存储为 JSON 文档。基于身份的策略和用于设置权限边界的策略是您附加到用户或角色的 JSON 策略文档。基于资源的策略是附加到资源的 JSON 策略文档。SCP 和 RCP 是附加到 AWS Organizations 的组织根、组织单位（OU）或账户的使用限制语法的 JSON 策略文档。ACL 也可附加到资源，但必须使用不同的语法。会话策略是您在创建角色或联合身份用户会话时提供的 JSON 策略。

您无需了解 JSON 语法。您可以使用 AWS 管理控制台中的可视化编辑器创建和编辑客户托管策略，而无需使用 JSON。不过，如果在组中使用内联策略或复杂的策略，您还必须使用控制台在 JSON 编辑器中创建和编辑这些策略。有关使用可视化编辑器的更多信息，请参阅[使用客户管理型策略定义自定义 IAM 权限](access_policies_create.md)和[编辑 IAM 策略](access_policies_manage-edit.md)。

 当您创建或编辑 JSON 策略时，IAM 可以执行策略验证以帮助您创建有效的策略。IAM 可识别 JSON 语法错误，而 IAM Access Analyzer 将提供额外的策略检查和建议，以帮助您进一步优化策略。要了解策略验证的更多信息，请参阅 [IAM 策略验证](access_policies_policy-validator.md)。要了解有关 IAM Access Analyzer 策略检查和可执行建议的更多信息，请参阅 [IAM Access Analyzer 策略验证](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。

### JSON 策略文档结构
<a name="policies-introduction"></a>

如下图所示，JSON 策略文档包含以下元素：
+ 文档顶部的可选策略范围信息
+ 一个或多个单独语句**

每个语句都包含有关单个权限的信息。如果一个策略包含多个语句，则 AWS 会在评估它们时跨这些语句应用逻辑 `OR`。如果有多个策略应用于请求，则 AWS 会在评估它们时跨所有这些策略应用逻辑 `OR`。

![\[JSON 策略文档结构\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/AccessPolicyLanguage_General_Policy_Structure.diagram.png)


语句中的信息均含在一系列的元素内。
+ **Version** - 指定要使用的策略语言版本。建议您使用最新的 `2012-10-17 ` 版本。有关更多信息，请参阅 [IAM JSON 策略元素：Version](reference_policies_elements_version.md)。
+ **Statement** - 将该主要策略元素作为以下元素的容器。可以在一个策略中包含多个语句。
+ **Sid**（可选） - 包括可选的语句 ID 以区分不同的语句。
+ **Effect** - 使用 `Allow` 或 `Deny` 指示策略是允许还是拒绝访问。
+ **Principal**（在某些情况下需要）- 如果创建基于资源的策略，则必须指示要允许或拒绝访问的账户、用户、角色或 AWS STS 联合用户主体。如果要创建 IAM 权限策略以附加到用户或角色，则不能包含该元素。主体暗示为该用户或角色。
+ **Action** - 包括策略允许或拒绝的操作列表。
+ **Resource**（在某些情况下需要）- 如果创建 IAM 权限策略，则必须指定操作适用的资源列表。如果创建基于资源的策略，则是否需要此元素取决于您使用的资源。
+ **Condition**（可选） - 指定策略在哪些情况下授予权限。

要了解上述及其他更高级的策略元素，请参阅[IAM JSON 策略元素参考](reference_policies_elements.md)。

### 多个声明和多个策略
<a name="policies-syntax-multiples"></a>

如果要为实体（用户或角色）定义多个权限，您可以在单个策略中使用多个语句。您也可以附加多个策略。如果您尝试在单个语句中定义多个权限，则策略可能没有授予预期访问权限。建议您按资源类型分解策略。

由于[策略的大小有限](reference_iam-quotas.md)，可能需要对更复杂的权限使用多个策略。在单独的客户托管策略中创建权限的功能分组也是个好主意。例如，为 IAM 用户管理创建一个策略，为自我管理创建一个策略，并为 S3 存储桶管理创建另一个策略。无论多个语句和多个策略如何组合，AWS 都会以相同方式[评估](reference_policies_evaluation-logic.md)您的策略。

例如，以下策略具有三个语句，其中每个语句在单个账户中定义一组单独的权限。这些语句定义以下权限：
+ `Sid`（语句 ID）为 `FirstStatement` 的第一个语句让具有附加策略的用户更改自己的密码。该语句中的 `Resource` 元素是“`*`”（这表示“所有资源”）。但实际上，`ChangePassword` API 操作（或等效的 `change-password` CLI 命令）仅影响发出请求的用户的密码。
+ 第二个语句使用户可以列出其 AWS 账户 中的所有 Amazon S3 存储桶。该语句中的 `Resource` 元素是 `"*"`（这表示“所有资源”）。但由于策略没有为其他账户中的资源授予访问权限，因此，用户只能列出自己的 AWS 账户 中的存储桶。
+ 第三个语句允许用户列出和检索名为 `amzn-s3-demo-bucket-confidential-data` 的存储桶中的任何对象，但是仅当使用 Multi-Factor Authentication (MFA) 对用户进行了身份验证时才能如此。策略中的 `Condition` 元素将强制实施 MFA 身份验证。

  如果策略语句包含 `Condition` 元素，则仅当 `Condition` 元素计算为 true 时，语句才有效。在此示例中，`Condition` 在用户进行了 MFA 身份验证时计算为 true。如果用户没有进行 MFA 身份验证，则此 `Condition` 计算为 false。在这种情况下，此策略中的第三个语句不会应用，因此用户将无法访问 `amzn-s3-demo-bucket-confidential-data` 存储桶。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "FirstStatement",
      "Effect": "Allow",
      "Action": ["iam:ChangePassword"],
      "Resource": "*"
    },
    {
      "Sid": "SecondStatement",
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*"
    },
    {
      "Sid": "ThirdStatement",
      "Effect": "Allow",
      "Action": [
        "s3:List*",
        "s3:Get*"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket-confidential-data",
        "arn:aws:s3:::amzn-s3-demo-bucket-confidential-data/*"
      ],
      "Condition": {"Bool": {"aws:MultiFactorAuthPresent": "true"}}
    }
  ]
}
```

------

### JSON 策略语法示例
<a name="policies-syntax-examples"></a>

以下基于身份的策略允许暗示的主体列出名为 `amzn-s3-demo-bucket` 的单个 Amazon S3 存储桶：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
  }
}
```

------

以下基于资源的策略可附加到 Amazon S3 存储桶。此策略允许特定 AWS 账户 的成员在名为 `amzn-s3-demo-bucket` 的存储桶中执行任何 Amazon S3 操作。它允许可对存储桶或其中的对象执行的任何操作。(因为该策略仅向该账户授予信任，所以仍必须向该账户中的各个用户授予执行指定 Amazon S3 操作的权限。) 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:root"
                ]
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        }
    ]
}
```

------

要查看常见方案的示例策略，请参阅[IAM 基于身份的策略示例](access_policies_examples.md)。

## 授予最低权限
<a name="grant-least-priv"></a>

创建 IAM policy 时，请遵循授予*最小权限*这一标准安全建议，或仅授予执行任务所需的权限。确定用户和角色需要执行的操作，然后制订允许他们*仅*执行这些任务的策略。

最开始只授予最低权限，然后根据需要授予其它权限。这样做比起一开始就授予过于宽松的权限而后再尝试收紧权限来说更为安全。

作为最低权限的替代方案，您可以使用 [AWS 托管策略](access_policies_managed-vs-inline.md#aws-managed-policies) 或带通配符 `*` 权限的策略开始使用策略。考虑授予您的主体超出其完成工作所需的更多权限所带来的安全风险。监控这些主体以了解他们正在使用哪些权限。然后写入最低权限策略。

IAM 提供了多个选项来帮助您优化授予的权限。
+ **了解访问级别分组** - 您可以使用访问级别分组来了解策略授予的访问级别。[策略操作](reference_policies_elements_action.md)被归类为 `List`、`Read`、`Write`、`Permissions management` 或 `Tagging`。例如，您可以从 `List` 和 `Read` 访问级别中选择操作，以向您的用户授予只读访问权限。要了解如何使用策略摘要来了解访问级别权限，请参阅 [策略摘要中的访问级别](access_policies_understand-policy-summary-access-level-summaries.md)。
+ **验证您的策略** — 您可以在创建和编辑 JSON 策略时使用 IAM Access Analyzer 执行策略验证。我们建议您查看和验证所有现有策略。IAM Access Analyzer 提供 100 多项策略检查来验证您的策略。当您策略中的语句允许我们认为过于宽容的访问时，它会生成安全警告。在授予最小权限时，您可以使用通过安全警告提供的可操作建议。要了解有关 IAM Access Analyzer 提供的策略检查的更多信息，请参阅 [IAM Access Analyzer 策略验证](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。
+ **基于访问活动生成策略** — 为了帮助您优化授予的权限，您可以根据 IAM 实体（用户或角色）的访问活动生成 IAM policy。IAM 访问分析器会查看您的 AWS CloudTrail 日志并生成一个策略模板，其中包含实体在指定时间框架内使用的权限。您可以使用模板创建具有精细权限的托管策略，然后将其附加到 IAM 实体。这样，您仅需授予用户或角色与特定使用案例中的 AWS 资源进行交互所需的权限。有关更多信息，请参阅 [IAM Acess Analyzer 策略生成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html)。
+ **使用上次访问的信息** — 另一项可帮助提供最低权限的功能是*上次访问的信息*。可以在 IAM 控制台详细信息页面上的**访问顾问**选项卡中查看此信息，以了解 IAM 用户、组、角色或策略。上次访问的信息还包括有关上次访问某些服务（如 Amazon EC2、IAM、Lambda 和 Amazon S3）的操作的信息。如果您使用 AWS Organizations 管理账户凭证登录，则可以在 IAM 控制台的 **AWS Organizations** 部分查看上次访问的服务信息。也可以使用 AWS CLI 或 AWS API 为 IAM 或 AWS Organizations 中的实体或策略检索上次访问的信息报告。您可以使用此信息确定不必要的权限，从而优化 IAM 或 AWS Organizations 策略以更好地遵循最低权限原则。有关更多信息，请参阅 [使用上次访问的信息优化 AWS 中的权限](access_policies_last-accessed.md)。
+ **查看 AWS CloudTrail 中的账户事件** — 要进一步减少权限，您可以在 AWS CloudTrail **Event history**（事件历史记录）中查看您的账户事件。CloudTrail 事件日志包含详细的事件信息，您可以用来减少策略的权限。这些日志仅包含 IAM 实体所需的操作和资源。有关更多信息，请参阅 *AWS CloudTrail 用户指南*中的[在 CloudTrail 控制台中查看 CloudTrail 事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html)。



有关更多信息，请参阅以下单个服务的策略主题，其中提供了如何针对特定产品的资源编写策略的示例。
+ 《Amazon DynamoDB 开发人员指南》**中的[将基于资源的策略用于 DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html)
+ 《Amazon Simple Storage Service 用户指南》**中的 [Amazon S3 的存储桶策略](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)
+ 《Amazon Simple Storage Service 用户指南》**中的[访问控制列表（ACL）概述](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html)

# 托管策略与内联策略
<a name="access_policies_managed-vs-inline"></a>

如果在 IAM 中为身份设置权限，您必须决定是使用 AWS 托管式策略、客户管理型策略还是内联策略。以下主题更详细说明了每种基于身份的策略以及何时使用这些策略。

下表概述了这些策略：


| 策略类型 | 说明 | 谁管理策略？ | 修改权限？ | 应用于策略的主体数量？ | 
| --- | --- | --- | --- | --- | 
| [AWS托管策略](#aws-managed-policies) | 由 AWS 创建和管理的独立策略。 | AWS | 否 | 很多 | 
| [客户托管策略](#customer-managed-policies) | 为特定使用案例创建的策略，并且可以根据需要随时更改或更新它们。 | You | 是 | 很多 | 
| [内联策略](#inline-policies) | 为单个 IAM 身份（用户、组或角色）创建的策略，该策略在策略和身份之间保持严格的一对一关系。 | You | 是 | One | 

**Topics**
+ [AWS托管策略](#aws-managed-policies)
+ [客户托管策略](#customer-managed-policies)
+ [内联策略](#inline-policies)
+ [在托管策略与内联策略之间进行选择](access_policies-choosing-managed-or-inline.md)
+ [将内联策略转换为托管式策略](access_policies-convert-inline-to-managed.md)
+ [已弃用的 AWS 托管策略](access_policies_managed-deprecated.md)

## AWS托管策略
<a name="aws-managed-policies"></a>

*AWS 托管策略* 是由 AWS 创建和管理的独立策略。*独立策略*意味着策略有自身的 Amazon 资源名称（ARN），其中包含策略名称。例如，`arn:aws:iam::aws:policy/IAMReadOnlyAccess` 是一个 AWS 托管策略。有关 ARN 的更多信息，请参阅 [IAM ARN](reference_identifiers.md#identifiers-arns)。有关适用于 AWS 服务 的 AWS 托管式策略的列表，请参阅 [AWS 托管式策略](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/policy-list.html)。

借助 AWS 托管式策略，您可以方便地为用户、IAM 组和角色分配适当的权限。它比自己编写策略更快，并且包括许多常见使用案例的权限。

您不能更改 AWS 托管策略中定义的权限。AWS 有时会更新 AWS 托管策略中定义的权限。在 AWS 执行此操作时，更新会影响策略附加到的所有主体实体（IAM 用户、IAM 组和 IAM 角色）。在推出新的 AWS 服务或为现有服务提供新的 API 调用时，AWS 很可能会更新 AWS 托管式策略。例如，名为 **ReadOnlyAccess** 的 AWS 托管策略提供针对所有 AWS 服务 和资源的只读访问权限。在 AWS 推出新的服务时，AWS 将更新 **ReadOnlyAccess** 策略，以便为新服务添加只读权限。更新的权限会应用于策略附加到的所有主体实体。

*完全访问 AWS 托管策略*：这些策略通过授予对服务的完全访问权限来定义服务管理员的权限。示例包括：
+ [AmazonDynamoDBFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonDynamoDBFullAccess.html)
+ [IAMFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/IAMFullAccess.html)

*高级用户 AWS 托管策略*：这些策略提供对 AWS 服务 和资源的完全访问权限，但不允许管理用户和 IAM 组。示例包括：
+ [AWSCodeCommitPowerUser](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeCommitPowerUser.html) 
+ [AWSKeyManagementServicePowerUser](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSKeyManagementServicePowerUser.html)

*部分访问 AWS 托管策略*：这些策略提供对 AWS 服务 的特定访问级别，但不允许[权限管理](access_policies_understand-policy-summary-access-level-summaries.md#access_policies_access-level)访问级别权限。示例包括：
+ [AmazonMobileAnalyticsWriteOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonMobileAnalyticsWriteOnlyAccess.html)
+ [AmazonEC2ReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ReadOnlyAccess.html) 

*工作职能 AWS 托管策略*：这些策略与 IT 行业中常用的工作职能密切相关，便于为这些工作职能授予权限。使用工作职能策略的一个重要优势是，在推出新的服务和 API 操作时，AWS 对这些策略进行维护和更新。例如，[AdministratorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html) 工作职能提供对 AWS 中的每个服务和资源的完全访问权限和权限委派。我们建议您仅对账户管理员使用此策略。对于需要对 IAM 和 AWS Organizations 的有限访问权限以及此外所有服务的完全访问权限的高级用户，请使用 [PowerUserAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/PowerUserAccess.html) 工作职能。有关工作职能策略的列表和说明，请参阅[工作职能的 AWS 托管策略](access_policies_job-functions.md)。

下图对 AWS 托管策略进行说明。该图显示三个 AWS 托管式策略：**AdministratorAccess**、**PowerUserAccess** 和 **AWSCloudTrail\$1ReadOnlyAccess**。请注意，单个 AWS 托管策略可以附加到不同 AWS 账户 中的主体实体，并且可以附加到单个 AWS 账户 中的不同主体实体。

![\[AWS 托管策略示意图\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-aws-managed-policies.diagram.png)


## 客户托管策略
<a name="customer-managed-policies"></a>

您可以在自己的 AWS 账户 中创建可附加到主体实体（IAM 用户、IAM 组和 IAM 角色）的独立策略。您可以为特定使用案例创建这些*客户管理型策略*，并且可以根据需要随时更改和更新它们。与 AWS 托管式策略一样，当您将策略附加到主体实体时，会向实体授予策略中定义的权限。当您更新策略中的权限时，这些更改将应用于策略所附加的所有主体实体。

创建客户托管策略的理想方式是：首先复制一个现有 AWS 托管策略。这样从一开始您就可以确信策略是正确的，只需根据您的环境进行自定义即可。

下面的示意图对客户托管策略进行说明。每个策略都是 IAM 中的一个实体，有自己的 [Amazon Resource Name (ARN)](reference_identifiers.md#identifiers-arns)，其中包含策略名称。请注意，同一策略可以附加到多个主体实体；例如，同一 **DynamoDB-books-app** 策略附加到两个不同的 IAM 角色。

有关更多信息，请参阅 [使用客户管理型策略定义自定义 IAM 权限](access_policies_create.md)。

![\[客户托管策略示意图\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-customer-managed-policies.diagram.png)


## 内联策略
<a name="inline-policies"></a>

内联策略是为单个 IAM 身份（用户、用户组或角色）创建的策略。内联策略维持策略与身份之间严格的一对一关系。当您删除身份时，它们将会被删除。您可以创建策略并将其嵌入到身份中，无论是在创建身份时还是之后。如果一个策略可以应用于多个实体，则最好使用托管式策略。

下面的示意图对内联策略进行说明。每个策略都是用户、组或角色的固有部分。请注意，两个角色包含同一策略（**DynamoDB-books-app** 策略），但是它们不共享单个策略。每个角色都有自己的策略副本。

![\[内联策略示意图\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-inline-policies.diagram.png)


# 在托管策略与内联策略之间进行选择
<a name="access_policies-choosing-managed-or-inline"></a>

在决定托管式策略和内联策略时，请考虑您的使用案例。在大多数情况下，我们建议使用托管策略而不是内联策略。

**注意**  
您可以同时使用托管式策略和内联策略来定义主体实体的通用权限和唯一权限。

托管策略具备以下功能：

**可重复使用性**  
单个托管策略可以附加到多个主体实体 (用户、组和角色)。您可以创建策略库，在库中定义对您的 AWS 账户 有用的权限，然后根据需要将这些策略附加到主体实体。

**集中变更管理**  
更改托管策略时，更改会应用于策略附加到的所有主体实体。例如，假设要为新的 AWS API 添加权限，则可以通过更新客户管理型策略或关联 AWS 托管式策略来添加权限。如果使用 AWS 托管式策略，则 AWS 会更新该策略。更新托管式策略时，更改会应用于附加了该托管式策略的所有主体实体。相比之下，要更改内联策略，则必须分别编辑包含该策略的每个身份。例如，如果一个组和一个角色都包含同一内联策略，则您必须分别编辑这两个主体实体来更改该策略。

**版本控制和回滚**  
在更改客户托管策略时，更改的策略不会覆盖现有的策略。而是由 IAM 创建新的托管策略版本。IAM 最多可以存储五个版本的客户管理策略。您可以根据需要使用策略版本将策略还原为较早版本。  
策略版本与 `Version` 策略元素不同。`Version` 策略元素用在策略之中，用于定义策略语言的版本。要了解策略版本的更多信息，请参阅[IAM policy 版本控制](access_policies_managed-versioning.md)。要了解 `Version` 策略元素的更多信息，请参阅[IAM JSON 策略元素：Version](reference_policies_elements_version.md)。

**委派权限管理**  
您可以允许您 AWS 账户 中的用户附加和分离策略，同时保持对这些策略中定义的权限的控制。为此，请将一些用户指定为完全管理员，即可以创建、更新和删除策略的管理员。然后，您可以将其他用户指定为受限管理员。这些受限制的管理员可以将策略附加到其他主体实体，但只能附加您允许他们附加的策略。  
有关委派权限管理的更多信息，请参阅[控制对策略的访问](access_controlling.md#access_controlling-policies)。

**上调策略字符数限制**  
托管式策略的最大字符数限制大于组内联策略的字符数限制。如果您已达到内联策略的字符数限制，则可以创建更多 IAM 组并将托管式策略附加到该组。  
有关限额和限制的更多信息，请参阅 [IAM 和 AWS STS 配额](reference_iam-quotas.md)。

**AWS 托管策略的自动更新**  
AWS 维护 AWS 托管式策略并在需要时更新它们，例如，针对新 AWS 服务添加权限，您不必进行更改。更新会自动应用于已附加了 AWS 托管策略的主体实体。

## 开始使用托管式策略
<a name="access_policies-get-started-managed-policy"></a>

我们建议使用[授予最低权限](access_policies.md#grant-least-priv)的策略，或仅授予执行任务所需的许可。授予最低权限的最安全方式是编写一个仅具有团队所需权限的客户管理型策略。您必须创建一个流程，以允许您的团队在必要时请求更多权限。创建仅为团队提供所需权限的 [IAM 客户管理型策略](access_policies_create-console.md)需要时间和专业知识。

要开始向您的 IAM 身份（用户、用户组和角色）添加权限，您可以使用 [AWS托管策略](access_policies_managed-vs-inline.md#aws-managed-policies)。AWS托管策略不会授予最低权限。您必须考虑授予您的主体超出其完成工作所需的更多权限所带来的安全风险。

您可以将 AWS 托管策略（包括任务函数）附加到任何 IAM 身份。有关更多信息，请参阅 [添加和删除 IAM 身份权限](access_policies_manage-attach-detach.md)。

要切换到最低权限，您可以运行 AWS Identity and Access Management and Access Analyzer 以使用 AWS 托管式策略监控主体。了解他们使用的权限后，您可以编写或生成仅包含团队所需权限的客户管理型策略。这中方法不太安全，但您能够以更灵活的方式了解您的团队如何使用 AWS。有关更多信息，请参阅 [IAM Access Analyzer 策略生成](access-analyzer-policy-generation.md)。

AWS 托管策略可用于为很多常用案例提供权限。有关专为特定任务函数制定的 AWS 托管策略的更多信息，请参阅 [工作职能的 AWS 托管策略](access_policies_job-functions.md)。

有关 AWS 托管式策略的列表，请参阅《[AWS 托管式策略参考指南](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/about-managed-policy-reference.html)》。

## 使用内联策略
<a name="policies-using-inline-policies"></a>

如果您要在策略与应用它的身份之间维持严格的一对一关系，则内联策略十分有用。例如，如果您需要确保策略中的权限不会无意中分配给预期身份之外的身份。使用内联策略时，策略中的权限不可能意外分配给错误的身份。此外，当您使用 AWS 管理控制台 删除该身份时，嵌入在身份中的策略也会被删除，因为它们是主体实体的一部分。

# 将内联策略转换为托管式策略
<a name="access_policies-convert-inline-to-managed"></a>

如果您的账户中具有内联策略，则可将其转换为托管策略。为此，请将该策略复制到新的托管策略。接下来，将新策略附加到具有内联策略的身份。然后，请删除内联策略。

## 将内联策略转换为托管策略
<a name="access_policies-convert-inline-to-managed-procedure"></a>

**将内联策略转换为托管策略**

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

1. 在导航窗格中，选择 **Groups**（组）、**Users**（用户）或 **Roles**（角色）。

1. 在列表中，请选择具有要修改的策略的用户组、用户或角色的名称。

1. 选择**权限**选项卡。

1. 对于 IAM 组，请选择要移除的内联策略的名称。对于用户和角色，选择**再显示 *n* 个**（如有必要），然后展开要删除的内联策略。

1. 选择**复制**以复制策略的 JSON 策略文档。

1. 在导航窗格中，选择**策略**。

1. 选择**创建策略**，然后选择 **JSON** 选项。

1. 将现有文本替换为您的 JSON 策略文本，然后选择**下一步**。

1. 输入您策略的名称和可选描述，然后选择**创建策略**。

1. 在导航窗格中，请选择 **Groups**（组）、**Users**（用户）或 **Roles**（角色），然后再次选择具有要删除的策略的用户组、用户或角色的名称。

1. 请选择**权限**选项卡，然后选择**添加权限**。

1. 对于 IAM 组，选中新策略名称旁边的复选框，选择**添加权限**，然后选择**附加策略**。对于用户或角色，选择 **Add permissions (添加权限)**。在下一页上，选择**直接附加现有策略**，选中您的新策略的名称旁边的复选框，选择**下一步**，然后选择**添加权限**。

   您将返回您的用户组、用户或角色的 **Summary（摘要）**页面。

1. 选中要移除的内联策略旁边的复选框，然后选择**移除**。

# 已弃用的 AWS 托管策略
<a name="access_policies_managed-deprecated"></a>

为了简化权限的分配，AWS 提供[托管策略](access_policies_managed-vs-inline.md) — 这是一项预定义策略，可随时附加到您的 IAM 用户、组和角色。

有时 AWS 需要向现有策略添加新权限，例如在引入新服务时。向现有策略添加新权限不会中断或移除任何功能或能力。

但是，如果所需的更改在应用于现有策略时可能影响客户，则 AWS 可能会选择创建*新* 策略。例如，从现有策略中移除权限可能中断依赖该策略的任何 IAM 实体或应用程序的权限，从而可能中断关键操作。

因此，当需要此类更改时，AWS 会根据所需更改创建一种全新的策略，并将其提供给客户。然后，旧策略被标记为*已弃用*。有关更多信息，请参阅*《AWS 托管式策略参考指南》*中的 [Deprecated AWS managed policies](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/about-managed-policy-reference.html#deprecated-managed-policies)。

# 使用数据边界建立权限防护机制
<a name="access_policies_data-perimeters"></a>

数据边界防护机制旨在充当始终开启边界，以帮助保护各种 AWS 账户和资源中的数据。数据边界遵循 IAM 安全最佳实践在[多个账户之间建立权限防护机制](best-practices.md#bp-permissions-guardrails)。这些组织范围的权限防护机制并不能取代现有的精细访问控制。相反，它们充当**粗粒度的访问控制**，通过确保用户、角色和资源遵守一组定义的安全标准来帮助改善安全策略。

数据边界是 AWS 环境中的一组权限防护机制，可帮助确保只有可信身份才能访问来自预期网络的可信资源。
+ 可信身份：AWS 账户中的主体（IAM 角色或用户）以及代表您行事的 AWS 服务。
+ 可信资源：AWS 账户或代表您行事的 AWS 服务所拥有的资源。
+ 预期网络：本地数据中心和虚拟私有云（VPC）或者代表您行事的 AWS 服务网络。

**注意**  
在某些情况下，您可能需要扩展数据边界，以包括可信业务合作伙伴的访问。在创建特定于您的公司和 AWS 服务 的使用的可信身份、可信资源和预期网络的定义时，应考虑所有预期的数据访问模式。

应将数据边界控制视为信息安全和风险管理计划中的任何其他安全控制。这意味着您应该执行威胁分析来识别云环境中的潜在风险，然后根据自己的风险接受标准，选择并实施适当的数据边界控制。为了更好地为基于风险的迭代数据边界实现方法提供信息，您需要了解数据边界控制可以解决哪些安全风险和威胁向量，以及安全优先级。

## 数据边界控制
<a name="access_policies_data-perimeters-controls"></a>

数据边界粗粒度控制通过实现不同的 [策略类型](access_policies.md#access_policy-types) 和[条件键](reference_policies_condition-keys.md)组合，帮助您在三个数据边界上实现六个不同的安全目标。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/access_policies_data-perimeters.html)

可以将数据边界视为在数据周围创建牢固的边界，以防止意外访问模式。尽管数据边界可防止广泛的意外访问，但您仍然需要做出精细的访问控制决策。建立数据边界并不能减少使用诸如 [IAM Access Analyzer](what-is-access-analyzer.md) 之类的工具持续微调权限的必要性，这是您实现[最低权限](best-practices.md#grant-least-privilege)的旅程的一部分。

要对 RCP 当前不支持的资源执行数据边界控制，您可以使用直接附加到资源的基于资源的策略。有关支持 RCP 和基于资源的策略的服务列表，请参阅 [Resource control policies (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) 和 [使用 IAM 的 AWS 服务](reference_aws-services-that-work-with-iam.md)。

要强制实施网络边界控制，我们建议使用 `aws:VpceOrgID`、`aws:VpceOrgPaths` 和 `aws:VpceAccount`，但唯一前提是当前支持要限制其访问的所有服务。将条件键用于不支持的服务可能会导致意想不到的授权结果。有关支持这些键的服务的列表，请参阅[AWS 全局条件上下文密钥](reference_policies_condition-keys.md)。如果需要对更广泛的服务强制实施控制，可考虑改用 `aws:SourceVpc` 和 `aws:SourceVpce`。

## 身份边界
<a name="access_policies_data-perimeters-identity"></a>

身份边界是一组粗粒度的预防性访问控制，有助于确保只有可信身份才能访问您的资源，并且只有可信身份才能访问您的网络。可信身份通常包括 AWS 账户中的主体（角色或用户）以及代表您行事的 AWS 服务。除非授予显式例外，否则所有其他身份都被视为不可信，并且会被身份边界阻止。

根据您对可信身份的定义，以下全局条件键可帮助强制实施身份边界控制。在资源控制策略中使用这些键来限制对资源的访问，或者在 [VPC 端点策略](https://docs.aws.amazon.com//vpc/latest/privatelink/vpc-endpoints-access.html)中使用这些键来限制对您的网络的访问。

### 您拥有的身份
<a name="data-perimeters-identity-owned-by-you"></a>

可使用以下条件键，定义您在 AWS 账户 中创建和管理的 IAM 主体。
+ [aws:PrincipalOrgID](reference_policies_condition-keys.md#condition-keys-principalorgid) – 可以使用此条件键来确保提出请求的 IAM 主体属于 AWS Organizations 中的指定组织。
+ [aws:PrincipalOrgPaths](reference_policies_condition-keys.md#condition-keys-principalorgpaths) – 可以使用此条件键来确保提出请求的 IAM 用户、IAM 角色、AWS STS 联合用户主体或 SAML 联合主体、OIDC 联合主体或 AWS 账户根用户 属于 AWS Organizations 中的指定组织单位（OU）。
+ [aws:PrincipalAccount](reference_policies_condition-keys.md#condition-keys-principalaccount) – 可以使用此条件键来确保只有您在策略中指定的主体账户才能访问资源。

### 代表您行事的 AWS 服务的身份
<a name="data-perimeters-identity-owned-by-service"></a>

可使用以下条件键，允许 AWS 服务在代表您行事时使用其自有身份访问您的资源。
+ [aws:PrincipalIsAWSService](reference_policies_condition-keys.md#condition-keys-principalisawsservice) 和 [aws:SourceOrgID](reference_policies_condition-keys.md#condition-keys-sourceorgid)（或者 [aws:SourceOrgPaths](reference_policies_condition-keys.md#condition-keys-sourceorgpaths) 和 [aws:SourceAccount](reference_policies_condition-keys.md#condition-keys-sourceaccount)）– 可以使用这些条件键来确保当 [AWS 服务 主体](reference_policies_elements_principal.md#principal-services)访问您的资源时，他们仅代表指定组织、组织单位中的资源或 AWS Organizations 中的账户进行访问。

有关更多信息，请参阅[在 AWS 上建立数据边界：仅允许可信身份访问公司数据](https://aws.amazon.com/blogs/security/establishing-a-data-perimeter-on-aws-allow-only-trusted-identities-to-access-company-data/)。

## 资源边界
<a name="access_policies_data-perimeters-resource"></a>

资源边界是一组粗粒度的预防性访问控制，有助于确保您的身份只能访问可信资源，并且只能从您的网络访问可信资源。可信资源通常包括您的 AWS 账户或代表您行事的 AWS 服务所拥有的资源。

根据您对可信资源的定义，以下全局条件键有助于强制实施资源边界控制。在[服务控制策略 (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)中使用这些键来限制您的身份可以访问哪些资源，或者在 [VPC 端点策略](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)中使用这些键来限制可以从您的网络访问哪些资源。

### 您拥有的资源
<a name="data-perimeters-resource-owned-by-you"></a>

可使用以下条件键，定义您在 AWS 账户 中创建和管理的 AWS 资源。
+ [aws:ResourceOrgID](reference_policies_condition-keys.md#condition-keys-resourceorgid) – 可以使用此条件键来确保正在访问的资源属于 AWS Organizations 中的指定组织。
+ [aws:ResourceOrgPaths](reference_policies_condition-keys.md#condition-keys-resourceorgpaths) – 可以使用此条件键来确保正在访问的资源属于 AWS Organizations 中指定的组织单位（OU）。
+ [aws:ResourceAccount](reference_policies_condition-keys.md#condition-keys-resourceaccount) – 可以使用此条件键来确保正在访问的资源属于指定 AWS 账户。

### 代表您行事的 AWS 服务资源
<a name="data-perimeters-resource-owned-by-service"></a>

在某些情况下，您可能需要允许访问 AWS 拥有的资源，这些资源不属于您的组织，由您的主体或代表您行事的 AWS 服务访问。有关这些场景的更多信息，请参阅[在 AWS 上建立数据边界：仅允许来自我的组织的可信资源](https://aws.amazon.com/blogs/security/establishing-a-data-perimeter-on-aws-allow-only-trusted-resources-from-my-organization/)。

## 网络边界
<a name="access_policies_data-perimeters-network"></a>

网络边界是一组粗粒度的预防性访问控制，可帮助确保您的身份只能访问预期网络中的资源，并且只能从预期网络访问您的资源。预期网络通常包括您的本地数据中心和虚拟私有云（VPC）以及代表您行事的 AWS 服务网络。

根据您对预期网络的定义，以下全局条件键有助于强制实施网络边界控制。在[服务控制策略（SCP）](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)中使用这些键来限制您的身份可以与之通信的网络，或者在[资源控制策略（RCP）](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)中使用这些键来限制对预期网络的资源访问。

### 您拥有的网络
<a name="data-perimeters-network-owned-by-you"></a>

可使用以下条件键，定义您的员工和应用程序访问资源时应使用的网络，例如企业 IP CIDR 范围和 VPC。
+ [aws:SourceIp](reference_policies_condition-keys.md#condition-keys-sourceip) – 可以使用此条件键来确保请求者的 IP 地址在指定的 IP 范围内。
+ [aws:SourceVpc](reference_policies_condition-keys.md#condition-keys-sourcevpc) – 可以使用此条件键来确保请求通过其传输的 VPC 端点属于指定的 VPC。
+ [aws:SourceVpce](reference_policies_condition-keys.md#condition-keys-sourcevpce) – 可以使用此条件键来确保请求通过指定的 VPC 端点传输。
+ [aws:VpceAccount](reference_policies_condition-keys.md#condition-keys-vpceaccount) – 可以使用此条件键来确保请求经由指定 AWS 账户拥有的 VPC 端点。
+ [aws:VpceOrgPaths](reference_policies_condition-keys.md#condition-keys-vpceorgpaths) – 可以使用此条件键来确保提出请求的 IAM 主体属于 AWS Organizations 中的指定组织单元 (OU)。
+ [aws:VpceOrgID](reference_policies_condition-keys.md#condition-keys-vpceorgid) – 可使用此条件键来确保请求经由 AWS Organizations 中的指定组织中的账户拥有的 VPC 端点。

`aws:VpceAccount`、`aws:VpceOrgPaths` 和 `aws:VpceOrgID` 对实施网络边界控制特别有用，这种控制可随 VPC 端点的使用情况自动扩展，且在创建新端点时无需更新策略。有关支持这些键的 AWS 服务 列表，请参阅[AWS 全局条件上下文密钥](reference_policies_condition-keys.md)。

### 代表您行事的 AWS 服务网络
<a name="data-perimeters-network-owned-by-service"></a>

可使用以下条件键，允许 AWS 服务在代表您行事时从其网络访问您的资源。
+ [aws:ViaAWSService](reference_policies_condition-keys.md#condition-keys-viaawsservice) – 可以使用此条件键来确保 AWS 服务 可以使用 [转发访问会话](access_forward_access_sessions.md)（FAS）代表您的主体提出请求。
+ [aws:PrincipalIsAWSService](reference_policies_condition-keys.md#condition-keys-principalisawsservice) – 可以使用此条件键来确保 AWS 服务 可以使用 [AWS 服务主体](reference_policies_elements_principal.md#principal-services) 访问您的资源。

 在其他情况下，您需要允许从网络外部访问 AWS 服务 以访问您的资源。有关更多信息，请参阅[在 AWS 上建立数据边界：仅允许从预期网络访问公司数据](https://aws.amazon.com/blogs/security/establishing-a-data-perimeter-on-aws-allow-access-to-company-data-only-from-expected-networks/)。

## 用于了解有关数据边界的更多信息的资源
<a name="access_policies_data-perimeters-resources"></a>

以下资源可帮助了解有关 AWS 的数据边界的更多信息。
+ [AWS 上的数据边界](https://aws.amazon.com/identity/data-perimeters-on-aws/) – 了解数据边界及其优势和用例。
+  [博客文章系列：在 AWS 上建立数据边界](https://aws.amazon.com/identity/data-perimeters-blog-post-series/) – 这些博客文章涵盖了有关大规模建立数据边界的规范性指导，包括关键的安全和实现注意事项。
+  [数据边界策略示例](https://github.com/aws-samples/data-perimeter-policy-examples/tree/ce06665ca8b2f07debee7bed5153c3be0f31c73c) – 此 GitHub 存储库包含示例策略，这些策略涵盖了一些常见模式，可帮助您在 AWS 上实现数据边界。
+ [数据边界帮助程序](https://github.com/aws-samples/data-perimeter-helper/tree/main?tab=readme-ov-file) – 此工具通过分析 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 日志中的访问活动，帮助您设计和预测数据边界控制的影响。

# IAM 实体的权限边界
<a name="access_policies_boundaries"></a>

AWS 对于 IAM 实体（用户或角色）支持*权限边界*。权限边界是一个高级功能，它使用托管策略设置基于身份的策略可以为 IAM 实体授予的最大权限。实体的权限边界仅允许实体执行其基于身份的策略和权限边界同时允许的操作。

有关策略类型的更多信息，请参阅[策略类型](access_policies.md#access_policy-types)。

**重要**  
如果基于资源的策略语句包含对附加了权限边界策略的 IAM 用户或角色具有 `Deny` 效果的 `NotPrincipal` 策略元素，则不要使用这种策略语句。具有 `Deny` 效果的 `NotPrincipal` 元素将始终拒绝任何附加了权限边界策略的 IAM 主体，无论 `NotPrincipal` 元素中指定的值为何。这会导致本来可以访问该资源的某些 IAM 用户或角色失去访问权限。我们建议更改基于资源的策略语句，以将 [`ArnNotEquals`](reference_policies_elements_condition_operators.md#Conditions_ARN) 条件运算符和 [`aws:PrincipalArn`](reference_policies_condition-keys.md#condition-keys-principalarn) 上下文键结合使用来限制访问权限，而不是使用 `NotPrincipal` 元素。有关 `NotPrincipal` 元素的信息，请参阅 [AWS JSON 策略元素：NotPrincipal](reference_policies_elements_notprincipal.md)。

您可以使用 AWS 托管策略或客户托管策略为 IAM 实体（用户或角色）设置边界。该策略限制用户或角色的最大权限。

例如，假设名为 `Shirley` 的 IAM 用户应仅允许管理 Amazon S3、Amazon CloudWatch 和 Amazon EC2。要执行此规则，您可以使用以下策略为 `Shirley` 用户设置权限边界：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:*",
                "cloudwatch:*",
                "ec2:*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

当使用策略为用户设置权限边界时，它会限制用户的权限，但自己不提供权限。在本示例中，策略设置 `Shirley` 的最大权限作为 Amazon S3、CloudWatch 和 Amazon EC2 中的所有操作。Shirley 无法在任何其他服务（包括 IAM）中执行操作，即使她有一个允许这样做的权限策略也是如此。例如，您可以将以下策略添加给 `Shirley` 用户：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "iam:CreateUser",
    "Resource": "*"
  }
}
```

------

此策略允许在 IAM 中创建用户。如果您将此权限策略附加到 `Shirley` 用户，然后 Shirley 尝试创建用户，该操作会失败。它由于权限边界不允许执行 `iam:CreateUser` 操作而失败。鉴于这两个策略，Shirley 无权在 AWS 中执行任何操作。您必须添加不同的权限策略以允许其他服务中的操作，例如 Amazon S3。或者，您也可以更新权限边界，以允许她在 IAM 中创建用户。

## 评估具有边界的有效权限
<a name="access_policies_boundaries-eval-logic"></a>

IAM 实体（用户或角色）的权限边界设置实体可以具有的最大权限。这可以更改该用户或角色的有效权限。实体的有效权限是影响用户或角色的所有策略所授予的权限。在账户中，基于身份的策略、基于资源的策略、权限边界、AWS Organizations SCP 或会话策略可以影响实体的权限。有关不同类型的策略的更多信息，请参阅[AWS Identity and Access Management 中的策略和权限](access_policies.md)。

如果以下任一策略类型显式拒绝操作的访问权限，则请求会被拒绝。多个权限类型向实体授予的权限更复杂。有关 AWS 如何评估策略的更多信息，请参阅[策略评估逻辑](reference_policies_evaluation-logic.md)。

**基于身份的策略及边界** - 基于身份的策略是附加到用户、用户组或角色的内联或托管策略。基于身份的策略向实体授予权限，而权限边界限制这些权限。有效的权限是两种策略类型的交集。其中任一项策略中的显式拒绝将覆盖允许。

![\[评估基于身份的策略和权限边界\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/permissions_boundary.png)


**基于资源的策略** - 基于资源的策略控制指定的主体可以访问策略附加到的资源。

*针对 IAM 用户的基于资源的策略*  
在同一账户中，向 IAM 用户 ARN（即非 AWS STS 联合用户主体会话）授予权限的基于资源的策略不受基于身份的策略或权限边界中的隐式拒绝限制。  

![\[评估基于资源的策略、权限边界和基于身份的策略\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/EffectivePermissions-rbp-boundary-id.png)


*针对 IAM 用户的基于资源的策略*  
**IAM 角色** — 授予 IAM 角色 ARN 权限的基于资源的策略受权限边界或会话策略中隐式拒绝的限制。  
**IAM 角色会话** — 在同一账户中，向 IAM 角色会话 ARN 授予权限的基于资源的策略直接向所担任的角色会话授予权限。直接授予会话的权限不受基于身份的策略、权限边界或会话策略中的隐式拒绝的限制。当您担任角色并提出请求时，发出请求的主体是 IAM 角色会话 ARN，而不是角色本身的 ARN。

*针对 AWS STS 联合用户主体会话的基于资源的策略*  
**AWS STS 联合用户主体会话**：AWS STS 联合用户主体会话是通过调用 [`GetFederationToken`](id_credentials_temp_request.md#api_getfederationtoken) 创建的会话。当联合身份用户发出请求时，发出请求的主体是联合身份用户 ARN，而不是联合身份的 IAM 用户的 ARN。在同一个账户中，将权限授予联合身份用户 ARN 的基于资源的策略直接将权限授予会话。直接授予会话的权限不受基于身份的策略、权限边界或会话策略中的隐式拒绝的限制。  
但是，如果基于资源的策略向联合身份的 IAM 用户的 ARN 授予权限，则 AWS STS 联合用户主体在会话期间发出的请求将受权限边界或会话策略中隐式拒绝的限制。

**AWS Organizations SCP**：SCP 适用于整个 AWS 账户。它们限制账户中的主体所提出的每个请求的权限。IAM 实体（用户或角色）可能会发出受 SCP、权限边界和基于身份的策略影响的请求。在这种情况下，只有在所有三种策略类型都允许时，才允许发出该请求。有效的权限是的所有三种策略类型的交集。任一项策略中的显式拒绝将覆盖允许。

![\[评估 SCP、权限边界和基于身份的策略\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/EffectivePermissions-scp-boundary-id.png)


您可以在 AWS Organizations 中了解[您的账户是否为某个组织的成员](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html#orgs_view_account)。组织成员可能会受 SCP 的影响。要使用 AWS CLI 命令或 AWS API 操作查看该数据，您必须具有 AWS Organizations 实体的 `organizations:DescribeOrganization` 操作的权限。您必须具有额外的权限才能在 AWS Organizations 控制台中执行该操作。要了解 SCP 是否拒绝访问特定的请求或更改您的有效权限，请与您的 AWS Organizations 管理员联系。

**会话策略**：会话策略是当您以编程方式为角色或联合用户创建临时会话时作为参数传递的高级策略。会话的权限来自用于创建会话的 IAM 实体（用户或角色）和会话策略。该实体的基于身份的策略权限受会话策略和权限边界所限制。这组策略类型的有效权限是所有三种策略类型的交集。任一项策略中的显式拒绝将覆盖允许。有关会话策略的更多信息，请参阅[会话策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)。

![\[评估会话策略、权限边界和基于身份的策略\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/EffectivePermissions-session-boundary-id.png)


## 使用权限边界将责任委派给其他人
<a name="access_policies_boundaries-delegate"></a>

您可以使用权限边界将权限管理任务（如用户创建）委派给您账户中的 IAM 用户。这允许其他人在特定权限边界内代表您执行任务。

例如，假定 María 是 X 公司 AWS 账户 的管理员。她希望将用户创建责任委派给 Zhang。但是，她必须确保 Zhang 创建的用户符合以下公司规则：
+ 用户不能使用 IAM 来创建或管理用户、组、角色或策略。
+ 拒绝用户访问 Amazon S3 `logs` 存储桶，并且用户无法访问 `i-1234567890abcdef0` Amazon EC2 实例。
+ 用户无法删除自己的边界策略。

为执行这些规则，María 完成以下任务，下面包括其详细信息：

1. María 创建 `XCompanyBoundaries` 托管策略以用作账户中的所有新用户的权限边界。

1. María 创建 `DelegatedUserBoundary` 托管策略并将其指定为 Zhang 的权限边界。Maria 记录了其管理员 用户的 ARN，并在策略中使用它来阻止 Zhang 访问它。

1. María 创建 `DelegatedUserPermissions` 托管策略并将其作为 Zhang 的权限策略进行附加。

1. María 告诉 Zhang 他的新责任和限制。

**任务 1：**María 必须首先创建托管策略来为新用户定义边界。María 将允许 Zhang 向用户授予他们所需的权限策略，但她希望限制这些用户。为此，她创建以下名为 `XCompanyBoundaries` 的客户托管策略。该策略执行以下操作：
+ 允许用户完全访问一些服务
+ 允许在 IAM 控制台中进行有限的自我管理访问。这意味着，他们可以在登录控制台后更改密码。他们不能设置初始密码。要允许此操作，请将 `"*LoginProfile"` 操作添加到 `AllowManageOwnPasswordAndAccessKeys` 语句。
+ 拒绝用户访问 Amazon S3 日志存储桶或 `i-1234567890abcdef0` Amazon EC2 实例

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ServiceBoundaries",
            "Effect": "Allow",
            "Action": [
                "s3:*",
                "cloudwatch:*",
                "ec2:*",
                "dynamodb:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowIAMConsoleForCredentials",
            "Effect": "Allow",
            "Action": [
                "iam:ListUsers",
                "iam:GetAccountPasswordPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowManageOwnPasswordAndAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:*AccessKey*",
                "iam:ChangePassword",
                "iam:GetUser",
                "iam:*ServiceSpecificCredential*",
                "iam:*SigningCertificate*"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "DenyS3Logs",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::logs",
                "arn:aws:s3:::logs/*"
            ]
        },
        {
            "Sid": "DenyEC2Production",
            "Effect": "Deny",
            "Action": "ec2:*",
            "Resource": "arn:aws:ec2:*:*:instance/i-1234567890abcdef0"
        }
    ]
}
```

------

每个语句用于不同目的：

1. 此策略的 `ServiceBoundaries` 语句允许完全访问指定的 AWS 服务。这意味着，新用户在这些服务中的操作仅受附加到该用户的权限策略的限制。

1. `AllowIAMConsoleForCredentials` 语句允许访问以列出所有 IAM 用户。要在 AWS 管理控制台中导航**用户**页面，此访问权限是必需的。它还允许查看账户的密码要求，这在更改自己的密码时是必需的。

1. `AllowManageOwnPasswordAndAccessKeys` 语句允许用户仅管理其自己的控制台密码和编程访问密钥。这在 Zhang 或其他管理员为新用户分配了具有完全 IAM 访问权限的权限策略时将非常重要。在这种情况下，该用户可能会更改自己或其他用户的权限。此语句可防止这种情况的发生。

1. `DenyS3Logs` 语句显式拒绝对 `logs` 存储桶的访问。

1. `DenyEC2Production` 语句显式拒绝对 `i-1234567890abcdef0` 实例的访问。

**任务 2：**María 希望允许 Zhang 创建所有 X 公司用户，但仅具有 `XCompanyBoundaries` 权限边界。她创建以下名为 `DelegatedUserBoundary` 的客户托管策略。此策略定义 Zhang 可以具有的最大权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateOrChangeOnlyWithBoundary",
            "Effect": "Allow",
            "Action": [
                "iam:AttachUserPolicy",
                "iam:CreateUser",
                "iam:DeleteUserPolicy",
                "iam:DetachUserPolicy",
                "iam:PutUserPermissionsBoundary",
                "iam:PutUserPolicy"
            ],
            "Resource": "*",
            "Condition": {
               "StringEquals": {
                 "iam:PermissionsBoundary": "arn:aws:iam::123456789012:policy/XCompanyBoundaries"
                }
            }
        },
        {
            "Sid": "CloudWatchAndOtherIAMTasks",
            "Effect": "Allow",
            "Action": [
              "cloudwatch:*",
              "iam:CreateAccessKey",
              "iam:CreateGroup",
              "iam:CreateLoginProfile",
              "iam:CreatePolicy",
              "iam:DeleteGroup",
              "iam:DeletePolicy",
              "iam:DeletePolicyVersion",
              "iam:DeleteUser",
              "iam:GetAccountPasswordPolicy",
              "iam:GetGroup",
              "iam:GetLoginProfile",
              "iam:GetPolicy",
              "iam:GetPolicyVersion",
              "iam:GetRolePolicy",
              "iam:GetUser",
              "iam:GetUserPolicy",
              "iam:ListAccessKeys",
              "iam:ListAttachedRolePolicies",
              "iam:ListAttachedUserPolicies",
              "iam:ListEntitiesForPolicy",
              "iam:ListGroups",
              "iam:ListGroupsForUser",
              "iam:ListMFADevices",
              "iam:ListPolicies",
              "iam:ListPolicyVersions",
              "iam:ListRolePolicies",
              "iam:ListSSHPublicKeys",
              "iam:ListServiceSpecificCredentials",
              "iam:ListSigningCertificates",
              "iam:ListUserPolicies",
              "iam:ListUsers",
              "iam:SetDefaultPolicyVersion",
              "iam:SimulateCustomPolicy",
              "iam:SimulatePrincipalPolicy",
              "iam:UpdateGroup",
              "iam:UpdateLoginProfile",
              "iam:UpdateUser"
            ],
            "NotResource": "arn:aws:iam::123456789012:user/Maria"
        },
        {
            "Sid": "NoBoundaryPolicyEdit",
            "Effect": "Deny",
            "Action": [
                "iam:CreatePolicyVersion",
                "iam:DeletePolicy",
                "iam:DeletePolicyVersion",
                "iam:SetDefaultPolicyVersion"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:policy/XCompanyBoundaries",
                "arn:aws:iam::123456789012:policy/DelegatedUserBoundary"
            ]
        },
        {
            "Sid": "NoBoundaryUserDelete",
            "Effect": "Deny",
            "Action": "iam:DeleteUserPermissionsBoundary",
            "Resource": "*"
        }
    ]
}
```

------

每个语句用于不同目的：

1. `CreateOrChangeOnlyWithBoundary` 语句允许 Zhang 创建 IAM 用户，但仅当他使用 `XCompanyBoundaries` 策略设置权限边界时。此语句还允许他为现有用户设置权限边界，但仅使用该相同策略。最后，此语句允许 Zhang 管理设置了此权限边界的用户的权限策略。

1. `CloudWatchAndOtherIAMTasks` 语句允许 Zhang 完成其他用户、组和策略管理任务。他有权重置密码并为 `NotResource` 策略元素中未列出的任何 IAM 用户创建访问密钥。这使他能够帮助用户解决登录问题。

1. `NoBoundaryPolicyEdit` 语句拒绝 Zhang 访问以更新 `XCompanyBoundaries` 策略。不允许他更改用于为自己或其他用户设置权限边界的任何策略。

1. `NoBoundaryUserDelete` 语句拒绝 Zhang 访问以便为他或其他用户删除权限边界。

María 然后将 `DelegatedUserBoundary` 策略指定为 `Zhang` 用户的[权限边界](id_users_change-permissions.md#users_change_permissions-set-boundary-console)。

**任务 3：**由于权限边界限制最大权限，但自己不授予访问权限，Maria 必须为 Zhang 创建权限策略。她创建以下名为 `DelegatedUserPermissions` 的策略。此策略定义 Zhang 在定义的边界内可以执行的操作。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "IAM",
            "Effect": "Allow",
            "Action": "iam:*",
            "Resource": "*"
        },
        {
            "Sid": "CloudWatchLimited",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:GetDashboard",
                "cloudwatch:GetMetricData",
                "cloudwatch:ListDashboards",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:ListMetrics"
            ],
            "Resource": "*"
        },
        {
            "Sid": "S3BucketContents",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::ZhangBucket"
        }
    ]
}
```

------

每个语句用于不同目的：

1. 此策略的 `IAM` 语句允许 Zhang 完全访问 IAM。但是，由于他的权限边界只允许某些 IAM 操作，他的有效 IAM 权限仅受他的权限边界限制。

1. `CloudWatchLimited` 语句允许 Zhang 在 CloudWatch 中执行五种操作。他的权限边界允许 CloudWatch 中的所有操作，因此他的有效 CloudWatch 权限仅受他的权限策略限制。

1. `S3BucketContents` 语句允许 Zhang 列出 `ZhangBucket` Amazon S3 存储桶。但是，他的权限边界不允许任何 Amazon S3 操作，因此无论他的权限策略如何，他都无法执行任何 S3 操作。
**注意**  
Zhang 的策略允许他创建一个用户，然后可以访问自己无法访问的 Amazon S3 资源。通过委托这些管理操作，Maria 实际上相信张能够访问 Amazon S3。

María 然后将 `DelegatedUserPermissions` 策略作为 `Zhang` 用户的权限策略进行附加。

**任务 4：**她向 Zhang 提供创建新用户的说明。她告诉他，他可以创建具有所需任何权限的新用户，但他必须为他们分配 `XCompanyBoundaries` 策略作为权限边界。

Zhang 完成以下任务：

1. Zhang 使用 AWS 管理控制台 创建用户。他为该用户键入用户名 `Nikhil` 并启用控制台访问。他清除 **Requires password reset**（需要重置密码）旁边的复选框，因为上述策略仅允许用户在登录到 IAM 控制台后才能更改密码。

1. 在 **Set permissions (设置权限)** 页面上，Zhang 选择允许 Nikhil 执行其工作的 **IAMFullAccess** 和 **AmazonS3ReadOnlyAccess** 权限策略。

1. Zhang 跳过**设置权限边界**部分，忘记 María 的说明。

1. Zhang 查看用户详细信息并选择**创建用户**。

   操作失败，并且拒绝访问。Zhang 的 `DelegatedUserBoundary` 权限边界要求他创建的任何用户都将 `XCompanyBoundaries` 策略用作权限边界。

1. Zhang 返回到上一页。在**设置权限边界**部分中，他选择了 `XCompanyBoundaries` 策略。

1. Zhang 查看用户详细信息并选择**创建用户**。

   将创建用户。

当 Nikhil 登录时，他有权访问 IAM 和 Amazon S3，但权限边界拒绝的操作除外。例如，他可以在 IAM 中更改自己的密码，但无法创建另一个用户或编辑他的策略。Nikhil 具有对 Amazon S3 的只读访问权限。

如果某个人在 `logs` 存储桶中添加基于资源的策略以允许 Nikhil 将对象放入该存储桶中，他仍然无法访问该存储桶。原因是，其权限边界显式拒绝对 `logs` 存储桶执行的任何操作。任何策略类型中的显式拒绝都会导致请求被拒绝。不过，如果附加到 Secrets Manager 密钥的基于资源的策略允许 Nikhil 执行 `secretsmanager:GetSecretValue` 操作，则 Nikhil 可以检索和解密该密钥。原因是，其权限边界未显式拒绝 Secrets Manager 操作，并且权限边界中的隐式拒绝不限制基于资源的策略。

# 基于身份的策略和基于资源的策略
<a name="access_policies_identity-vs-resource"></a>

策略是AWS中的对象；在与标识或资源相关联时，策略定义它们的权限。在创建权限策略以限制对资源的访问时，您可以选择*基于身份的策略*或*基于资源的策略*。

**基于身份的策略**附加到 IAM 用户、组或角色。这些策略可让您指定该身份可执行哪些操作（其权限）。例如，您可以将策略附加到名为 John 的 IAM 用户，以声明允许他执行 Amazon EC2 `RunInstances` 操作。该策略可能会进一步声明，John 可以从名为 `MyCompany` 的 Amazon DynamoDB 表中获取项目。您也可以允许 John 管理自己的 IAM 安全凭证。基于标识的策略可以是[托管或内联](access_policies_managed-vs-inline.md)的。

**基于资源的策略**附加到某个资源。例如，您可以将基于资源的策略附加到 Amazon S3 存储桶、Amazon SQS 队列、VPC 端点、AWS Key Management Service 加密密钥以及 Amazon DynamoDB 表和流。有关支持基于资源的策略的服务列表，请参阅[使用 IAM 的 AWS 服务](reference_aws-services-that-work-with-iam.md)。

通过使用基于资源的策略，您可以指定哪些用户有权访问资源，以及他们可以对资源执行哪些操作。要了解您信任区域之外的账户（受信任的企业或账户）中的主体是否有权承担您的角色，请参阅[什么是 IAM Access Analyzer？](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html)。基于资源的策略只有内联的，没有托管的。

**注意**  
*基于资源* 的策略与*资源级* 权限不同。如本主题所述，您可以直接将基于资源的策略附加到某一资源。资源级权限是指使用 [ARN](reference_identifiers.md#identifiers-arns) 在策略中指定各项资源的能力。只有部分 AWS 服务支持基于资源的策略。有关支持基于资源的策略和资源级权限的服务列表，请参阅[使用 IAM 的 AWS 服务](reference_aws-services-that-work-with-iam.md)。

要了解基于身份的策略和基于资源的策略如何在同一个账户中进行交互，请参阅 [对单个账户内的请求进行策略评估](reference_policies_evaluation-logic_policy-eval-basics.md)。

要了解这些策略如何在账户之间进行交互，请参阅 [跨账户策略评估逻辑](reference_policies_evaluation-logic-cross-account.md)。

要更好地了解这些概念，请查看下图。`123456789012` 账户的管理员已将*基于身份的策略* 附加到 `John`、`Carlos` 和 `Mary` 用户。可对特定资源执行这些策略中的一些操作。例如，用户 `John` 可以对 `Resource X` 执行一些操作。这是基于身份的策略中的*资源级权限*。管理员还将*基于资源的策略* 添加到 `Resource X`、`Resource Y` 和 `Resource Z`。利用基于资源的策略，您可以指定谁可以访问资源。例如，`Resource X` 上的基于资源的策略允许用户 `John` 和 `Mary` 列出和读取资源。

![\[基于身份的策略与基于资源的策略\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/Types_of_Permissions.diagram.png)


`123456789012` 账户示例允许以下用户执行列出的操作：
+ **John** – John 可以对 `Resource X` 执行列出和读取操作。已通过基于身份的策略（针对其用户）和基于资源的策略（针对 `Resource X`）向他授予此权限。
+ **Carlos** – Carlos 可以对 `Resource Y` 执行列出、读取和写入操作，但被拒绝访问 `Resource Z`。Carlos 的基于身份的策略允许他对 `Resource Y` 执行列出和读取操作。基于 `Resource Y` 资源的策略还向他授予写入权限。不过，尽管其基于身份的策略允许他访问 `Resource Z`，但基于 `Resource Z` 资源的策略拒绝该访问。显式 `Deny` 会覆盖 `Allow`，并拒绝他对 `Resource Z` 进行的访问。有关更多信息，请参阅 [策略评估逻辑](reference_policies_evaluation-logic.md)。
+ **Mary** – Mary 可以对 `Resource X`、`Resource Y` 和 `Resource Z` 执行列出、读取和写入操作。与基于资源的策略相比，她的基于身份的策略允许她对更多资源执行更多操作，但都不拒绝访问。
+ **Zhang** – Zhang 具有 `Resource Z` 的完全访问权限。Zhang 没有基于身份的策略，但基于 `Resource Z` 资源的策略向他授予对资源的完全访问权限。Zhang 还可以对 `Resource Y` 执行列出和读取操作。

基于身份的策略和基于资源的策略都属于权限策略，并且将一起评估。对于仅将权限策略应用于的请求，AWS 将先检查 `Deny` 的所有策略。如果存在一个此类策略，则该请求将被拒绝。然后，AWS 检查每个 `Allow`。如果至少一个策略语句允许请求中的操作，则将允许此请求。无论 `Allow` 是在基于身份的策略中还是基于资源的策略中，都无关紧要。

**重要**  
此逻辑仅当请求在单个 AWS 账户 中发出时适用。对于从一个账户向另一个账户发出的请求，`Account A` 中的请求者必须具有基于身份的策略，该策略允许其向 `Account B` 中的资源发出请求。此外，`Account B` 中的基于资源的策略必须允许 `Account A` 中的请求者访问资源。这两个账户中都必须有允许操作的策略，否则请求失败。有关将基于资源的策略用于跨账户访问的更多信息，请参阅 [IAM 中的跨账户资源访问](access_policies-cross-account-resource-access.md)。

具有特定权限的用户可能会请求也附加了权限策略的资源。在这种情况下，在确定是否授予资源的访问权限时，AWS 将评估这两组权限。有关如何评估策略的信息，请参阅[策略评估逻辑](reference_policies_evaluation-logic.md)。

**注意**  
Amazon S3 支持基于身份的策略和基于资源的策略（称为*存储桶策略*）。此外，Amazon S3 还支持称为*访问控制列表 (ACL)* 的权限机制，该机制独立于 IAM policy 和权限。您可以将 IAM policy 与 Amazon S3 ACL 结合使用。有关更多信息，请参阅 *Amazon Simple Storage Service 用户指南*中的[访问控制](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingAuthAccess.html)。

# 使用策略控制对 AWS 资源的访问
<a name="access_controlling"></a>

您可以使用策略控制对 IAM 或所有 AWS 中的资源的访问。

要使用[标签](access_policies.md)在 AWS 中控制访问，您必须了解 AWS 如何授予访问权限。AWS 由*资源*集合组成。IAM 用户是一种资源。Amazon S3 存储桶是一种资源。在使用 AWS API、AWS CLI 或 AWS 管理控制台 执行操作（如创建用户）时，您将为该操作发送一个*请求*。该请求会指定操作、资源、*主体实体*（用户或角色）、*主体账户*以及所需的任何请求信息。所有这些信息提供了*上下文*。

然后，AWS 会检查是否对您（主体）进行身份验证（登录）和授权（具有权限），以便对指定的资源执行指定的操作。在授权期间，AWS 检查应用于请求上下文的所有策略。大多数策略作为 [JSON 文档](access_policies.md#access_policies-json)存储在 AWS 中，并指定主体实体的权限。有关策略类型和用法的更多信息，请参阅[AWS Identity and Access Management 中的策略和权限](access_policies.md)。

只有在策略允许请求的每个部分时，AWS 才会授权该请求。要查看该过程的图表，请参阅[IAM 的工作原理](intro-structure.md)。有关 AWS 如何确定是否允许请求的详细信息，请参阅[策略评估逻辑](reference_policies_evaluation-logic.md)。

在创建 IAM policy 时，您可以控制对以下内容的访问：
+ **[主体](#access_controlling-principals)** - 控制允许发出请求的人员（[主体](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?icmpid=docs_homepage_addtlrcs#principal)）执行哪些操作。
+ **[IAM 身份](#access_controlling-identities)** – 控制可访问哪些 IAM 身份（IAM 组、用户和角色）以及如何进行访问。
+ **[IAM policy](#access_controlling-policies)** - 控制哪些用户可以创建、编辑和删除客户管理型策略，以及哪些用户可以附加和分离所有托管策略。
+ **[AWS 资源](#access_controlling-resources)** - 控制哪些用户有权使用基于身份的策略或基于资源的策略访问资源。
+ **[AWS 账户](#access_controlling-principal-accounts)** - 控制是否仅允许特定账户的成员发出请求。

通过使用策略，您可以指定哪些用户有权访问 AWS 资源，以及他们可以对这些资源执行哪些操作。每个 IAM 用户在一开始都没有许可。换而言之，在默认状态下，用户什么都不能做，甚至不能查看自己的访问密钥。要为用户授予执行某些操作的权限，您可以为用户添加权限 (即，将策略附加到用户)。或者，您可以将用户添加到具有所需权限的用户组中。

例如，您可能授予用户列出自己的访问密钥的许可。您可能扩展该许可，并让每位用户创建、更新和删除自己的密钥。

当您授予一个用户组许可时，用户组内的全部用户都会获得那些许可。例如，您可以向 Administrators 用户组授予对任意 AWS 账户 资源执行任意 IAM 操作的权限。另一个示例：您可以授予 Managers 用户组描述 AWS 账户 的 Amazon EC2 实例的权限。

有关如何向用户、IAM 组和角色委派基本权限的信息，请参阅[访问 IAM 资源所需的权限](access_permissions-required.md)。有关说明基本权限的更多策略示例，请参阅[管理 IAM 资源的策略示例](id_credentials_delegate-permissions_examples.md)。

## 控制 主体进行的访问
<a name="access_controlling-principals"></a>

您可以使用策略控制允许发出请求的人员（主体）执行哪些操作。为此，您必须将基于身份的策略附加到此人的身份（用户、用户组或角色）。您还可以使用[权限边界](access_policies_boundaries.md)以设置实体（用户或角色）可以拥有的最大权限。

例如，假定您希望用户 Zhang Wei 可以完全访问 CloudWatch、Amazon DynamoDB、Amazon EC2 和 Amazon S3。您可以创建两个不同的策略，以便以后其他用户需要一组权限时为其分配其中的一个策略。或者，您可以将这两个权限放在单个策略中，然后将该策略附加到名为 Zhang Wei 的 IAM 用户。您还可以将一个策略附加到 Zhang 所属的用户组，或者附加到 Zhang 可以担任的角色。因此，在 Zhang 查看 S3 存储桶内容时，将允许他的请求。如果他尝试创建新的 IAM 用户，则会拒绝他的请求，因为他没有权限。

您可以对 Zhang 使用权限边界，以确保他无法访问 `amzn-s3-demo-bucket1` S3 存储桶。为此，请确定您希望 Zhang 具有的*最大*权限。在这种情况下，您使用权限策略控制他执行的操作。在这里，您只希望他无法访问机密存储桶。因此，您使用以下策略来定义 Zhang 的边界，以允许对 Amazon S3 和一些其他服务执行所有 AWS 操作，但拒绝访问 `amzn-s3-demo-bucket1` S3 存储桶。由于权限边界不允许任何 IAM 操作，它可防止 Zhang 删除他的（或任何人的）边界。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "PermissionsBoundarySomeServices",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:*",
                "dynamodb:*",
                "ec2:*",
                "s3:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "PermissionsBoundaryNoConfidentialBucket",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket1",
                "arn:aws:s3:::amzn-s3-demo-bucket1/*"
            ]
        }
    ]
}
```

------

当您分配此类策略作为用户的权限边界时，请记住，它不授予任何权限。它设置基于身份的策略可以授予 IAM 实体的最大权限。有关权限边界的更多信息，请参阅[IAM 实体的权限边界](access_policies_boundaries.md)。

有关上述过程的详细信息，请参阅以下资源：
+ 要了解创建可附加到主体的 IAM policy 的更多信息，请参阅 [使用客户管理型策略定义自定义 IAM 权限](access_policies_create.md)。
+ 要了解如何将 IAM policy 附加到主体，请参阅 [添加和删除 IAM 身份权限](access_policies_manage-attach-detach.md)。
+ 要查看授予 EC2 完全访问权限的示例策略，请参阅[Amazon EC2：允许以编程方式和使用控制台在特定区域进行不受限制的 EC2 访问](reference_policies_examples_ec2_region.md)。
+ 要允许对 S3 存储桶进行只读访问，请使用以下示例策略的前两个语句：[Amazon S3：允许以编程方式和在控制台中对 S3 存储桶中的对象进行读写访问](reference_policies_examples_s3_rw-bucket-console.md)。
+ 要查看允许用户设置凭证（如控制台密码、编程访问密钥和 MFA 设备）的示例策略，请参阅 [AWS：允许使用 MFA 完成身份验证的 IAM 用户在“安全凭证”页面上管理自己的凭证。](reference_policies_examples_aws_my-sec-creds-self-manage.md)。

## 控制对身份的访问
<a name="access_controlling-identities"></a>

您可以通过用户组创建附加到所有用户的 IAM policy，以使用该策略控制您的用户可对某个身份执行哪些操作。为此，请创建一个策略以限制可对某个身份执行哪些操作，以及哪些用户可以访问该身份。

例如，您可以创建一个名为 **AllUsers** 的组，然后将该用户组附加到所有用户。在创建该用户组时，您可以如前一节所述，为所有用户授予访问权限以设置其凭证。然后，您可以创建一个策略，以便拒绝访问以禁止更改该用户组，除非在策略条件中包含用户名。但是，该策略部分仅拒绝列出的用户以外的任何人进行访问。您还必须包含相应的权限，以允许该用户组中的所有用户执行所有用户组管理操作。最后，您将该策略附加到该用户组，以便将其应用于所有用户。因此，在策略中未指定的用户尝试更改该用户组时，将拒绝请求。

**使用可视化编辑器创建该策略**

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

1. 在左侧的导航窗格中，选择**策略**。

   如果这是您首次选择**策略**，则会显示**欢迎访问托管式策略**页面。选择**开始使用**。

1. 选择**创建策略**。

1. 在**策略编辑器**部分，选择**可视化**选项。

1. 在**选择服务**中，选择 **IAM**。

1. 在**允许的操作**中，在搜索框中键入 **group**。可视化编辑器将显示包含 `group` 一词的所有 IAM 操作。选中所有复选框。

1. 选择**资源**以指定您的策略的资源。根据选择的操作，您应该会看到**组**、和**用户**资源类型。
   + **组** - 选择**添加 ARN**。对于**资源位置**，选择**任何账户**选项。选中**任何具有路径的组名称**复选框，然后键入用户组名称 **AllUsers**。然后选择**添加 ARN**。
   + **用户** – 选中**此账户中的任何项**旁边的复选框。

   您选择的操作之一 (`ListGroups`) 不支持使用特定的资源。您不需要为该操作选择**所有资源**。在 **JSON** 编辑器中保存或查看您的策略时，您可以看到 IAM 自动创建新的权限块，以便为所有资源授予该操作权限。

1. 要添加其他权限块，请选择**添加更多权限**。

1. 选择**选择服务**，然后选择 **IAM**。

1. 选择**允许的操作**，然后选择**切换到拒绝权限**。在执行该操作时，将使用整个块拒绝权限。

1. 在搜索框中，键入 **group**。可视化编辑器将显示包含 `group` 一词的所有 IAM 操作。选中以下操作旁边的复选框：
   + **CreateGroup**
   + **DeleteGroup**
   + **RemoveUserFromGroup**
   + **AttachGroupPolicy**
   + **DeleteGroupPolicy**
   + **DetachGroupPolicy**
   + **PutGroupPolicy**
   + **UpdateGroup**

1. 选择**资源**以指定您的策略的资源。根据选择的操作，将会看到 **group** 资源类型。选择**添加 ARN**。对于**资源位置**，选择**任何账户**选项。对于**任何具有路径的组名称**，键入用户组名称 **AllUsers**。然后选择**添加 ARN**。

1. 选择**请求条件 – *可选***，然后选择**添加其他条件**。使用以下值填写表单：
   + **条件密钥** – 选择 **aws:username**
   + **Qualifier**（限定符）- 选择 **Default**（默认值）
   + **Operator**（运算符）- 选择 **StringNotEquals**
   + **值** – 键入 **srodriguez**，然后选择 **添加**以添加另一个值。键入 **mjackson**，然后选择**添加**以添加另一个值。键入 **adesai**，然后选择**添加条件**。

   在列表中不包含进行调用的用户时，该条件确保拒绝访问指定的用户组管理操作。由于这会显式拒绝权限，它将覆盖前面允许这些用户调用这些操作的块。不会拒绝列表中的用户进行访问，并在第一个权限块中为他们授予权限，因此，他们可以完全管理该用户组。

1. 完成后，选择**下一步**。
**注意**  
您可以随时在**可视化**和 **JSON** 编辑器选项卡之间切换。不过，如果您进行更改或在**可视化**编辑器选项中选择**下一步**，IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息，请参阅 [调整策略结构](troubleshoot_policies.md#troubleshoot_viseditor-restructure)。

1. 在**查看并创建**页面上，对于**策略名称**，键入 **LimitAllUserGroupManagement**。对于**描述**，请键入 **Allows all users read-only access to a specific user group, and allows only specific users access to make changes to the user group**。查看**此策略中定义的权限**，确保您授予了所需的权限。然后，选择**创建策略**以保存新策略。

1. 将策略附加到您的用户组。有关更多信息，请参阅 [添加和删除 IAM 身份权限](access_policies_manage-attach-detach.md)。

或者，您也可以使用该示例 JSON 策略文档创建相同的策略。要查看该 JSON 策略，请参阅 [IAM：允许特定的 IAM 用户以编程方式和在控制台中管理组](reference_policies_examples_iam_users-manage-group.md)。有关使用 JSON 文档创建策略的详细说明，请参阅[使用 JSON 编辑器创建策略](access_policies_create-console.md#access_policies_create-json-editor)。

## 控制对策略的访问
<a name="access_controlling-policies"></a>

您可以控制您的用户如何应用 AWS 托管策略。为此，请将该策略附加到您的所有用户。理想情况下，您可以使用用户组执行该操作。

例如，您可能会创建一个策略允许用户仅将 [IAMUserChangePassword](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/IAMUserChangePassword) 和 [PowerUserAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/job-function/PowerUserAccess) AWS 托管策略附加到新的 IAM 用户、用户组或角色。

对于客户托管策略，您可以控制哪些用户可以创建、更新和删除这些策略。您可以控制哪些用户可以将策略附加到委托人实体（IAM 组、用户和角色）以及将策略从主体实体中分离。还可以控制用户可以对哪些实体附加或分离哪些策略。

例如，您可以为账户管理员授予权限以创建、更新和删除策略。然后，您可以为小组负责人或其他有限管理员授予权限，以便将这些策略附加到该有限管理员管理的主体实体以及将这些策略从这些主体实体中分离。

有关更多信息，请参阅以下资源：
+ 要了解创建可附加到主体的 IAM policy 的更多信息，请参阅 [使用客户管理型策略定义自定义 IAM 权限](access_policies_create.md)。
+ 要了解如何将 IAM policy 附加到主体，请参阅 [添加和删除 IAM 身份权限](access_policies_manage-attach-detach.md)。
+ 要查看限制使用托管策略的示例策略，请参阅[IAM：对可应用于 IAM 用户、组或角色的托管策略加以限制](reference_policies_examples_iam_limit-managed.md)。

### 控制创建、更新和删除客户托管策略的权限
<a name="policies-controlling-access-create-update-delete"></a>

您可以使用 [IAM policy](access_policies.md) 控制谁有权在您的 AWS 账户 中创建、更新和删除客户管理型策略。以下列表包含与创建、更新和删除策略或策略版本直接相关的 API 操作：
+ [CreatePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html)
+ [CreatePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicyVersion.html)
+ [DeletePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicy.html)
+ [DeletePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicyVersion.html)
+ [SetDefaultPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SetDefaultPolicyVersion.html)

上述列表中的 API 操作对应于可使用 IAM policy 允许或拒绝的操作，即，您可以授予的权限。

考虑以下示例策略。它允许用户在 AWS 账户 中创建、更新（即创建新的策略版本）、删除所有客户管理型策略以及设置这些策略的默认版本。该示例策略还允许该用户列出策略并获取策略。要了解如何使用该示例 JSON 策略文档创建策略，请参阅 [使用 JSON 编辑器创建策略](access_policies_create-console.md#access_policies_create-json-editor)。

**Example 允许创建、更新、删除、列出、获取所有策略以及设置这些策略的默认版本的示例策略**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "iam:CreatePolicy",
      "iam:CreatePolicyVersion",
      "iam:DeletePolicy",
      "iam:DeletePolicyVersion",
      "iam:GetPolicy",
      "iam:GetPolicyVersion",
      "iam:ListPolicies",
      "iam:ListPolicyVersions",
      "iam:SetDefaultPolicyVersion"
    ],
    "Resource": "*"
  }
}
```

您可以创建限制使用这些 API 操作的策略以仅影响指定的托管策略。例如，您可能希望允许用户设置默认版本和删除策略版本，但是仅允许针对特定客户托管策略执行这些操作。通过在授予这些权限的策略的 `Resource` 元素中指定策略 ARN，可以实现此目的。

下例所示的策略允许用户删除策略版本和设置默认版本。但是，仅包含路径 /TEAM-A/ 的客户托管策略允许这些操作。客户托管策略 ARN 在策略的 `Resource` 元素中指定。（在此示例中，ARN 包含一个路径和一个通配符，因而与包含路径 /TEAM-A/ 的所有客户托管策略匹配）。要了解如何使用该示例 JSON 策略文档创建策略，请参阅 [使用 JSON 编辑器创建策略](access_policies_create-console.md#access_policies_create-json-editor)。

有关在客户托管策略名称中使用路径的更多信息，请参阅[易记名称和路径](reference_identifiers.md#identifiers-friendly-names)。

**Example 仅允许针对特定策略删除策略版本和设置默认版本的示例策略**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:DeletePolicyVersion",
            "iam:SetDefaultPolicyVersion"
        ],
        "Resource": "arn:aws:iam::111122223333:policy/TEAM-A/*"
    }
}
```

### 控制附加和分离托管策略的权限
<a name="policies-controlling-access-attach-detach"></a>

您还可以使用 IAM policy 仅允许用户使用特定的托管策略。实际上，就是可以控制允许用户向其他主体实体授予的权限。

以下列表显示与将托管策略附加到主体实体以及从中分离直接相关的 API 操作：
+  [AttachGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachGroupPolicy.html)
+ [AttachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html)
+ [AttachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachUserPolicy.html)
+ [DetachGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachGroupPolicy.html)
+ [DetachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachRolePolicy.html)
+ [DetachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html)

您可以创建限制使用这些 API 操作的策略以仅影响指定的特定托管策略和/或主体实体。例如，您可能希望允许用户附加托管策略，但是只能附加您指定的托管策略。或者，您可能希望允许用户附加托管策略，但是只能附加到您指定的主体实体。

以下示例策略仅允许用户将托管策略附加到包含路径 /TEAM-A/ 的 IAM 组和角色。用户组和角色 ARN 是在策略的 `Resource` 元素中指定的。（在此示例中，ARN 包含一个路径和一个通配符，因而与包含路径 /TEAM-A/ 的所有 IAM 组和角色匹配）。要了解如何使用该示例 JSON 策略文档创建策略，请参阅 [使用 JSON 编辑器创建策略](access_policies_create-console.md#access_policies_create-json-editor)。

**Example 仅允许将托管策略附加到特定用户组或角色的示例策略**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:AttachGroupPolicy",
            "iam:AttachRolePolicy"
        ],
        "Resource": [
            "arn:aws:iam::111122223333:group/TEAM-A/*",
            "arn:aws:iam::111122223333:role/TEAM-A/*"
        ]
    }
}
```

您可以进一步限制前面示例中的操作，使之仅影响特定的策略。即，通过向策略添加条件，可以控制允许用户附加到其他主体实体的权限。

以下示例中的条件可确保仅当附加的策略与指定策略之一匹配时才允许 `AttachGroupPolicy` 和 `AttachRolePolicy` 权限。该条件使用 `iam:PolicyARN` [条件键](reference_policies_elements_condition.md)确定允许附加的策略。以下示例策略扩展前一示例。该示例仅允许用户将包含路径 /TEAM-A/ 的托管策略附加到包含路径 /TEAM-A/ 的 IAM 组和角色。要了解如何使用该示例 JSON 策略文档创建策略，请参阅 [使用 JSON 编辑器创建策略](access_policies_create-console.md#access_policies_create-json-editor)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:AttachGroupPolicy",
            "iam:AttachRolePolicy"
        ],
        "Resource": [
            "arn:aws:iam::111122223333:group/TEAM-A/*",
            "arn:aws:iam::111122223333:role/TEAM-A/*"
        ],
        "Condition": {
            "ArnLike": {
                "iam:PolicyARN": "arn:aws:iam::111122223333:policy/TEAM-A/*"
            }
        }
    }
}
```

------

此策略使用 `ArnLike` 条件运算符，但也可以使用 `ArnEquals` 条件运算符，因为这两个条件运算符的行为相同。有关 `ArnLike` 和 `ArnEquals` 的更多信息，请参阅[Amazon Resource Name (ARN) 条件运算符](reference_policies_elements_condition_operators.md#Conditions_ARN)策略元素参考* 的*条件类型* 部分中的*。

例如，您可以限制使用操作以仅涉及指定的托管策略。通过在授予这些权限的策略的 `Condition` 元素中指定策略 ARN，可以实现此目的。例如，指定客户托管策略的 ARN：

```
"Condition": {"ArnEquals": 
  {"iam:PolicyARN": "arn:aws:iam::123456789012:policy/POLICY-NAME"}
}
```

您还可以在策略的 `Condition` 元素中指定 AWS; 托管策略的 ARN。AWS 托管策略的 ARN 在策略 ARN 中使用特殊别名 `aws` 而不是账户 ID，如此示例所示：

```
"Condition": {"ArnEquals": 
  {"iam:PolicyARN": "arn:aws:iam::aws:policy/AmazonEC2FullAccess"}
}
```

## 控制对资源的访问
<a name="access_controlling-resources"></a>

您可以使用基于身份的策略或基于资源的策略控制对资源的访问。在基于身份的策略中，您将策略附加到一个身份并指定该身份可以访问哪些资源。在基于资源的策略中，您将策略附加到要控制的资源。在该策略中，您指定哪些主体可以访问该资源。有关这两种类型的策略的更多信息，请参阅[基于身份的策略和基于资源的策略](access_policies_identity-vs-resource.md)。

有关更多信息，请参阅以下资源：
+ 要了解创建可附加到主体的 IAM policy 的更多信息，请参阅 [使用客户管理型策略定义自定义 IAM 权限](access_policies_create.md)。
+ 要了解如何将 IAM policy 附加到主体，请参阅 [添加和删除 IAM 身份权限](access_policies_manage-attach-detach.md)。
+ Amazon S3 支持在存储桶上使用基于资源的策略。有关更多信息，请参阅[存储桶策略示例](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html)。
<a name="NoDefaultPermissions"></a>
**资源创建者不会自动拥有许可**  
如果使用 AWS 账户根用户凭证登录，您有权对属于该账户的资源执行任何操作。但是，对 IAM 用户来说并非如此。IAM 用户可以获得创建资源的权限，但即使对于该资源，该用户权限也仅限于明确授予的内容。这意味着，您不会仅仅因为创建资源 (如 IAM 角色) 而自动具有编辑或删除该角色的权限。此外，账户所有者或有权管理您的权限的其他用户可以随时撤消您的权限。

## 控制对特定账户中的主体的访问
<a name="access_controlling-principal-accounts"></a>

您可以直接向自己账户中的 IAM 用户授予对您的资源的访问权限。如果其他账户中的用户需要访问您的资源，您可以创建 IAM 角色。角色是包含权限但不与特定用户关联的实体。然后，其他账户中的用户可以担任该角色，并根据您为该角色分配的权限访问资源。有关更多信息，请参阅 [在您拥有的其他 AWS 账户 中 IAM 用户的访问权限](id_roles_common-scenarios_aws-accounts.md)。

**注意**  
有些服务支持基于资源的策略，如 [基于身份的策略和基于资源的策略](access_policies_identity-vs-resource.md) 中所述（例如 Amazon S3、Amazon SNS 和 Amazon SQS）。对于这些服务，使用角色的替代方法是将策略附加到要共享的资源（存储桶、主题或队列）。基于资源的策略可以指定具有访问资源权限的 AWS 账户。

# 使用标签控制对 IAM 用户和角色的访问以及他们进行的访问
<a name="access_iam-tags"></a>

可以使用以下部分中的信息控制谁可以访问您的 IAM 用户和角色以及您的用户和角色可以访问哪些资源。有关控制对其他 AWS 资源（包括其他 IAM 资源）的访问的更多一般信息和示例，请参阅 [AWS Identity and Access Management 资源的标签](id_tags.md)。

**注意**  
有关标签键和标签键值区分大小写的详细信息，请参阅 [Case sensitivity](id_tags.md#case-sensitivity)。

可以将标签附加到 IAM *资源*，在*请求*中传递标签，或者将标签附加到发出请求的*主体*。IAM 用户或角色可以同时是资源和主体。例如，您可以编写一个策略以允许用户列出用户的组。只有在发出请求的用户（主体）具有与他们尝试查看的用户相同的 `project=blue` 标签时，才允许执行该操作。在该示例中，用户可以查看任何用户（包括他们自己）的组成员资格，只要他们处理的是同一个项目。

要基于标签控制访问，您需要在策略的[条件元素](reference_policies_elements_condition.md)中提供标签信息。在创建 IAM policy 时，您可以使用 IAM 标签和关联的标签条件键控制对任何以下内容的访问：
+ **[Resource](access_tags.md#access_tags_control-resources)**（资源）- 根据标签控制对用户或角色资源的访问。为此，请使用 **aws:ResourceTag/*key-name*** 条件键指定必须将哪个标签键值对附加到资源。有关更多信息，请参阅 [控制对 AWS 资源的访问](access_tags.md#access_tags_control-resources)。
+ **[请求](access_tags.md#access_tags_control-requests)** – 控制可以在 IAM 请求中传递什么标签。为此，请使用 **aws:RequestTag/*key-name*** 条件键来指定可在 IAM 用户或角色中添加、更改或删除的标签。对于 IAM 资源和其他 AWS 资源，将按相同的方式使用该键。有关更多信息，请参阅 [在 AWS 请求期间控制访问](access_tags.md#access_tags_control-requests)。
+ **[主体](#access_iam-tags_control-principals)** - 根据附加到发出请求的人员（主体）的 IAM 用户或角色的标签，控制允许该人员执行哪些操作。为此，请使用 **aws:PrincipalTag/*key-name*** 条件键指定在允许请求之前必须将哪些标签附加到 IAM 用户或角色。
+ **[授权过程的任何部分](#access_iam-tags_control-tag-keys)** – 使用 **aws:TagKeys** 条件键来控制是否可以在请求中或通过主体使用特定的标签键。在这种情况下，键值无关紧要。对于 IAM 和其他 AWS 服务，该键的行为是类似的。不过，在 IAM 中标记用户时，这还会控制主体是否可以向任何服务发出请求。有关更多信息，请参阅 [根据标签键控制访问](access_tags.md#access_tags_control-tag-keys)。

您可以使用可视化编辑器或 JSON 创建 IAM policy，也可以导入现有的托管策略以创建该策略。有关更多信息，请参阅 [使用客户管理型策略定义自定义 IAM 权限](access_policies_create.md)。

**注意**  
您也可以在代入 IAM 角色或联合用户身份时传递[会话标签](id_session-tags.md)。这仅对会话的长度有效。

## 控制 IAM 主体进行的访问
<a name="access_iam-tags_control-principals"></a>

您可以根据附加到主体身份的标签来控制允许该人员执行哪些操作。

此示例显示了您可以如何创建基于身份的策略，以允许此账户中的任何用户查看任何用户（包括他们自己）的组成员资格，只要他们处理的是同一个项目。只有在用户的资源标签和主体的标签具有相同的标签键 `project` 值时，才允许执行该操作。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "iam:ListGroupsForUser",
            "Resource": "arn:aws:iam::111222333444:user/*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/project": "${aws:PrincipalTag/project}"}
            }
        }]
}
```

------

## 根据标签键控制访问
<a name="access_iam-tags_control-tag-keys"></a>

您可以在 IAM policy 中使用标签来控制是否可以在请求中或通过主体使用特定的标签键。

此示例说明如何创建基于身份的策略，以允许仅从用户删除带有 `temporary` 密钥的标签。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Action": "iam:UntagUser",
        "Resource": "*",
        "Condition": {"ForAllValues:StringEquals": {"aws:TagKeys": ["temporary"]}}
    }]
}
```

------

# 使用标签控制对 AWS 资源的访问
<a name="access_tags"></a>

您可以使用标签以控制对支持标记的 AWS 资源（包括 IAM 资源）的访问。您可以标记 IAM 用户和角色以控制他们可以访问哪些内容。要了解如何标记 IAM 用户和角色，请参阅 [AWS Identity and Access Management 资源的标签](id_tags.md)。此外，您还可以控制对以下 IAM 资源的访问：客户托管策略、IAM 身份提供程序、实例配置文件、服务器证书和虚拟 MFA 设备。对于创建策略，以允许具有主体标签的 IAM 角色访问具有匹配标签的资源并测试该策略，有关教程，请参阅 [IAM 教程：根据标签定义访问 AWS 资源的权限](tutorial_attribute-based-access-control.md)。可以使用以下部分中的信息以控制对其他 AWS 资源（包括 IAM 资源）的访问，而无需标记 IAM 用户或角色。

在使用标签控制对 AWS 资源的访问之前，您必须了解 AWS 如何授予访问权限。AWS 由一组*资源* 组成。Amazon EC2 实例是一种资源。Amazon S3 存储桶是一种资源。您可以使用 AWS API、AWS CLI 或 AWS 管理控制台 执行操作，例如，在 Amazon S3 中创建存储桶。在执行操作时，您将发送该操作的*请求*。您的请求指定操作、资源、*主体实体*（用户或角色)、*主体账户* 以及所需的任何请求信息。所有这些信息提供了*上下文*。

AWS然后， 检查是否对您（主体实体）进行身份验证（登录）和授权（具有权限），以便对指定的资源执行指定的操作。在授权期间，AWS 检查应用于请求上下文的所有策略。大多数策略作为 [JSON 文档](access_policies.md#access_policies-json)存储在 AWS 中，并指定主体实体的权限。有关策略类型和用法的更多信息，请参阅[AWS Identity and Access Management 中的策略和权限](access_policies.md)。

只有在策略允许请求的每个部分时，AWS 才会授权该请求。要查看示意图和详细了解 IAM 基础设施，请参阅 [IAM 的工作原理](intro-structure.md)。有关 IAM 如何确定是否允许请求的详细信息，请参阅 [策略评估逻辑](reference_policies_evaluation-logic.md)。

标签是此过程中的另一个考虑事项，因为标签可以附加到*资源*，也可以从*请求* 传入支持标签的服务。要基于标签控制访问，您需要在策略的[条件元素](reference_policies_elements_condition.md)中提供标签信息。要了解 AWS 服务是否支持使用标签控制访问权限，请参阅 [使用 IAM 的 AWS 服务](reference_aws-services-that-work-with-iam.md) 并查找在 **ABAC** 列中为**是**的服务。选择服务名称以查看该服务的授权和访问控制文档。

然后，您可以创建一个 IAM policy，以根据资源的标签允许或拒绝访问资源。在该策略中，您可以使用标签条件键以控制对任何以下内容的访问：
+ **[Resource](#access_tags_control-resources)**（资源）- 基于 AWS 服务资源上的标签控制对这些资源的访问。为此，请使用 **aws:ResourceTag/*key-name*** 条件键根据附加到资源的标签确定是否允许访问资源。
+ **[Request](#access_tags_control-requests)**（请求）- 控制可以在请求中传递哪些标签。为此，请使用 **aws:RequestTag/*key-name*** 条件键，指定可以在请求中传递的标签键值对以用于标记 AWS 资源。
+ **[授权过程的任何部分](#access_tags_control-tag-keys)** - 使用 **aws:TagKeys** 条件键来控制是否可以在请求中使用特定的标签键。

您可以通过可视化方式创建 IAM policy，也可以使用 JSON，或通过导入现有托管策略来创建。有关更多信息，请参阅 [使用客户管理型策略定义自定义 IAM 权限](access_policies_create.md)。

**注意**  
如果用户有权使用创建资源的操作，则某些服务允许用户在创建资源时指定标签。

## 控制对 AWS 资源的访问
<a name="access_tags_control-resources"></a>

您可以使用 IAM policy 中的条件根据 AWS 资源上的标签控制对该资源的访问。您可以使用全局 `aws:ResourceTag/tag-key` 条件键或服务特定的键执行该操作。某些服务仅支持此键的服务特定版本，而不支持全局版本。

**警告**  
请勿试图通过标记角色然后在带有 `iam:PassRole` 操作的策略中使用 `ResourceTag` 条件键来控制谁可以传递角色。这种方法没有可靠的结果。有关将角色传递给服务所需的权限的更多信息，请参阅[向用户授予权限以将角色传递给 AWS 服务](id_roles_use_passrole.md)。

 此示例说明如何创建允许启动或停止 Amazon EC2 实例的基于身份的策略。只有在实例标签 `Owner` 具有该用户的用户名值时，才允许执行这些操作。此策略定义了程序访问和控制台访问的权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"}
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances",
            "Resource": "*"
        }
    ]
}
```

------

您可以将该策略附加到您账户中的 IAM 用户。如果名为 `richard` 的用户尝试启动 Amazon EC2 实例，则实例必须标记为 `Owner=richard` 或 `owner=richard`。否则，他将被拒绝访问。标签键 `Owner` 同时匹配 `owner` 和 `Owner`，因为条件键名称不区分大小写。有关更多信息，请参阅 [IAM JSON 策略元素：Condition](reference_policies_elements_condition.md)。

此示例说明了如何创建基于身份的策略，该策略使用了资源 ARN 中的 `team` 主体标签。该策略授予删除 Amazon Simple Queue Service 队列的权限，但前提是队列名称以团队名称开头，后跟 `-queue`。例如，如果 `qa` 是 `team` 主体标签的团队名称，则队列名称为 `qa-queue`。

------
#### [ JSON ]

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": {
        "Sid": "AllQueueActions",
        "Effect": "Allow",
        "Action": "sqs:DeleteQueue",
        "Resource": "arn:aws:sqs:us-east-2:111122223333:${aws:PrincipalTag/team}-queue"
      }
}
```

------

## 在 AWS 请求期间控制访问
<a name="access_tags_control-requests"></a>

您可以在 IAM 策略中使用条件以控制可在对 AWS 资源应用标签的请求中传递哪些标签键值对。

此示例说明如何创建允许使用 Amazon EC2 `CreateTags` 操作将标签附加到实例的基于身份的策略。只有在标签包含 `environment` 键和 `preprod` 或 `production` 值时，才能附加标签。如果需要，您可以将 `ForAllValues` 修饰符与 `aws:TagKeys` 条件键一起使用，以指示仅允许在请求中使用 `environment` 键。这将阻止用户包括其他键，例如意外使用 `Environment` 而不是 `environment`。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "ec2:CreateTags",
        "Resource": "arn:aws:ec2:*:*:instance/*",
        "Condition": {
            "StringEquals": {
                "aws:RequestTag/environment": [
                    "preprod",
                    "production"
                ]
            },
            "ForAllValues:StringEquals": {"aws:TagKeys": "environment"}
        }
    }
}
```

------

## 根据标签键控制访问
<a name="access_tags_control-tag-keys"></a>

您可以在 IAM policy 中使用条件来控制是否可以在请求中使用特定标签键。

我们建议，当您使用策略来通过标签控制访问时，应该使用 [`aws:TagKeys` 条件键](reference_policies_condition-keys.md#condition-keys-tagkeys)。支持标签的 AWS 服务可能允许您创建多个只有大小写不同的标签键名称，例如使用 `stack=production` 和 `Stack=test` 标记 Amazon EC2 实例。在策略条件中，键名称不区分大小写。这意味着，如果您在策略的条件元素中指定 `"aws:ResourceTag/TagKey1": "Value1"`，则条件将匹配名为 `TagKey1` 或 `tagkey1` 的资源标签键，但不会同时匹配两者。要防止只有键的大小写形式不同的重复标签，请使用 `aws:TagKeys` 条件来定义用户可以应用的标签键，或使用带有 AWS Organizations 的标签策略。有关更多信息，请参阅*《AWS Organizations 用户指南》*中的[标签策略](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html)。

此示例说明了如何创建允许创建 Secrets Manager 密钥及将其贴标签的基于身份的策略，但仅限于标签密钥 `environment` 或 `cost-center`。`Null` 条件可确保在请求中没有标签时，条件的计算结果为 `false`。

```
{
        "Effect": "Allow",
        "Action": [
            "secretsmanager:CreateSecret",
            "secretsmanager:TagResource"
        ],
        "Resource": "*",
        "Condition": {
            "Null": {
                "aws:TagKeys": "false"
            },
            "ForAllValues:StringEquals": {
                "aws:TagKeys": [
                    "environment",
                    "cost-center"
                ]
            }
        }
}
```

# IAM 中的跨账户资源访问
<a name="access_policies-cross-account-resource-access"></a>

对于一些 AWS 服务，您可以使用 IAM 授予对资源的跨账户访问权限。为此，您可以将资源策略直接附加到要共享的资源，也可以将角色用作代理。

要直接共享资源，要共享的资源必须支持[基于资源的策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html#intro-access-resource-based-policies)。与针对角色的基于身份的策略不同，基于资源的策略指定谁（哪个主体）可以访问该资源。

如果要访问另一个账户中不支持基于资源的策略的资源，请使用角色作为代理。

有关这些策略类型之间差异的详细信息，请参阅 [基于身份的策略和基于资源的策略](access_policies_identity-vs-resource.md)。

**注意**  
IAM 角色和基于资源的策略仅在单个分区内跨账户委派访问权限。例如，假定您在标准 `aws` 分区的美国西部（北加利福尼亚）中有一个账户。您在 `aws-cn` 分区的中国也有一个账户。您不能使用中国账户中基于资源的策略，来允许标准 AWS 账户中用户的访问权限。

## 使用角色进行跨账户访问
<a name="access_policies-cross-account-using-roles"></a>

并非所有的 AWS 服务都支持基于资源的策略。对于这些服务，在提供对多个服务的跨账户访问权限时，您可以使用跨账户 IAM 角色来集中管理权限。跨账户 IAM 角色是一种 IAM 角色，包含允许其他 AWS 账户中的 IAM 主体担任该角色的[信任策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#term_trust-policy)。简而言之，您可以在一个 AWS 账户中创建一个角色，将特定权限委派给另一个 AWS 账户。

有关将策略附加到 IAM 身份的信息，请参阅 [管理 IAM 策略](access_policies_manage.md)。

**注意**  
当主体切换为某个角色，临时使用该角色的权限时，他们会放弃其原始权限，并获得分配给他们所担任之角色的权限。

让我们了解一下适用于需要访问客户账户的 APN 合作伙伴软件的整体流程。

1. 客户使用策略创建账户中的 IAM 角色，该角色允许访问 APN 合作伙伴所需的 Amazon S3 资源。在本示例中，角色名称为 `APNPartner`。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "s3:*",
               "Resource": [
                   "arn:aws:s3:::bucket-name"
               ]
           }
       ]
   }
   ```

------

1. 然后，客户通过在 `APNPartner` 角色的 [信任策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html) 中提供 APN 合作伙伴的 AWS 账户 ID，指定合作伙伴的 AWS 账户可以代入该角色。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/APN-user-name"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. 客户将角色的 Amazon 资源名称（ARN）提供给 APN 合作伙伴。ARN 是角色的完全限定名称。

   ```
   arn:aws:iam::Customer-Account-ID:role/APNPartner
   ```
**注意**  
我们建议在多租户情况下使用外部 ID。有关更多信息，请参阅 [访问第三方拥有的 AWS 账户](id_roles_common-scenarios_third-party.md)。

1. 当 APN 合作伙伴的软件需要访问客户的账户时，软件会在 AWS Security Token Service 中使用客户账户中角色的 ARN 调用 [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) API。STS 返回允许软件执行其工作的临时 AWS 凭证。

有关使用角色授予跨账户访问权限的另一个示例，请参阅 [在您拥有的其他 AWS 账户 中 IAM 用户的访问权限](id_roles_common-scenarios_aws-accounts.md)。您也可以关注 [IAM 教程：使用 IAM 角色委托跨 AWS 账户的访问权限](tutorial_cross-account-with-roles.md)。

## 使用基于资源的策略授予跨账户访问权限
<a name="access_policies-cross-account-using-resource-based-policies"></a>

当一个账户使用基于资源的策略通过另一个账户访问资源时，主体仍在可信账户中工作，并且无需放弃其权限来接收角色权限。换言之，主体既能够继续访问可信账户中的资源，又能继续访问信任账户中的资源。这对于向另一个账户中的共享资源复制信息或从中复制信息之类的任务非常有用。

可在基于资源的策略中指定的主体包括账户、IAM 用户、AWS STS 联合用户主体、SAML 联合主体、OIDC 联合主体、IAM 角色、代入角色会话或 AWS 服务。有关更多信息，请参阅[指定主体](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying)。

要了解您信任区域之外的账户（受信任的组织或账户）中的主体是否有权承担您的角色，请参阅[识别与外部实体共享的资源](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html#what-is-access-analyzer-resource-identification)。

以下列表包括一些支持基于资源的策略的 AWS 服务。有关支持向资源而非主体附加权限策略的更多 AWS 服务的完整列表，请参阅 [使用 IAM 的 AWS 服务](reference_aws-services-that-work-with-iam.md) 并寻找具有**基于资源**列中为**是**的服务。
+ **Amazon S3 存储桶** — 策略将附加到存储桶，但该策略可控制对存储桶和存储桶中对象的访问。有关更多信息，请参阅《Amazon Simple Storage Service 用户指南》**中的 [Amazon S3 的存储桶策略](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)。在某些情况下，可能最好使用角色对 Amazon S3 进行跨账户访问。有关更多信息，请参阅 *Amazon Simple Storage Service 用户指南*中的[示例演练](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access.html)。
+ **Amazon Simple Notification Service（Amazon SNS）主题** — 有关更多信息，请转至《Amazon Simple Notification Service 开发人员指南》**中的 [Amazon SNS 访问控制示例](https://docs.aws.amazon.com//sns/latest/dg/sns-access-policy-use-cases.html)。
+ **Amazon Simple Queue Service (Amazon SQS) 队列** — 有关更多信息，请转至 *Amazon Simple Queue Service 开发人员指南*中的[附录：访问策略语言](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-creating-custom-policies.html) 

## 基于资源的策略，用于委派 AWS 权限
<a name="access_policies-cross-account-delegating-resource-based-policies"></a>

如果资源向账户中的主体授予权限，则您随后可将这些权限委派给特定的 IAM 身份。身份是您账户中的用户、用户组或角色。可以通过将策略附加到身份来委派权限。您可以授予拥有资源的账户所允许的最多权限。

**重要**  
在跨账户访问中，主体需要在身份策略**和**基于资源的策略中获得 `Allow`。

假定基于资源的策略允许您账户中的所有主体对资源进行完全管理访问。随后，您可以将完全访问权限、只读访问权限或任何其他部分访问权限委派给 AWS 账户中的主体。或者，如果基于资源的策略仅允许列表权限，则您只能委派列表访问权限。如果您尝试委派的权限超出您的账户所拥有的权限，您的主体将只有列表访问权限。

有关如何做出这些决定的更多信息，请参阅[确定账户内的请求是被允许还是被拒绝](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic_policy-eval-denyallow.html)。

**注意**  
IAM 角色和基于资源的策略仅在单个分区内跨账户委派访问权限。例如，您不能在标准 `aws` 分区的账户与 `aws-cn` 分区中的账户之间添加跨账户访问权限。

例如，假定您管理 `AccountA` 和 `AccountB`。在 AccountA 中，您将有名为 `BucketA` 的 Amazon S3 存储桶。

![\[为 Amazon S3 存储桶创建的基于资源的策略向 AccountA 提供对 AccountB 的权限。\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/access_policies-cross-account.png)


1. 您将基于资源的策略附加到 `BucketA`，这将允许 AccountB 中的所有主体对存储桶中的对象进行完全访问。这些主体可以创建、读取或删除该存储桶中的任何对象。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PrincipalAccess",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:root"
               },
               "Action": "s3:*",
               "Resource": "arn:aws:s3:::BucketA/*"
           }
       ]
   }
   ```

------

   AccountA 通过在基于资源的策略中将 AccountB 指定为主体来向 AccountB 提供对 BucketA 的完全访问权限。这样，AccountB 有权对 BucketA 执行任何操作，AccountB 管理员可向其在 AccountB 中的用户委派访问权限。

   AccountB 根用户具有授予给该账户的所有权限。因此，根用户具有对 BucketA 的完全访问权限。

1. 在 AccountB 中，将策略附加到名为 User2 的 IAM 用户。该策略允许用户对 BucketA 中的对象进行只读访问。这意味着，User2 可以查看对象，但不能创建、编辑或删除对象。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect" : "Allow", 
               "Action" : [ 
                   "s3:Get*", 
                   "s3:List*" ], 
                   "Resource" : "arn:aws:s3:::BucketA/*" 
           } 
       ]
   }
   ```

------

   AccountB 可委派的最大访问级别是授予给账户的访问级别。在此情况下，基于资源的策略授予了对 AccountB 的完全访问权限，但仅向 User2 授予了只读访问权限。

   AccountB 管理员未向 User1 授予访问权限。默认情况下，除非明确授予，否则用户没有任何权限，因此 User1 没有对 BucketA 的访问权限。

IAM 将在主体发出请求时对主体的权限进行评估。因此，如果您使用通配符（\$1）向用户授予对资源的完全访问权限，则主体可以访问您的 AWS 账户有权访问的任何资源。甚至对于您在创建用户策略后添加或获得其访问权的资源也是如此。

在上述示例中，如果 AccountB 已将允许对所有账户中的所有资源进行完全访问的策略附加到 User2，则 User2 将自动具有 AccountB 有权访问的任何资源的访问权限。这包括 BucketA 访问权限以及由 AccountA 中的基于资源的策略授予的对任何其他资源的访问权限。

有关角色的复杂用法（例如，授予对应用程序和服务的访问权限）的更多信息，请参阅 [IAM 角色的常见场景](id_roles_common-scenarios.md)。

**重要**  
仅向信任实体授予访问权限，并提供最低级别的访问权限。只要可信实体是另一个 AWS 账户，就可以授予任何 IAM 主体访问您的资源的权限。可信 AWS 账户可委派的访问权限范围仅限于它所获得的访问权限；它委派的权限不能超出账户本身所获得的访问权限。

有关权限、策略以及用于编写策略的权限策略语言的信息，请参阅[适用于 AWS 资源的 Access Management](access.md)。

# 转发访问会话
<a name="access_forward_access_sessions"></a>

转发访问会话（FAS）是一种 IAM 技术，当 AWS 服务代表您发出请求时，AWS 服务使用该技术来传递您的身份、权限和会话属性。FAS 使用调用 AWS 服务的身份的权限以及 AWS 服务的身份向下游服务发出请求。只有在服务收到需要与其他 AWS 服务或资源交互才能完成的请求后，才会代表 IAM 主体向 AWS 服务发出 FAS 请求。当发出 FAS 请求时：
+ 接收 IAM 主体初始请求的服务会检查 IAM 主体的权限。
+ 接收 FAS 后续请求的服务也会检查同一 IAM 主体的权限。

例如，当使用 [SSE-KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) 加密对象时，Amazon S3 使用 FAS 调用 AWS Key Management Service 以解密该对象。下载 SSE-KMS 加密对象时，名为 **data-reader** 的角色会针对 Amazon S3 在对象上调用 GetObject，并且不会直接调用 AWS KMS。在收到 GetObject 请求并授权 data-reader 后，Amazon S3 会向 AWS KMS 发出 FAS 请求以解密 Amazon S3 对象。当 KMS 收到 FAS 请求时，它会检查角色的权限，并且只有在 data-reader 对 KMS 密钥具有正确权限的情况下才会授权解密请求。对 Amazon S3 和 AWS KMS 的请求均使用角色的权限进行授权，并且只有当 data-reader 同时拥有对 Amazon S3 对象和 AWS KMS 密钥的权限时，请求才会成功。

![\[将 IAM 角色作为主体传递给 Amazon S3，然后传递给 AWS KMS 的流程图。\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/access-fas-example.png)


**注意**  
收到 FAS 请求的服务可以发出其他 FAS 请求。在这种情况下，请求的主体必须拥有对 FAS 调用的所有服务的权限。

## FAS 请求和 IAM policy 条件
<a name="access_fas_policy_conditions"></a>

当发出 FAS 请求时，[aws:CalledVia](reference_policies_condition-keys.md#condition-keys-calledvia)、[aws:CalledViaFirst](reference_policies_condition-keys.md#condition-keys-calledviafirst) 和 [aws:CalledViaLast](reference_policies_condition-keys.md#condition-keys-calledvialast) 条件键将填充启动 FAS 调用的服务的服务主体。每当发出 FAS 请求时，[aws:ViaAWSService](reference_policies_condition-keys.md#condition-keys-viaawsservice) 条件键值都设置为 `true`。在下图中，直接向 CloudFormation 发出的请求未设置任何 `aws:CalledVia` 或 `aws:ViaAWSService` 条件键。当 CloudFormation 和 DynamoDB 代表角色发出下游 FAS 请求时，会填充这些条件键的值。

![\[将 IAM 角色作为主体传递给 CloudFormation，然后将条件键值传递给 DynamoDB 和 AWS KMS 的流程图。\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/access-fas-example2.png)


要在会被具有条件键测试源 IP 地址或源 VPC 的拒绝策略声明拒绝的情况下允许发出 FAS 请求，您必须使用条件键在拒绝策略中为 FAS 请求提供例外。使用 `aws:ViaAWSService` 条件键可以对所有 FAS 请求执行此操作。要仅允许特定 AWS 服务发出 FAS 请求，请使用 `aws:CalledVia`。

**重要**  
在通过 VPC 端点发出初始请求后发出 FAS 请求时，来自初始请求的 `aws:SourceVpce`、`aws:SourceVpc` 和 `aws:VpcSourceIp` 的条件键值不用于 FAS 请求中。使用 `aws:VPCSourceIP` 或 `aws:SourceVPCE` 编写策略以有条件地授予访问权限时，还必须使用 `aws:ViaAWSService` 或 `aws:CalledVia` 允许 FAS 请求。如果在公共 AWS 服务端点收到初始请求后发出 FAS 请求，则后续的 FAS 请求将使用相同的 `aws:SourceIP` 条件键值发出。

## 示例：允许 Amazon S3 从 VPC 或通过 FAS 进行访问
<a name="access_fas_example"></a>

在以下 IAM policy 示例中，只有当 Amazon S3 GetObject 和 Athena 请求来自附加到 *example\$1vpc* 的 VPC 端点，或者是 Athena 发出的 FAS 请求时，这些请求才可以被允许。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "OnlyAllowMyIPs",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject*",
        "athena:StartQueryExecution",
        "athena:GetQueryResults",
        "athena:GetWorkGroup",
        "athena:StopQueryExecution",
        "athena:GetQueryExecution"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceVPC": [
          "vpc-111bbb22"
          ]
        }
      }
    },
    {
      "Sid": "OnlyAllowFAS",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject*"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:CalledVia": "athena.amazonaws.com"
        }
      }
    }
  ]
}
```

------

有关使用条件键允许 FAS 访问的其他示例，请参阅[数据边界示例策略存储库](https://github.com/aws-samples/data-perimeter-policy-examples)。

# IAM 基于身份的策略示例
<a name="access_policies_examples"></a>

[策略](access_policies.md)是 AWS 中的对象；在与身份或资源相关联时，策略定义它们的权限。在某个 IAM 主体（用户或角色）发出请求时，AWS 将评估这些策略。策略中的权限确定是允许还是拒绝请求。大多数策略作为附加到 IAM 身份（用户、用户组或角色）的 JSON 文档存储在 AWS 中。基于身份的策略包括 AWS 托管策略、客户托管策略和内联策略。要了解如何使用这些示例 JSON 策略文档创建 IAM policy，请参阅。[使用 JSON 编辑器创建策略](access_policies_create-console.md#access_policies_create-json-editor)

默认情况下，所有请求都会被拒绝，因此必须提供相关权限供身份访问服务、操作和资源。如果还需要允许访问以在 IAM 控制台中完成指定的操作，则需要提供额外的权限。

下面的策略库可以帮助您为自己的 IAM 身份定义权限。在找到所需的策略后，请选择**查看该策略**以查看该策略的 JSON 版本。您可以将该 JSON 策略文档用作自己策略的模板。

**注意**  
如果您愿意提交策略供本参考指南采用，请使用该页面底部的 **Feedback** 按钮。

## 示例策略：AWS
<a name="policy_library_AWS"></a>
+ 允许在特定日期范围内进行访问。（[查看该策略](reference_policies_examples_aws-dates.md)。）
+ 允许启用和禁用 AWS 区域。（[查看该策略](reference_policies_examples_aws-enable-disable-regions.md)。）
+ 允许使用 MFA 完成身份验证的用户在**安全凭证**页面上管理自己的凭证。（[查看该策略](reference_policies_examples_aws_my-sec-creds-self-manage.md)。）
+ 允许在特定日期范围内使用 MFA 进行特定访问。（[查看该策略](reference_policies_examples_aws_mfa-dates.md)。）
+ 允许用户在**安全凭证**页面上管理自己的凭证。（[查看该策略](reference_policies_examples_aws_my-sec-creds-self-manage-no-mfa.md)。）
+ 允许用户在**安全凭证**页面上管理自己的 MFA 设备。（[查看该策略](reference_policies_examples_aws_my-sec-creds-self-manage-mfa-only.md)。）
+ 允许用户在**安全凭证**页面上管理自己的密码。（[查看该策略](reference_policies_examples_aws_my-sec-creds-self-manage-password-only.md)。）
+ 允许用户在**安全凭证**页面上管理自己的密码、访问密钥和 SSH 公有密钥。（[查看该策略](reference_policies_examples_aws_my-sec-creds-self-manage-pass-accesskeys-ssh.md)。）
+ 根据请求的区域拒绝对 AWS 的访问。（[查看该策略](reference_policies_examples_aws_deny-requested-region.md)。）
+ 基于源 IP 拒绝对 AWS 的访问。（[查看该策略](reference_policies_examples_aws_deny-ip.md)。）

## 示例策略：AWS Data Exchange
<a name="policy_data_exchange"></a>
+ 拒绝访问您账户之外的 Amazon S3 资源，AWS Data Exchange 除外。（[查看该策略](reference_policies_examples_resource_account_data_exch.md)。）

## 示例策略：AWS Data Pipeline
<a name="policy_library_DataPipeline"></a>
+ 拒绝访问不是用户创建的管道（[查看该策略](reference_policies_examples_datapipeline_not-owned.md)。）

## 示例策略：Amazon DynamoDB
<a name="policy_library_DynamoDB"></a>
+ 允许访问特定的 Amazon DynamoDB 表（[查看该策略](reference_policies_examples_dynamodb_specific-table.md)。）
+ 允许访问特定的 Amazon DynamoDB 属性（[查看该策略](reference_policies_examples_dynamodb_attributes.md)。）
+ 允许基于 Amazon Cognito ID 对 Amazon DynamoDB 进行项目级访问（[查看该策略](reference_policies_examples_dynamodb_items.md)。）

## 示例策略：Amazon EC2
<a name="policy_library_ec2"></a>
+ 允许根据标签为 Amazon EC2 实例附加或分离 Amazon EBS 卷（[查看该策略](reference_policies_examples_ec2_ebs-owner.md)。）
+ 允许以编程方式和使用控制台在特定子网中启动 Amazon EC2 实例（[查看该策略](reference_policies_examples_ec2_instances-subnet.md)。)
+ 允许以编程方式和在控制台中管理与特定 VPC 关联的 Amazon EC2 安全组（[查看该策略](reference_policies_examples_ec2_securitygroups-vpc.md)。）
+ 允许以编程方式和在控制台中启动或停止用户标记的 Amazon EC2 实例（[查看该策略](reference_policies_examples_ec2_tag-owner.md)。）
+ 允许以编程方式和在控制台中根据资源和主体标签启动或停止 Amazon EC2 实例（[查看该策略](reference_policies_examples_ec2-start-stop-tags.md)。）
+ 在资源和主体标签匹配时，允许启动或停止 Amazon EC2 实例 实例（[查看该策略](reference_policies_examples_ec2-start-stop-match-tags.md)。）
+ 允许以编程方式和使用控制台在特定区域进行不受限制的 Amazon EC2 访问 （[查看该策略](reference_policies_examples_ec2_region.md)。）
+ 允许以编程方式和在控制台中启动或停止特定的 Amazon EC2 实例和修改特定的安全组（[查看该策略](reference_policies_examples_ec2_instance-securitygroup.md)）
+ 拒绝在没有 MFA 的情况下访问特定的 Amazon EC2 操作（[查看该策略](reference_policies_examples_ec2_require-mfa.md)。）
+ 将要终止的 Amazon EC2 实例限定为特定的 IP 地址范围（[查看该策略](reference_policies_examples_ec2_terminate-ip.md)）

## 示例策略：AWS Identity and Access Management (IAM)
<a name="policy_library_IAM"></a>
+ 允许访问策略模拟器 API（[查看该策略](reference_policies_examples_iam_policy-sim.md)。）
+ 允许访问策略模拟器控制台（[查看该策略](reference_policies_examples_iam_policy-sim-console.md)。）
+ 允许以编程方式和在控制台中担任具有特定标签的任何角色（[查看该策略](reference_policies_examples_iam-assume-tagged-role.md)。）
+ 允许和拒绝以编程方式和在控制台中访问多个服务（[查看该策略](reference_policies_examples_iam_multiple-services-console.md)。）
+ 允许以编程方式和在控制台中为具有不同的特定标签的 IAM 用户添加特定的标签（[查看该策略](reference_policies_examples_iam-add-tag.md)。）
+ 允许以编程方式和在控制台中为任何 IAM 用户或角色添加特定的标签（[查看该策略](reference_policies_examples_iam-add-tag-user-role.md)。）
+ 允许创建仅具有特定标签的新用户（[查看该策略](reference_policies_examples_iam-new-user-tag.md)。）
+ 允许生成和检索 IAM 凭证报告（[查看该策略](reference_policies_examples_iam-credential-report.md)。）
+ 允许以编程方式和在控制台中管理组的成员资格（[查看该策略](reference_policies_examples_iam_manage-group-membership.md)。）
+ 允许管理特定的标签（[查看该策略](reference_policies_examples_iam-manage-tags.md)。）
+ 允许将 IAM 角色传递到特定的服务（[查看该策略](reference_policies_examples_iam-passrole-service.md)。）
+ 允许对 IAM 控制台进行只读访问而不生成报告（[查看该策略](reference_policies_examples_iam_read-only-console-no-reporting.md)。）
+ 允许对 IAM 控制台进行只读访问（[查看该策略](reference_policies_examples_iam_read-only-console.md)。）
+ 允许特定用户以编程方式和在控制台中管理组（[查看该策略](reference_policies_examples_iam_users-manage-group.md)。）
+ 允许以编程方式和在控制台中设置账户密码要求（[查看该策略](reference_policies_examples_iam_set-account-pass-policy.md)。）
+ 允许具有特定路径的用户使用策略模拟器 API（[查看该策略](reference_policies_examples_iam_policy-sim-path.md)。）
+ 允许具有特定路径的用户使用策略模拟器控制台（[查看该策略](reference_policies_examples_iam_policy-sim-path-console.md)。）
+ 允许 IAM 用户自行管理 MFA 设备 （[查看该策略](reference_policies_examples_iam_mfa-selfmanage.md)。）
+ 允许 IAM 用户通过编程方式和控制台设置自己的凭证。（[查看该策略](reference_policies_examples_iam_credentials_console.md)。）
+ 允许在 IAM 控制台中查看 AWS Organizations 策略的上次访问的服务信息。（[查看该策略](reference_policies_examples_iam_service-accessed-data-orgs.md)。）
+ 对可应用于 IAM 用户、组或角色的托管策略加以限制（[查看该策略](reference_policies_examples_iam_limit-managed.md)。）
+ 仅允许访问您的账户中的 IAM policy（[查看此策略](resource_examples_iam_policies_resource_account.md)。）

## 示例策略：AWS Lambda
<a name="policy_library_Lambda"></a>
+ 允许 AWS Lambda 函数访问 Amazon DynamoDB 表（[查看该策略](reference_policies_examples_lambda-access-dynamodb.md)。）

## 示例策略：Amazon RDS
<a name="policy_library_RDS"></a>
+ Amazon RDS 允许在特定区域中进行完全 RDS 数据库访问。（[查看该策略](reference_policies_examples_rds_region.md)。）
+ 允许以编程方式和在控制台中还原 Amazon RDS 数据库（[查看该策略](reference_policies_examples_rds_db-console.md)。）
+ 允许标签所有者不受限制地访问其标记的 Amazon RDS 资源（[查看该策略](reference_policies_examples_rds_tag-owner.md)。）

## 示例策略：Amazon S3
<a name="policy_library_S3"></a>
+ 允许 Amazon Cognito 用户访问自己的 Amazon S3 存储桶中的对象（[查看该策略](reference_policies_examples_s3_cognito-bucket.md)。）
+ 允许具有临时凭证的用户以编程方式和在控制台中访问自己位于 Amazon S3 中的主目录（[查看该策略](reference_policies_examples_s3_federated-home-directory-console.md)。）
+ 允许完全 S3 访问，但如果管理员在过去的 30 分钟内未使用 MFA 登录，则显式拒绝访问 Production 存储桶（[查看该策略](reference_policies_examples_s3_full-access-except-production.md)。）
+ 允许 IAM 用户以编程方式和在控制台中访问自己位于 Amazon S3 中的主目录（[查看该策略](reference_policies_examples_s3_home-directory-console.md)。）
+ 允许用户管理单个 Amazon S3 存储桶并拒绝所有其他 AWS 操作和资源（[查看该策略](reference_policies_examples_s3_deny-except-bucket.md)。）
+ 允许对特定的 Amazon S3 存储桶进行 `Read` 和 `Write` 访问（[查看该策略](reference_policies_examples_s3_rw-bucket.md)）
+ 允许以编程方式和在控制台中对特定的 Amazon S3 存储桶进行 `Read` 和 `Write` 访问（[查看该策略](reference_policies_examples_s3_rw-bucket-console.md)。）

# AWS：允许基于日期和时间进行访问
<a name="reference_policies_examples_aws-dates"></a>

此示例说明如何创建允许访问基于日期和时间的操作的基于身份的策略。此策略限制访问 2020 年 4 月 1 日和 2020 年 6 月 30 日（含这两个日期）之间发生的操作。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

要了解在 IAM policy 的 `Condition` 块中使用多个条件的信息，请参阅[一个条件中包含多个值](reference_policies_elements_condition.md#Condition-multiple-conditions)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "service-prefix:action-name",
            "Resource": "*",
            "Condition": {
                "DateGreaterThan": {"aws:CurrentTime": "2020-04-01T00:00:00Z"},
                "DateLessThan": {"aws:CurrentTime": "2020-06-30T23:59:59Z"}
            }
        }
    ]
}
```

------

**注意**  
您不能对策略变量使用 Date 条件运算符。要了解更多信息，请参阅 [条件元素](reference_policies_variables.md#policy-vars-conditionelement)。

# AWS：允许启用和禁用 AWS 区域
<a name="reference_policies_examples_aws-enable-disable-regions"></a>

此示例现在可以创建基于身份的策略，以允许管理员启用和禁用亚太地区（香港）区域（ap-east-1）。此策略定义了程序访问和控制台访问的权限。此设置显示在 AWS 管理控制台 中的 **Account settings**（账户设置）页面。该页面包含只应由账户管理员查看和管理的敏感账户级信息。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

**重要**  
您无法启用或禁用默认启用的区域。您只能包含默认*禁用* 的区域。有关更多信息，请参阅《AWS 一般参考》**中的[管理 AWS 区域](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EnableDisableHongKong",
            "Effect": "Allow",
            "Action": [
                "account:EnableRegion",
                "account:DisableRegion"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {"account:TargetRegion": "ap-east-1"}
            }
        },
        {
            "Sid": "ViewConsole",
            "Effect": "Allow",
            "Action": [
                "account:ListRegions"
            ],
            "Resource": "*"
        }
    ]
}
```

------

# AWS：允许使用 MFA 完成身份验证的 IAM 用户在“安全凭证”页面上管理自己的凭证。
<a name="reference_policies_examples_aws_my-sec-creds-self-manage"></a>

此示例演示了如何创建基于身份的策略，以允许通过[多重身份验证（MFA）](id_credentials_mfa.md)完成身份验证的 IAM 用户在**安全凭证**页面上管理自己的凭证。此 AWS 管理控制台 页面显示账户信息，例如账户 ID 和规范用户 ID。用户还可以查看和编辑自己的密码、访问密钥、MFA 设备、X.509 证书、SSH 密钥和 Git 凭证。此示例策略包括查看和编辑页面上所有信息所需的权限。它还要求用户在执行 AWS 中的任何其他操作之前使用 MFA 进行设置和身份验证。要允许用户在不使用 MFA 的情况下管理自己的凭证，请参阅[AWS：允许 IAM 用户在“安全凭证”页面上管理自己的凭证](reference_policies_examples_aws_my-sec-creds-self-manage-no-mfa.md)。

要了解用户如何访问**安全凭证**页面，请参阅 [IAM 用户如何更改自己的密码（控制台）](id_credentials_passwords_user-change-own.md#ManagingUserPwdSelf-Console)。

**注意**  
此示例策略不允许用户在首次登录 AWS 管理控制台 的同时重置密码。我们建议您在新用户登录之前不要向他们授予权限。有关更多信息，请参阅 [如何安全地创建 IAM 用户？](troubleshoot.md#troubleshoot_general_securely-create-iam-users)。这还可以防止密码过期的用户在登录期间重置其密码。您可以通过向语句 `DenyAllExceptListedIfNoMFA` 中添加 `iam:ChangePassword` 和 `iam:GetAccountPasswordPolicy` 来允许此操作。但是，我们不建议您这样做，因为允许用户在未进行 MFA 验证的情况下更改密码可能存在安全风险。
如果您打算将此策略用于编程访问，则必须调用 [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html) 以使用 MFA 进行身份验证。有关更多信息，请参阅 [使用 MFA 保护 API 访问](id_credentials_mfa_configure-api-require.md)。

**此策略有何作用？**
+ `AllowViewAccountInfo` 语句允许用户查看账户级信息。这些权限必须位于自己的语句中，因为它们不支持或不需要指定资源 ARN。相反，权限指定 `"Resource" : "*"`。此语句包括允许用户查看特定信息的以下操作：
  + `GetAccountPasswordPolicy` – 查看账户密码要求，同时更改他们自己的 IAM 用户密码。
  + `ListVirtualMFADevices` - 查看有关为用户启用的虚拟 MFA 设备的详细信息。
+ `AllowManageOwnPasswords` 语句还允许用户更改他们自己的密码。此语句还包括 `GetUser` 操作，查看 **My Security Credentials**（我的安全凭证）页面上的大多数信息都需要此操作。
+ `AllowManageOwnAccessKeys` 语句允许用户创建、更新和删除他们自己的访问密钥。用户还可以检索有关上次使用指定访问密钥的时间信息。
+ `AllowManageOwnSigningCertificates` 语句允许用户上传、更新和删除他们自己的签名证书。
+ `AllowManageOwnSSHPublicKeys` 语句允许用户上传、更新和删除他们自己的 CodeCommit 的 SSH 公有密钥。
+ `AllowManageOwnGitCredentials` 语句允许用户创建、更新和删除他们自己的 CodeCommit 的 Git 凭证。
+ `AllowManageOwnVirtualMFADevice` 语句允许用户创建他们自己的虚拟 MFA 设备。此语句中的资源 ARN 允许用户创建任何名称的 MFA 设备，但策略中的其他语句仅允许用户将设备连接到当前登录的用户。
+ `AllowManageOwnUserMFA` 语句允许用户查看或管理他们自己用户的虚拟、U2F 或硬件 MFA 设备。此语句中的资源 ARN 仅允许访问用户自己的 IAM 用户。用户无法查看或管理其他用户的 MFA 设备。
+ `DenyAllExceptListedIfNoMFA` 语句拒绝访问所有 AWS 服务中的每个操作（除了一些列出的操作），但***前提是***用户未使用 MFA 登录。该语句使用 `"Deny"` 和 `"NotAction"` 的组合来显式拒绝对未列出的每个操作的访问。此语句不会拒绝或允许列出的项目。但是，策略中的其他语句允许这些操作。有关此语句的逻辑的更多信息，请参阅 [NotAction 以及 Deny](reference_policies_elements_notaction.md)。如果用户已使用 MFA 登录，则 `Condition` 测试将失败，并且此语句不会拒绝任何操作。在这种情况下，用户的其他策略或语句确定用户的权限。

  此语句确保当用户未使用 MFA 登录时，他们只能执行列出的操作。此外，只有在另一个语句或策略允许访问这些操作时，它们才能执行列出的操作。这不允许用户在登录时创建密码，因为如果没有 MFA 授权，则不允许 `iam:ChangePassword` 操作。

  `...IfExists` 运算符的 `Bool` 版本可确保：如果 `aws:MultiFactorAuthPresent` 键缺失，条件将返回 true。这意味着使用长期凭证（例如访问密钥）访问 API 的用户被拒绝访问非 IAM API 操作。

此策略不允许用户在 IAM 控制台中查看 **Users**（用户）页面，或使用该页面访问自己的用户信息。要允许此操作，请将 `iam:ListUsers` 操作添加到 `AllowViewAccountInfo` 和 `DenyAllExceptListedIfNoMFA` 语句。它也不允许用户在自己的用户页面上更改密码。要允许此操作，请将 `iam:GetLoginProfile` 和 `iam:UpdateLoginProfile` 操作添加到 `AllowManageOwnPasswords` 语句。要允许用户在不使用 MFA 登录的情况下从自己的用户页面更改密码，请将 `iam:UpdateLoginProfile` 操作添加到 `DenyAllExceptListedIfNoMFA` 语句。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowViewAccountInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetAccountPasswordPolicy",
                "iam:ListVirtualMFADevices"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowManageOwnPasswords",
            "Effect": "Allow",
            "Action": [
                "iam:ChangePassword",
                "iam:GetUser"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:CreateAccessKey",
                "iam:DeleteAccessKey",
                "iam:ListAccessKeys",
                "iam:UpdateAccessKey",
                "iam:GetAccessKeyLastUsed"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnSigningCertificates",
            "Effect": "Allow",
            "Action": [
                "iam:DeleteSigningCertificate",
                "iam:ListSigningCertificates",
                "iam:UpdateSigningCertificate",
                "iam:UploadSigningCertificate"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnSSHPublicKeys",
            "Effect": "Allow",
            "Action": [
                "iam:DeleteSSHPublicKey",
                "iam:GetSSHPublicKey",
                "iam:ListSSHPublicKeys",
                "iam:UpdateSSHPublicKey",
                "iam:UploadSSHPublicKey"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnGitCredentials",
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceSpecificCredential",
                "iam:DeleteServiceSpecificCredential",
                "iam:ListServiceSpecificCredentials",
                "iam:ResetServiceSpecificCredential",
                "iam:UpdateServiceSpecificCredential"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnVirtualMFADevice",
            "Effect": "Allow",
            "Action": [
                "iam:CreateVirtualMFADevice"
            ],
            "Resource": "arn:aws:iam::*:mfa/*"
        },
        {
            "Sid": "AllowManageOwnUserMFA",
            "Effect": "Allow",
            "Action": [
                "iam:DeactivateMFADevice",
                "iam:EnableMFADevice",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "DenyAllExceptListedIfNoMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:CreateVirtualMFADevice",
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:GetMFADevice",
                "iam:ListMFADevices",
                "iam:ListVirtualMFADevices",
                "iam:ResyncMFADevice",
                "sts:GetSessionToken"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}
```

------

# AWS：允许在特定日期内使用 MFA 进行特定访问
<a name="reference_policies_examples_aws_mfa-dates"></a>

此示例说明了如何创建一个基于身份的策略，该策略将使用多个条件，借助 `AND` 逻辑对这些条件进行评估。它允许对名为 `SERVICE-NAME-1` 的服务进行完全访问，并且允许对名为 `ACTION-NAME-A` 的服务中的 `ACTION-NAME-B` 和 `SERVICE-NAME-2` 操作进行访问。只有在用户使用[多重身份验证 (MFA)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html) 进行身份验证时，才允许执行这些操作。只能对在 2017 年 7 月 1 日至 2017 年 12 月 31 日 (UTC 时间，包含这两个时间) 期间发生的操作进行访问。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

要了解在 IAM policy 的 `Condition` 块中使用多个条件的信息，请参阅[一个条件中包含多个值](reference_policies_elements_condition.md#Condition-multiple-conditions)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "service-prefix-1:*",
            "service-prefix-2:action-name-a",
            "service-prefix-2:action-name-b"
        ],
        "Resource": "*",
        "Condition": {
            "Bool": {"aws:MultiFactorAuthPresent": true},
            "DateGreaterThan": {"aws:CurrentTime": "2017-07-01T00:00:00Z"},
            "DateLessThan": {"aws:CurrentTime": "2017-12-31T23:59:59Z"}
        }
    }
}
```

------

# AWS：允许 IAM 用户在“安全凭证”页面上管理自己的凭证
<a name="reference_policies_examples_aws_my-sec-creds-self-manage-no-mfa"></a>

此示例演示了如何创建基于身份的策略，以允许 IAM 用户在**安全凭证**页面上管理自己的所有凭证。此 AWS 管理控制台 页面显示账户信息，例如账户 ID 和规范用户 ID。用户还可以查看和编辑自己的密码、访问密钥、X.509 证书、SSH 密钥和 Git 凭证。此示例策略包括查看和编辑页面上所有信息（用户的 MFA 设备*除外*）所需的权限。要允许用户使用 MFA 管理他们自己的凭证，请参阅[AWS：允许使用 MFA 完成身份验证的 IAM 用户在“安全凭证”页面上管理自己的凭证。](reference_policies_examples_aws_my-sec-creds-self-manage.md)。

要了解用户如何访问**安全凭证**页面，请参阅 [IAM 用户如何更改自己的密码（控制台）](id_credentials_passwords_user-change-own.md#ManagingUserPwdSelf-Console)。

**此策略有何作用？**
+ `AllowViewAccountInfo` 语句允许用户查看账户级信息。这些权限必须位于自己的语句中，因为它们不支持或不需要指定资源 ARN。相反，权限指定 `"Resource" : "*"`。此语句包括允许用户查看特定信息的以下操作：
  + `GetAccountPasswordPolicy` – 查看账户密码要求，同时更改他们自己的 IAM 用户密码。
  + `GetAccountSummary` - 查看账户 ID 和账户的[规范用户 ID](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId)。
+ `AllowManageOwnPasswords` 语句还允许用户更改他们自己的密码。此语句还包括 `GetUser` 操作，查看 **My Security Credentials**（我的安全凭证）页面上的大多数信息都需要此操作。
+ `AllowManageOwnAccessKeys` 语句允许用户创建、更新和删除他们自己的访问密钥。用户还可以检索有关上次使用指定访问密钥的时间信息。
+ `AllowManageOwnSigningCertificates` 语句允许用户上传、更新和删除他们自己的签名证书。
+ `AllowManageOwnSSHPublicKeys` 语句允许用户上传、更新和删除他们自己的 CodeCommit 的 SSH 公有密钥。
+ `AllowManageOwnGitCredentials` 语句允许用户创建、更新和删除他们自己的 CodeCommit 的 Git 凭证。

该策略不允许用户查看或管理他们自己的 MFA 设备。他们也不能在 IAM 控制台中查看 **Users**（用户）页面，或使用该页面访问自己的用户信息。要允许此操作，请将 `iam:ListUsers` 操作添加到 `AllowViewAccountInfo` 语句。它也不允许用户在自己的用户页面上更改密码。要允许此操作，请将 `iam:CreateLoginProfile`、`iam:DeleteLoginProfile`、`iam:GetLoginProfile` 和 `iam:UpdateLoginProfile` 操作添加到 `AllowManageOwnPasswords` 语句。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowViewAccountInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetAccountPasswordPolicy",
                "iam:GetAccountSummary"       
            ],
            "Resource": "*"
        },       
        {
            "Sid": "AllowManageOwnPasswords",
            "Effect": "Allow",
            "Action": [
                "iam:ChangePassword",
                "iam:GetUser"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:CreateAccessKey",
                "iam:DeleteAccessKey",
                "iam:ListAccessKeys",
                "iam:UpdateAccessKey",
                "iam:GetAccessKeyLastUsed"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnSigningCertificates",
            "Effect": "Allow",
            "Action": [
                "iam:DeleteSigningCertificate",
                "iam:ListSigningCertificates",
                "iam:UpdateSigningCertificate",
                "iam:UploadSigningCertificate"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnSSHPublicKeys",
            "Effect": "Allow",
            "Action": [
                "iam:DeleteSSHPublicKey",
                "iam:GetSSHPublicKey",
                "iam:ListSSHPublicKeys",
                "iam:UpdateSSHPublicKey",
                "iam:UploadSSHPublicKey"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnGitCredentials",
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceSpecificCredential",
                "iam:DeleteServiceSpecificCredential",
                "iam:ListServiceSpecificCredentials",
                "iam:ResetServiceSpecificCredential",
                "iam:UpdateServiceSpecificCredential"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        }
    ]
}
```

------

# AWS：允许使用 MFA 完成身份验证的 IAM 用户在“安全凭证”页面上管理自己的 MFA 设备。
<a name="reference_policies_examples_aws_my-sec-creds-self-manage-mfa-only"></a>

此示例演示了如何创建基于身份的策略，以允许通过[多重身份验证（MFA）](id_credentials_mfa.md)完成身份验证的 IAM 用户在**安全凭证**页面上管理自己的 MFA 设备。此 AWS 管理控制台 页面显示账户和用户信息，但是用户只能查看和编辑他们自己的 MFA 设备。要允许用户使用 MFA 管理他们自己的所有凭证，请参阅[AWS：允许使用 MFA 完成身份验证的 IAM 用户在“安全凭证”页面上管理自己的凭证。](reference_policies_examples_aws_my-sec-creds-self-manage.md)。

**注意**  
如果具有此策略的 IAM 用户未通过 MFA 进行身份验证，则此策略会拒绝对所有 AWS 操作（使用 MFA 进行身份验证所需的操作除外）的访问。要使用 AWS CLI 和 AWS API，IAM 用户必须先使用 AWS STS [GetSessionToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html) 操作检索其 MFA 令牌，然后使用该令牌验证所需的操作。其他策略（如基于资源的策略或其他基于身份的策略）可以允许其他服务中的操作。如果 IAM 用户没有经过 MFA 身份验证，则此策略将拒绝该访问。

要了解用户如何访问**安全凭证**页面，请参阅 [IAM 用户如何更改自己的密码（控制台）](id_credentials_passwords_user-change-own.md#ManagingUserPwdSelf-Console)。

**此策略有何作用？**
+ `AllowViewAccountInfo` 语句允许用户查看有关为用户启用的虚拟 MFA 设备的详细信息。此权限必须在它自己的语句中，因为它不支持指定资源 ARN。相反，您必须指定 `"Resource" : "*"`。
+ `AllowManageOwnVirtualMFADevice` 语句允许用户创建他们自己的虚拟 MFA 设备。此语句中的资源 ARN 允许用户创建任何名称的 MFA 设备，但策略中的其他语句仅允许用户将设备连接到当前登录的用户。
+ `AllowManageOwnUserMFA` 语句允许用户查看或管理他们自己的虚拟、U2F 或硬件 MFA 设备。此语句中的资源 ARN 仅允许访问用户自己的 IAM 用户。用户无法查看或管理其他用户的 MFA 设备。
+ `DenyAllExceptListedIfNoMFA` 语句拒绝访问所有 AWS 服务中的每个操作（除了一些列出的操作），但***前提是***用户未使用 MFA 登录。该语句使用 `"Deny"` 和 `"NotAction"` 的组合来显式拒绝对未列出的每个操作的访问。此语句不会拒绝或允许列出的项目。但是，策略中的其他语句允许这些操作。有关此语句的逻辑的更多信息，请参阅 [NotAction 以及 Deny](reference_policies_elements_notaction.md)。如果用户已使用 MFA 登录，则 `Condition` 测试将失败，并且此语句不会拒绝任何操作。在这种情况下，用户的其他策略或语句确定用户的权限。

  此语句确保当用户未使用 MFA 登录时，他们只能执行列出的操作。此外，只有在另一个语句或策略允许访问这些操作时，它们才能执行列出的操作。

  `...IfExists` 运算符的 `Bool` 版本可确保：如果 `aws:MultiFactorAuthPresent` 键缺失，条件将返回 true。这意味着使用长期凭证（例如访问密钥）访问 API 操作的用户被拒绝访问非 IAM API 操作。

此策略不允许用户在 IAM 控制台中查看 **Users**（用户）页面，或使用该页面访问自己的用户信息。要允许此操作，请将 `iam:ListUsers` 操作添加到 `AllowViewAccountInfo` 和 `DenyAllExceptListedIfNoMFA` 语句。

**警告**  
在未通过 MFA 进行身份验证的情况下，请不要添加删除 MFA 设备的权限。具有该策略的用户可能会尝试为自己分配一个虚拟 MFA 设备，并出现错误以指示未授权其执行 `iam:DeleteVirtualMFADevice`。如果发生这种情况，请**不要**将该权限添加到 `DenyAllExceptListedIfNoMFA` 语句中。切勿允许未使用 MFA 进行身份验证的用户删除 MFA 设备。如果用户以前开始将虚拟 MFA 设备分配给其用户并取消了该过程，则可能会看到该错误。要解决该问题，您或其他管理员必须使用 AWS CLI 或 AWS API 删除用户的现有虚拟 MFA 设备。有关更多信息，请参阅 [我没有权限执行：iam:DeleteVirtualMFADevice](troubleshoot.md#troubleshoot_general_access-denied-delete-mfa)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowViewAccountInfo",
            "Effect": "Allow",
            "Action": "iam:ListVirtualMFADevices",
            "Resource": "*"
        },
        {
            "Sid": "AllowManageOwnVirtualMFADevice",
            "Effect": "Allow",
            "Action": [
                "iam:CreateVirtualMFADevice"
            ],
            "Resource": "arn:aws:iam::*:mfa/*"
        },
        {
            "Sid": "AllowManageOwnUserMFA",
            "Effect": "Allow",
            "Action": [
                "iam:DeactivateMFADevice",
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:GetMFADevice",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "DenyAllExceptListedIfNoMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:CreateVirtualMFADevice",
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:ListMFADevices",
                "iam:ListVirtualMFADevices",
                "iam:ResyncMFADevice",
                "sts:GetSessionToken"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {"aws:MultiFactorAuthPresent": "false"}
            }
        }
    ]
}
```

------

# AWS：允许 IAM 用户在的“安全凭证”页面上更改自己的控制台密码
<a name="reference_policies_examples_aws_my-sec-creds-self-manage-password-only"></a>

此示例演示了如何创建基于身份的策略，以允许 IAM 用户在**安全凭证**页面上更改其 AWS 管理控制台 密码。此 AWS 管理控制台 页面显示账户和用户信息，但是用户只能访问他们自己的密码。要允许用户使用 MFA 管理他们自己的所有凭证，请参阅[AWS：允许使用 MFA 完成身份验证的 IAM 用户在“安全凭证”页面上管理自己的凭证。](reference_policies_examples_aws_my-sec-creds-self-manage.md)。要允许用户在不使用 MFA 的情况下管理自己的凭证，请参阅[AWS：允许 IAM 用户在“安全凭证”页面上管理自己的凭证](reference_policies_examples_aws_my-sec-creds-self-manage-no-mfa.md)。

要了解用户如何访问**安全凭证**页面，请参阅 [IAM 用户如何更改自己的密码（控制台）](id_credentials_passwords_user-change-own.md#ManagingUserPwdSelf-Console)。

**此策略有何作用？**
+ `ViewAccountPasswordRequirements` 语句允许用户查看账户密码要求，同时更改他们自己的 IAM 用户密码。
+ `ChangeOwnPassword` 语句还允许用户更改他们自己的密码。此语句还包括 `GetUser` 操作，查看 **My Security Credentials**（我的安全凭证）页面上的大多数信息都需要此操作。

此策略不允许用户在 IAM 控制台中查看 **Users**（用户）页面，或使用该页面访问自己的用户信息。要允许此操作，请将 `iam:ListUsers` 操作添加到 `ViewAccountPasswordRequirements` 语句。它也不允许用户在自己的用户页面上更改密码。要允许此操作，请将 `iam:GetLoginProfile` 和 `iam:UpdateLoginProfile` 操作添加到 `ChangeOwnPasswords` 语句。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewAccountPasswordRequirements",
            "Effect": "Allow",
            "Action": "iam:GetAccountPasswordPolicy",
            "Resource": "*"
        },
        {
            "Sid": "ChangeOwnPassword",
            "Effect": "Allow",
            "Action": [
                "iam:GetUser",
                "iam:ChangePassword"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        }
    ]
}
```

------

# AWS：允许 IAM 用户在“安全凭证”页面上管理自己的密码、访问密钥和 SSH 公有密钥
<a name="reference_policies_examples_aws_my-sec-creds-self-manage-pass-accesskeys-ssh"></a>

此示例演示了如何创建基于身份的策略，以允许 IAM 用户在**安全凭证**页面上管理其密码、访问密钥和 X.509 证书。此 AWS 管理控制台 页面显示账户信息，例如账户 ID 和规范用户 ID。用户还可以查看和编辑自己的密码、访问密钥、MFA 设备、X.509 证书、SSH 密钥和 Git 凭证。此示例策略包括仅查看和编辑其密码、访问密钥和 X.509 证书所需的权限。要允许用户使用 MFA 管理他们自己的所有凭证，请参阅[AWS：允许使用 MFA 完成身份验证的 IAM 用户在“安全凭证”页面上管理自己的凭证。](reference_policies_examples_aws_my-sec-creds-self-manage.md)。要允许用户在不使用 MFA 的情况下管理自己的凭证，请参阅[AWS：允许 IAM 用户在“安全凭证”页面上管理自己的凭证](reference_policies_examples_aws_my-sec-creds-self-manage-no-mfa.md)。

要了解用户如何访问**安全凭证**页面，请参阅 [IAM 用户如何更改自己的密码（控制台）](id_credentials_passwords_user-change-own.md#ManagingUserPwdSelf-Console)。

**此策略有何作用？**
+ `AllowViewAccountInfo` 语句允许用户查看账户级信息。这些权限必须位于自己的语句中，因为它们不支持或不需要指定资源 ARN。相反，权限指定 `"Resource" : "*"`。此语句包括允许用户查看特定信息的以下操作：
  + `GetAccountPasswordPolicy` – 查看账户密码要求，同时更改他们自己的 IAM 用户密码。
  + `GetAccountSummary` - 查看账户 ID 和账户的[规范用户 ID](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html#FindingCanonicalId)。
+ `AllowManageOwnPasswords` 语句还允许用户更改他们自己的密码。此语句还包括 `GetUser` 操作，查看 **My Security Credentials**（我的安全凭证）页面上的大多数信息都需要此操作。
+ `AllowManageOwnAccessKeys` 语句允许用户创建、更新和删除他们自己的访问密钥。用户还可以检索有关上次使用指定访问密钥的时间信息。
+ `AllowManageOwnSSHPublicKeys` 语句允许用户上传、更新和删除他们自己的 CodeCommit 的 SSH 公有密钥。

该策略不允许用户查看或管理他们自己的 MFA 设备。他们也不能在 IAM 控制台中查看 **Users**（用户）页面，或使用该页面访问自己的用户信息。要允许此操作，请将 `iam:ListUsers` 操作添加到 `AllowViewAccountInfo` 语句。它也不允许用户在自己的用户页面上更改密码。要允许此操作，请将 `iam:GetLoginProfile` 和 `iam:UpdateLoginProfile` 操作添加到 `AllowManageOwnPasswords` 语句。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowViewAccountInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetAccountPasswordPolicy",
                "iam:GetAccountSummary"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowManageOwnPasswords",
            "Effect": "Allow",
            "Action": [
                "iam:ChangePassword",
                "iam:GetUser"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:CreateAccessKey",
                "iam:DeleteAccessKey",
                "iam:ListAccessKeys",
                "iam:UpdateAccessKey",
                "iam:GetAccessKeyLastUsed"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowManageOwnSSHPublicKeys",
            "Effect": "Allow",
            "Action": [
                "iam:DeleteSSHPublicKey",
                "iam:GetSSHPublicKey",
                "iam:ListSSHPublicKeys",
                "iam:UpdateSSHPublicKey",
                "iam:UploadSSHPublicKey"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        }
    ]
}
```

------

# AWS：根据请求的区域拒绝访问 AWS
<a name="reference_policies_examples_aws_deny-requested-region"></a>

此示例说明了如何创建一个基于身份的策略，以拒绝对使用 [`aws:RequestedRegion` 条件键](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion)指定的区域以外的任何操作的访问，但服务中使用 `NotAction` 指定的操作除外。此策略定义了程序访问和控制台访问的权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

该策略使用具有 `Deny` 效果的 `NotAction` 元素，这会显式拒绝访问语句中*未* 列出的所有操作。不应拒绝 CloudFront、IAM、Route 53 和 支持 服务中的操作，因为这些服务是常用的 AWS 全球服务，并具有一个实际位于 `us-east-1` 区域的终端节点。由于针对这些服务的所有请求都是向 `us-east-1` 区域发出的，因此，将在没有 `NotAction` 元素的情况下拒绝这些请求。请编辑该元素以包含您使用的其他 AWS 全球服务（如 `budgets`、`globalaccelerator`、`importexport`、`organizations` 或 `waf`）的操作。一些其他全球服务（例如，聊天应用程序中的 Amazon Q 开发者版和 AWS Device Farm）是具有物理位置位于 `us-west-2` 区域的终端节点的全球服务。要了解具有单个全球端点的所有服务，请参阅《AWS 一般参考》中的 [AWS 区域和端点](https://docs.aws.amazon.com/general/latest/gr/rande.html)**。有关使用具有 `Deny` 效果的 `NotAction` 元素的更多信息，请参阅[IAM JSON 策略元素：NotAction](reference_policies_elements_notaction.md)。

**重要**  
该策略不允许进行任何操作。可将此策略与允许特定操作的其他策略结合使用。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyAllOutsideRequestedRegions",
            "Effect": "Deny",
            "NotAction": [
                "cloudfront:*",
                "iam:*",
                "organizations:*",
                "route53:*",
                "support:*"
            ],
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "aws:RequestedRegion": [
                        "eu-central-1",
                        "eu-west-1",
                        "eu-west-2",
                        "eu-west-3"
                    ]
                }
            }
        }
    ]
}
```

------

# AWS：基于源 IP 拒绝对 AWS 的访问
<a name="reference_policies_examples_aws_deny-ip"></a>

此示例说明了如何创建基于身份的策略，以当请求来自指定 IP 范围以外的*主体*时拒绝对账户中所有 AWS 操作的访问。当您公司的 IP 地址位于指定范围内时，该策略很有用。在此示例中，除非源自 CIDR 范围 192.0.2.0/24 或 203.0.113.0/24, 否则请求将被拒绝。该策略不拒绝使用 [转发访问会话](access_forward_access_sessions.md) 的 AWS 服务发出的请求，因为原始请求者的 IP 地址已保留。

在与 `"Effect": "Deny"` 相同的策略语句中谨慎使用否定条件。使用否定条件时，在所有条件下（指定的条件*除外*），在策略语句中指定的操作将被明确拒绝。

**重要**  
该策略不允许进行任何操作。可将此策略与允许特定操作的其他策略结合使用。

当其他策略允许操作时，主体可以从 IP 地址范围内发出请求。AWS 服务还可以使用主体的凭证发出请求。当主体从 IP 范围之外发出请求时，请求将被拒绝。

有关使用 `aws:SourceIp` 条件键的更多信息，包括有关 `aws:SourceIp` 可能无法在您的策略中起作用的信息，请参阅 [AWS 全局条件上下文密钥](reference_policies_condition-keys.md)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Deny",
        "Action": "*",
        "Resource": "*",
        "Condition": {
            "NotIpAddress": {
                "aws:SourceIp": [
                    "192.0.2.0/24",
                    "203.0.113.0/24"
                ]
            }
        }
    }
}
```

------

# AWS：拒绝访问您账户之外的 Amazon S3 资源，AWS Data Exchange 除外。
<a name="reference_policies_examples_resource_account_data_exch"></a>

以下示例说明如何创建基于身份的策略以拒绝访问 AWS 中不属于您的账户的所有资源，AWS Data Exchange 正常操作所需的资源除外。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

您可以使用条件键 AWS Data Exchange 和 `aws:ResourceOrgPaths` 来创建类似的策略，限制对企业或企业部门内部资源的访问，同时包括 `aws:ResourceOrgID` 所拥有的资源。

如果您在您的环境中使用 AWS Data Exchange，该服务会创建资源并与之交互，例如服务账户拥有的 Amazon S3 存储桶。例如，AWS Data Exchange 代表 IAM 主体（用户或角色）向 AWS Data Exchange 服务拥有的 Amazon S3 存储桶发送调用 AWS Data Exchange API 的请求。在这种情况下，在策略中使用 `aws:ResourceAccount`、`aws:ResourceOrgPaths` 或 `aws:ResourceOrgID`（不包括 AWS Data Exchange 所拥有的资源）会拒绝对服务账户拥有的存储桶的访问。
+ 语句 `DenyAllAwsResourcesOutsideAccountExceptS3` 使用带有 [Deny](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_effect.html) 效果的 `NotAction` 元素，它显式拒绝访问未在声明中列出和不属于已列出账户的所有操作。`NotAction` 元素表示此语句的例外情况。这些操作是此语句的例外情况，因为如果这些操作是在 AWS Data Exchange 创建的资源上执行的，则策略会拒绝这些操作。
+ 语句 `DenyAllS3ResoucesOutsideAccountExceptDataExchange` 使用 `ResourceAccount` 和 `CalledVia` 条件的组合，拒绝访问前一语句中排除的三个 Amazon SNS 操作。如果资源不属于已列出的账户，并且，如果调用服务的不是 AWS Data Exchange，则该语句会拒绝这些操作。如果资源属于列出的账户，或由列出的服务主体 `dataexchange.amazonaws.com` 执行操作，则该语句不会拒绝这些操作。

**重要**  
该策略不允许进行任何操作。该策略使用 `Deny` 效果，这会显式拒绝访问语句中列出而不属于已列出账户的所有资源。将此策略与允许访问特定资源的其他策略结合使用。

以下示例说明如何配置策略以允许访问所需的 Amazon S3 存储桶。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyAllAwsReourcesOutsideAccountExceptAmazonS3",
      "Effect": "Deny",
      "NotAction": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:PutObjectAcl"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": [
            "111122223333"
          ]
        }
      }
    },
    {
      "Sid": "DenyAllS3ResourcesOutsideAccountExceptDataExchange",
      "Effect": "Deny",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:PutObjectAcl"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": [
            "111122223333"
          ]
        },
        "ForAllValues:StringNotEquals": {
          "aws:CalledVia": [
            "dataexchange.amazonaws.com"
          ]
        }
      }
    }
  ]
}
```

------

# AWS Data Pipeline：拒绝用户访问他人创建的 DataPipeline 管道
<a name="reference_policies_examples_datapipeline_not-owned"></a>

此示例说明如何创建基于身份的策略以拒绝对用户未创建的管道的访问。如果 `PipelineCreator` 字段的值与 IAM 用户名匹配，则指定的操作不会被拒绝。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。

**重要**  
该策略不允许进行任何操作。可将此策略与允许特定操作的其他策略结合使用。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ExplicitDenyIfNotTheOwner",
            "Effect": "Deny",
            "Action": [
                "datapipeline:ActivatePipeline",
                "datapipeline:AddTags",
                "datapipeline:DeactivatePipeline",
                "datapipeline:DeletePipeline",
                "datapipeline:DescribeObjects",
                "datapipeline:EvaluateExpression",
                "datapipeline:GetPipelineDefinition",
                "datapipeline:PollForTask",
                "datapipeline:PutPipelineDefinition",
                "datapipeline:QueryObjects",
                "datapipeline:RemoveTags",
                "datapipeline:ReportTaskProgress",
                "datapipeline:ReportTaskRunnerHeartbeat",
                "datapipeline:SetStatus",
                "datapipeline:SetTaskStatus",
                "datapipeline:ValidatePipelineDefinition"
            ],
            "Resource": ["*"],
            "Condition": {
                "StringNotEquals": {"datapipeline:PipelineCreator": "${aws:userid}"}
            }
        }
    ]
}
```

------

# Amazon DynamoDB：允许访问特定的表
<a name="reference_policies_examples_dynamodb_specific-table"></a>

此示例说明了如何创建基于身份的策略以允许对 `MyTable` DynamoDB 表的完全访问。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

**重要**  
该策略允许可在 DynamoDB 表上执行的所有操作。要了解这些操作的信息，请参阅 *Amazon DynamoDB 开发人员指南*中的 [DynamoDB API 权限：操作、资源和条件参考](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/api-permissions-reference.html)。您可以通过列出每个单独的操作来提供同样的权限。不过，如果您在 `Action` 元素中使用通配符 (`*`)（例如，`"dynamodb:List*"`），则在 DynamoDB 添加新的列表操作时无需更新策略。

该策略只允许在具有指定名称的 DynamoDB 表上执行操作。要允许您的用户对 DynamoDB 中的所有内容进行 `Read` 访问，也可以附加 [AmazonDynamoDBReadOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonDynamoDBReadOnlyAccess) AWS 托管策略。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ListAndDescribe",
            "Effect": "Allow",
            "Action": [
                "dynamodb:List*",
                "dynamodb:DescribeReservedCapacity*",
                "dynamodb:DescribeLimits",
                "dynamodb:DescribeTimeToLive"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SpecificTable",
            "Effect": "Allow",
            "Action": [
                "dynamodb:BatchGet*",
                "dynamodb:DescribeStream",
                "dynamodb:DescribeTable",
                "dynamodb:Get*",
                "dynamodb:Query",
                "dynamodb:Scan",
                "dynamodb:BatchWrite*",
                "dynamodb:CreateTable",
                "dynamodb:Delete*",
                "dynamodb:Update*",
                "dynamodb:PutItem"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/MyTable"
        }
    ]
}
```

------

# Amazon DynamoDB：允许访问特定的属性
<a name="reference_policies_examples_dynamodb_attributes"></a>

此示例说明如何创建基于身份的策略以允许访问特定 DynamoDB 属性。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

`dynamodb:Select` 要求会防止 API 操作返回未授权的属性，例如来自索引投影的属性。要了解有关 DynamoDB 条件键的更多信息，请参阅 *Amazon DynamoDB 开发人员指南*中的[指定条件：使用条件键](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/specifying-conditions.html#FGAC_DDB.ConditionKeys)。要了解在 IAM policy 的 `Condition` 块中使用多个条件或多个条件键的信息，请参阅[一个条件中包含多个值](reference_policies_elements_condition.md#Condition-multiple-conditions)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:GetItem",
                "dynamodb:BatchGetItem",
                "dynamodb:Query",
                "dynamodb:PutItem",
                "dynamodb:UpdateItem",
                "dynamodb:DeleteItem",
                "dynamodb:BatchWriteItem"
            ],
            "Resource": ["arn:aws:dynamodb:*:*:table/table-name"],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "dynamodb:Attributes": [
                        "column-name-1",
                        "column-name-2",
                        "column-name-3"
                    ]
                },
                "StringEqualsIfExists": {"dynamodb:Select": "SPECIFIC_ATTRIBUTES"}
            }
        }
    ]
}
```

------

# Amazon DynamoDB：允许基于 Amazon Cognito ID 对 DynamoDB 进行项目级别的访问
<a name="reference_policies_examples_dynamodb_items"></a>

此示例演示了如何创建基于身份的策略，以根据 Amazon Cognito 身份池用户 ID 授予对 `MyTable` DynamoDB 表的项目级访问权限。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

要使用此策略，DynamoDB 表的结构必须将 Amazon Cognito 身份池用户 ID 作为分区键。有关更多信息，请参阅 *Amazon DynamoDB 开发人员指南*中的[创建表](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.Basics.html#WorkingWithTables.Basics.CreateTable)。

要了解有关 DynamoDB 条件键的更多信息，请参阅 *Amazon DynamoDB 开发人员指南*中的[指定条件：使用条件键](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/specifying-conditions.html#FGAC_DDB.ConditionKeys)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:DeleteItem",
                "dynamodb:GetItem",
                "dynamodb:PutItem",
                "dynamodb:Query",
                "dynamodb:UpdateItem"
            ],
            "Resource": ["arn:aws:dynamodb:*:*:table/MyTable"],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "dynamodb:LeadingKeys": ["${cognito-identity.amazonaws.com:sub}"]
                }
            }
        }
    ]
}
```

------

# Amazon EC2：基于标签为 EC2 实例附加或分离 Amazon EBS 卷
<a name="reference_policies_examples_ec2_ebs-owner"></a>

此示例显示您可以创建基于身份的策略，允许 EBS 卷所有者为标记为开发实例（`VolumeUser`）的 EC2 实例附加或分离使用标签 `Department=Development` 定义的 EBS 卷。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

有关创建 IAM 策略以控制对 Amazon EC2 资源访问的更多信息，请参阅《*Amazon EC2 用户指南*》中的[控制对 Amazon EC2 资源的访问](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingIAM.html)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AttachVolume",
                "ec2:DetachVolume"
            ],
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/Department": "Development"}
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AttachVolume",
                "ec2:DetachVolume"
            ],
            "Resource": "arn:aws:ec2:*:*:volume/*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/VolumeUser": "${aws:username}"}
            }
        }
    ]
}
```

------

# Amazon EC2：允许以编程方式和使用控制台在特定子网中启动 EC2 实例
<a name="reference_policies_examples_ec2_instances-subnet"></a>

此示例说明您如何创建基于身份的策略以允许列出所有 EC2 对象的信息并在特定的子网中启动 EC2 实例。此策略定义了程序访问和控制台访问的权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "ec2:GetConsole*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:*:*:subnet/subnet-subnet-id",
                "arn:aws:ec2:*:*:network-interface/*",
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:volume/*",
                "arn:aws:ec2:*::image/ami-*",
                "arn:aws:ec2:*:*:key-pair/*",
                "arn:aws:ec2:*:*:security-group/*"
            ]
        }
    ]
}
```

------

# Amazon EC2：允许以编程方式和在控制台中管理关联至特定标签密钥值对的 EC2 安全组
<a name="reference_policies_examples_ec2_securitygroups-vpc"></a>

此示例说明如何创建基于身份的策略，该策略授予用户对具有相同标签的安全组采取某些操作的权限。该策略授予相应的权限，以便在 Amazon EC2 控制台中查看安全组、添加和删除入站和出站规则，以及为具有标签 `Department=Test` 的现有安全组列出并修改规则描述。此策略定义了程序访问和控制台访问的权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ec2:DescribeSecurityGroups",
         "ec2:DescribeSecurityGroupRules",
         "ec2:DescribeTags"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:AuthorizeSecurityGroupIngress", 
         "ec2:RevokeSecurityGroupIngress", 
         "ec2:AuthorizeSecurityGroupEgress", 
         "ec2:RevokeSecurityGroupEgress", 
         "ec2:ModifySecurityGroupRules",
         "ec2:UpdateSecurityGroupRuleDescriptionsIngress", 
         "ec2:UpdateSecurityGroupRuleDescriptionsEgress"
      ],
      "Resource": [
         "arn:aws:ec2:us-east-1:111122223333:security-group/*"
      ],
      "Condition": {
         "StringEquals": {
            "aws:ResourceTag/Department": "Test"
         }
      }
     },     
     {
      "Effect": "Allow",
      "Action": [
         "ec2:ModifySecurityGroupRules"
      ],
      "Resource": [
         "arn:aws:ec2:us-east-1:111122223333:security-group-rule/*"
      ]
     }
   ]
}
```

------

# Amazon EC2：允许以编程方式和在控制台中启动或停止用户已标记的 EC2 实例
<a name="reference_policies_examples_ec2_tag-owner"></a>

此示例说明了如何创建基于身份的策略以允许 IAM 用户启动或停止 EC2 实例，但仅限实例标签 `Owner` 具有该用户的用户名值时。此策略定义了程序访问和控制台访问的权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Owner": "${aws:username}"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances",
            "Resource": "*"
        }
    ]
}
```

------

# EC2：基于标签来启动或停止实例
<a name="reference_policies_examples_ec2-start-stop-tags"></a>

此示例说明了如何创建基于身份的策略以允许使用标签键值对 `Project = DataAnalytics` 启动或停止实例，但仅限具有标签键值对 `Department = Data` 的主体执行。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

如果策略中的条件的两个部分都为 true，则此条件返回 true。实例必须具有 `Project=DataAnalytics` 标签。此外，发起请求的 IAM 主体（用户或角色）必须具有 `Department=Data` 标签。

**注意**  
作为最佳实践，请将具有 `aws:PrincipalTag` 条件键的策略附加到 IAM 组，以应对一些用户可能具有指定标签而另一些用户可能没有这些标签的情况。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "StartStopIfTags",
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Project": "DataAnalytics",
                    "aws:PrincipalTag/Department": "Data"
                }
            }
        }
    ]
}
```

------

# EC2：基于匹配的主体和资源标签来启动或停止实例
<a name="reference_policies_examples_ec2-start-stop-match-tags"></a>

此示例说明如何创建基于身份的策略以允许主体在实例的资源标签和主体标签具有相同的标签键值 `CostCenter` 时启动或停止 Amazon EC2 实例。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

**注意**  
作为最佳实践，请将具有 `aws:PrincipalTag` 条件键的策略附加到 IAM 组，以应对一些用户可能具有指定标签而另一些用户可能没有这些标签的情况。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "ec2:startInstances",
            "ec2:stopInstances"
        ],
        "Resource": "*",
        "Condition": {"StringEquals": 
            {"aws:ResourceTag/CostCenter": "${aws:PrincipalTag/CostCenter}"}}
    }
}
```

------

# Amazon EC2：允许以编程方式和使用控制台在特定区域进行不受限制的 EC2 访问
<a name="reference_policies_examples_ec2_region"></a>

此示例说明了如何创建基于身份的策略以允许在特定区域中进行完全 EC2 访问。此策略定义了程序访问和控制台访问的权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。有关区域代码的列表，请参阅 * Amazon EC2 用户指南*中的[可用区域](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions)。

或者，您也可以使用全局条件键 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion)，所有 Amazon EC2 API 操作均支持该条件键。有关更多信息，请参阅 *Amazon EC2 用户指南*中的[示例：限制对特定区域的访问](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-region)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": "ec2:*",
            "Resource": "*",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "ec2:Region": "us-east-2"
                }
            }
        }
    ]
}
```

------

# Amazon EC2：允许以编程方式和在控制台中启动或停止 EC2 实例并修改安全组
<a name="reference_policies_examples_ec2_instance-securitygroup"></a>

此示例说明如何创建基于身份的策略以允许启动或停止特定的 EC2 实例并修改特定的安全组。此策略定义了程序访问和控制台访问的权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "ec2:DescribeInstances",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSecurityGroupReferences",
        "ec2:DescribeStaleSecurityGroups"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "ec2:AuthorizeSecurityGroupEgress",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:RevokeSecurityGroupEgress",
        "ec2:RevokeSecurityGroupIngress",
        "ec2:StartInstances",
        "ec2:StopInstances"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:instance/i-instance-id",
        "arn:aws:ec2:*:*:security-group/sg-security-group-id"
      ],
      "Effect": "Allow"
    }
  ]
}
```

------

# Amazon EC2：要求进行 MFA (GetSessionToken) 以执行特定的 EC2 操作
<a name="reference_policies_examples_ec2_require-mfa"></a>

此示例说明如何创建基于身份的策略以允许完全访问 Amazon EC2 中的 AWS API 操作。不过，如果未使用[多重身份验证 (MFA) ](id_credentials_mfa.md)验证用户身份，则它显式拒绝访问 `StopInstances` 和 `TerminateInstances` API 操作。要以编程方式执行该操作，用户必须在调用 `GetSessionToken` 操作时包含可选的 `SerialNumber` 和 `TokenCode` 值。该操作返回已使用 MFA 验证的临时凭证。要了解 GetSessionToken 的更多信息，请参阅[为不受信任的环境中的用户请求凭证](id_credentials_temp_request.md#api_getsessiontoken)。

此策略有何作用？
+ `AllowAllActionsForEC2` 语句允许所有 Amazon EC2 操作。
+ 在缺少 MFA 上下文时，`DenyStopAndTerminateWhenMFAIsNotPresent` 语句拒绝 `StopInstances` 和 `TerminateInstances` 操作。这意味着，在缺少多重身份验证上下文（表示不使用 MFA）时，将拒绝这些操作。拒绝将覆盖允许。

**注意**  
`Deny` 语句中的 `MultiFactorAuthPresent` 的条件检查不应为 `{"Bool":{"aws:MultiFactorAuthPresent":false}}`，因为在未使用 MFA 时，该键不存在并且无法进行评估。因此，在检查值之前，请使用 `BoolIfExists` 检查以确定该键是否存在。有关更多信息，请参阅 [...IfExists 条件运算符](reference_policies_elements_condition_operators.md#Conditions_IfExists)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAllActionsForEC2",
            "Effect": "Allow",
            "Action": "ec2:*",
            "Resource": "*"
        },
        {
            "Sid": "DenyStopAndTerminateWhenMFAIsNotPresent",
            "Effect": "Deny",
            "Action": [
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {"aws:MultiFactorAuthPresent": false}
            }
        }
    ]
}
```

------

# Amazon EC2：将要终止的 EC2 实例限制为某个 IP 地址范围
<a name="reference_policies_examples_ec2_terminate-ip"></a>

此示例显示了如果请求来自指定 IP 范围以外，您可以创建基于身份的策略，通过允许操作但显式拒绝访问来限制 EC2 实例。当您公司的 IP 地址位于指定范围内时，该策略很有用。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

如果将该策略与允许 `ec2:TerminateInstances` 操作的其他策略（例如 [AmazonEC2FullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonEC2FullAccess) AWS 托管策略）一起使用，则访问会被拒绝。这是因为“显式拒绝”声明优先于“允许”声明。有关更多信息，请参阅 [AWS 执行代码逻辑如何评估允许或拒绝访问的请求](reference_policies_evaluation-logic_policy-eval-denyallow.md)。

**重要**  
`aws:SourceIp` 条件键拒绝对 AWS 服务（例如 AWS CloudFormation）的访问（代表您进行的调用）。有关使用 `aws:SourceIp` 条件键的更多信息，请参阅[AWS 全局条件上下文密钥](reference_policies_condition-keys.md)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["ec2:TerminateInstances"],
            "Resource": ["*"]
        },
        {
            "Effect": "Deny",
            "Action": ["ec2:TerminateInstances"],
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": [
                        "192.0.2.0/24",
                        "203.0.113.0/24"
                    ]
                }
            },
            "Resource": ["*"]
        }
    ]
}
```

------

# IAM：访问策略模拟器 API
<a name="reference_policies_examples_iam_policy-sim"></a>

此示例说明您如何创建基于身份的策略，允许对附加到当前 AWS 账户 中的用户、组或角色的策略使用策略模拟器 API。该策略还允许模拟以字符串形式传递给该 API 的不太敏感的策略。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "iam:GetContextKeysForCustomPolicy",
                "iam:GetContextKeysForPrincipalPolicy",
                "iam:SimulateCustomPolicy",
                "iam:SimulatePrincipalPolicy"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

------

**注意**  
要允许用户访问策略模拟器控制台，以模拟附加到当前 AWS 账户 中用户、组或角色的策略，请参阅[IAM：访问策略模拟器控制台](reference_policies_examples_iam_policy-sim-console.md)。

# IAM：访问策略模拟器控制台
<a name="reference_policies_examples_iam_policy-sim-console"></a>

此示例说明您如何创建基于身份的策略，以允许对附加到当前 AWS 账户 中的用户、组或角色的策略使用策略模拟器控制台。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。

您可以在以下位置访问 IAM policy simulator 控制台：[https://policysim.aws.amazon.com/](https://policysim.aws.amazon.com/)

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "iam:GetGroup",
                "iam:GetGroupPolicy",
                "iam:GetPolicy",
                "iam:GetPolicyVersion",
                "iam:GetRole",
                "iam:GetRolePolicy",
                "iam:GetUser",
                "iam:GetUserPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListAttachedRolePolicies",
                "iam:ListAttachedUserPolicies",
                "iam:ListGroups",
                "iam:ListGroupPolicies",
                "iam:ListGroupsForUser",
                "iam:ListRolePolicies",
                "iam:ListRoles",
                "iam:ListUserPolicies",
                "iam:ListUsers"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

------

# IAM：代入具有特定标签的角色
<a name="reference_policies_examples_iam-assume-tagged-role"></a>

此示例说明了如何创建基于身份的策略以允许 IAM 用户代入具有标签键值对 `Project = ExampleCorpABC` 的角色。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

如果具有该标签的角色在与该用户相同的账户中存在，则用户可以担任该角色。如果具有该标签的角色在与该用户不同的账户中存在，则需要使用额外的权限。跨账户角色的信任策略还必须允许该用户或其账户的所有成员担任该角色。有关使用角色进行跨账户访问的信息，请参阅[在您拥有的其他 AWS 账户 中 IAM 用户的访问权限](id_roles_common-scenarios_aws-accounts.md)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AssumeTaggedRole",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {"iam:ResourceTag/Project": "ExampleCorpABC"}
            }
        }
    ]
}
```

------

# IAM：允许或拒绝以编程方式和在控制台中访问多个服务
<a name="reference_policies_examples_iam_multiple-services-console"></a>

此示例说明了如何创建基于身份的策略，以允许完全访问多个服务并在 IAM 中进行有限的自我管理访问。该策略还会拒绝对 Amazon S3 `logs` 存储桶或 Amazon EC2 `i-1234567890abcdef0` 实例的访问。此策略定义了程序访问和控制台访问的权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

**警告**  
该策略允许完全访问多个服务中的每个操作和资源。只应将该策略应用于受信任的管理员。

您可以将该策略作为权限边界，以定义基于身份的策略可以为 IAM 用户授予的最大权限。有关更多信息，请参阅 [使用权限边界将责任委派给其他人](access_policies_boundaries.md#access_policies_boundaries-delegate)。在将策略作为用户的权限边界时，这些语句定义以下边界：
+ `AllowServices` 语句允许完全访问指定的 AWS 服务。这意味着，用户在这些服务中的操作仅受附加到用户的权限策略的限制。
+ `AllowIAMConsoleForCredentials` 语句允许访问以列出所有 IAM 用户。要在 AWS 管理控制台中导航**用户**页面，此访问权限是必需的。它还允许查看账户的密码要求，这是用户更改自己的密码所必需的。
+ `AllowManageOwnPasswordAndAccessKeys` 语句允许用户仅管理其自己的控制台密码和编程访问密钥。这是非常重要的，因为如果另一个策略为用户授予完全 IAM 访问权限，该用户可能会更改自己或其他用户的权限。此语句可防止这种情况的发生。
+ `DenyS3Logs` 语句显式拒绝对 `logs` 存储桶的访问。该策略对用户实施公司限制。
+ `DenyEC2Production` 语句显式拒绝对 `i-1234567890abcdef0` 实例的访问。

该策略不允许访问其他服务或操作。在将策略作为用户的权限边界时，即使附加到用户的其他策略允许这些操作，AWS 也会拒绝请求。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowServices",
            "Effect": "Allow",
            "Action": [
                "s3:*",
                "cloudwatch:*",
                "ec2:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowIAMConsoleForCredentials",
            "Effect": "Allow",
            "Action": [
                "iam:ListUsers",
                "iam:GetAccountPasswordPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowManageOwnPasswordAndAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:*AccessKey*",
                "iam:ChangePassword",
                "iam:GetUser",
                "iam:*LoginProfile*"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "DenyS3Logs",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::logs",
                "arn:aws:s3:::logs/*"
            ]
        },
        {
            "Sid": "DenyEC2Production",
            "Effect": "Deny",
            "Action": "ec2:*",
            "Resource": "arn:aws:ec2:*:*:instance/i-1234567890abcdef0"
        }
    ]
}
```

------

# IAM：将特定标签添加到具有特定标签的用户
<a name="reference_policies_examples_iam-add-tag"></a>

此示例说明了如何创建基于身份的策略以允许将带有标签值 `Marketing`、`Development` 或 `QualityAssurance` 的标签键 `Department` 添加到 IAM 用户。该用户必须已包含标签键值对 `JobFunction = manager`。您可以使用此策略来要求一个经理仅属于三个部门之一。此策略定义了程序访问和控制台访问的权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

`ListTagsForAllUsers` 语句允许对您账户中的所有用户查看标签。

`TagManagerWithSpecificDepartment` 语句中的第一个条件使用 `StringEquals` 条件运算符。如果条件的两个部分都为 true，则此条件返回 true。要标记的用户必须已具有 `JobFunction=Manager` 标签。请求必须包括 `Department` 标签键以及其中一个列出的标签值。

第二个条件使用 `ForAllValues:StringEquals` 条件运算符。如果请求中的标签键与策略中的键匹配，则条件返回 true。这意味着，请求中的唯一标签键必须为 `Department`。有关使用 `ForAllValues` 的更多信息，请参阅[多值上下文键的集合运算符](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ListTagsForAllUsers",
            "Effect": "Allow",
            "Action": [
                "iam:ListUserTags",
                "iam:ListUsers"
            ],
            "Resource": "*"
        },
        {
            "Sid": "TagManagerWithSpecificDepartment",
            "Effect": "Allow",
            "Action": "iam:TagUser",
            "Resource": "*",
            "Condition": {"StringEquals": {
                "iam:ResourceTag/JobFunction": "Manager",
                "aws:RequestTag/Department": [
                    "Marketing",
                    "Development",
                    "QualityAssurance"
                    ]
                },
                "ForAllValues:StringEquals": {"aws:TagKeys": "Department"}
            }
        }
    ]
}
```

------

# IAM：添加具有特定值的特定标签
<a name="reference_policies_examples_iam-add-tag-user-role"></a>

此示例说明了如何创建基于身份的策略以允许仅向任何 IAM 用户或角色添加标签键 `CostCenter` 和标签值 `A-123` 或标签值 `B-456`。您可以使用此策略将标记限制到一个特定的标签键或一组标签值。此策略定义了程序访问和控制台访问的权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

`ConsoleDisplay` 语句允许对您账户中的所有用户和角色查看标签。

`AddTag` 语句中的第一个条件使用 `StringEquals` 条件运算符。如果请求包含 `CostCenter` 标签键以及其中一个列出的标签值，则条件返回 true。

第二个条件使用 `ForAllValues:StringEquals` 条件运算符。如果请求中的标签键与策略中的键匹配，则条件返回 true。这意味着，请求中的唯一标签键必须为 `CostCenter`。有关使用 `ForAllValues` 的更多信息，请参阅[多值上下文键的集合运算符](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConsoleDisplay",
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:GetUser",
                "iam:ListRoles",
                "iam:ListRoleTags",
                "iam:ListUsers",
                "iam:ListUserTags"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AddTag",
            "Effect": "Allow",
            "Action": [
                "iam:TagUser",
                "iam:TagRole"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/CostCenter": [
                        "A-123",
                        "B-456"
                    ]
                },
                "ForAllValues:StringEquals": {"aws:TagKeys": "CostCenter"}
            }
        }
    ]
}
```

------

# IAM：仅创建具有特定标签的新用户
<a name="reference_policies_examples_iam-new-user-tag"></a>

此示例说明了如何创建基于身份的策略以允许创建 IAM 用户，但仅限于包含 `Department` 和 `JobFunction` 标签键之一或同时包含两者。`Department` 标签键必须具有 `Development` 或 `QualityAssurance` 标签值。`JobFunction` 标签键必须具有 `Employee` 标签值。您可以使用此策略要求新用户具有特定工作职能和部门。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

语句中的第一个条件使用 `StringEqualsIfExists` 条件运算符。如果请求中存在 `Department` 或 `JobFunction` 键，则标签必须包含指定的值。如果任一键都不存在，则此条件的计算结果将为 true。该条件的计算结果为 false 的唯一方法是：其中一个指定条件键在请求中存在，但具有的值不同于允许的值。有关使用 `IfExists` 的更多信息，请参阅[...IfExists 条件运算符](reference_policies_elements_condition_operators.md#Conditions_IfExists)。

第二个条件使用 `ForAllValues:StringEquals` 条件运算符。如果请求中指定的每个标签键都与策略中至少一个值匹配，则该条件将返回 true。这意味着，请求中的所有标签必须在此列表中。但是，请求只能包含列表中的一个标签。例如，您可以创建一个仅具有 `Department=QualityAssurance` 标签的 IAM 用户。但是，您不能创建一个同时具有 `JobFunction=employee` 标签和 `Project=core` 标签的 IAM 用户。有关使用 `ForAllValues` 的更多信息，请参阅[多值上下文键的集合运算符](reference_policies_condition-single-vs-multi-valued-context-keys.md#reference_policies_condition-multi-valued-context-keys)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "TagUsersWithOnlyTheseTags",
            "Effect": "Allow",
            "Action": [
                "iam:CreateUser",
                "iam:TagUser"
            ],
            "Resource": "*",
            "Condition": {
                "StringEqualsIfExists": {
                    "aws:RequestTag/Department": [
                        "Development",
                        "QualityAssurance"
                    ],
                    "aws:RequestTag/JobFunction": "Employee"
                },
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "Department",
                        "JobFunction"
                    ]
                }
            }
        }
    ]
}
```

------

# IAM：生成和检索 IAM 凭证报告
<a name="reference_policies_examples_iam-credential-report"></a>

此示例说明了如何创建基于身份的策略，以允许用户生成和下载报告，其中将列出其 AWS 账户 中的所有 IAM 用户。该报告包含用户凭证的状态，包括密码、访问密钥、MFA 设备和签名证书。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。

有关凭证报告的更多信息，请参阅[为您的 AWS 账户 生成凭证报告](id_credentials_getting-report.md)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:GenerateCredentialReport",
            "iam:GetCredentialReport"
        ],
        "Resource": "*"
    }
}
```

------

# IAM：允许以编程方式和在控制台中管理组的成员资格
<a name="reference_policies_examples_iam_manage-group-membership"></a>

此示例说明如何创建基于身份的策略以允许更新名为 `MarketingTeam` 组的成员资格。此策略定义了程序访问和控制台访问的权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

此策略有何作用？
+ `ViewGroups` 语句允许用户列出 AWS 管理控制台 中的所有用户和组。它还允许用户查看有关账户中的用户的基本信息。这些权限必须位于自己的语句中，因为它们不支持或不需要指定资源 ARN。相反，权限指定 `"Resource" : "*"`。
+ `ViewEditThisGroup` 语句允许用户查看有关 `MarketingTeam` 组的信息，以及在该组中添加和删除用户。

该策略不允许用户查看或编辑用户或 `MarketingTeam` 组的权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewGroups",
            "Effect": "Allow",
            "Action": [
                "iam:ListGroups",
                "iam:ListUsers",
                "iam:GetUser",
                "iam:ListGroupsForUser"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ViewEditThisGroup",
            "Effect": "Allow",
            "Action": [
                "iam:AddUserToGroup",
                "iam:RemoveUserFromGroup",
                "iam:GetGroup"
            ],
            "Resource": "arn:aws:iam::*:group/MarketingTeam"
        }
    ]
}
```

------

# IAM：管理特定标签
<a name="reference_policies_examples_iam-manage-tags"></a>

此示例说明如何创建基于身份的策略以允许添加和删除来自 IAM 实体（用户和角色）且带有标签键 `Department` 的 IAM 标签。此策略不会限制 `Department` 标签的值。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:TagUser",
            "iam:TagRole",
            "iam:UntagUser",
            "iam:UntagRole"

        ],
        "Resource": "*",
        "Condition": {"ForAllValues:StringEquals": {"aws:TagKeys": "Department"}}
    }
}
```

------

# IAM：将 IAM 角色传递给特定 AWS 服务
<a name="reference_policies_examples_iam-passrole-service"></a>

此示例说明了如何创建基于身份的策略以允许将任何 IAM 服务角色传递给 Amazon CloudWatch 服务。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

服务角色是一个 IAM 角色，它将 AWS 服务指定为可担任该角色的主体。这允许服务担任该角色，并代表您访问其他服务中的资源。要允许 Amazon CloudWatch 担任您传递的角色，必须在您的角色的信任策略中将 `cloudwatch.amazonaws.com` 服务主体指定为主体。服务主体由服务定义。要了解某项服务的服务主体，请参阅该服务的文档。对于某些服务，请参阅[使用 IAM 的 AWS 服务](reference_aws-services-that-work-with-iam.md)并查找**服务相关角色**列为**是**的服务。请选择**是**与查看该服务的服务关联角色文档的链接。请搜索 `amazonaws.com` 以查看服务主体。

要了解将服务角色传递给服务的更多信息，请参阅[向用户授予权限以将角色传递给 AWS 服务](id_roles_use_passrole.md)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {"iam:PassedToService": "cloudwatch.amazonaws.com"}
            }
        }
    ]
}
```

------

# IAM：允许对 IAM 控制台进行只读访问而不生成报告
<a name="reference_policies_examples_iam_read-only-console-no-reporting"></a>

此示例说明了如何创建基于身份的策略以允许 IAM 用户执行任何以字符串 `Get` 或 `List` 开头的 IAM 操作。在用户使用控制台时，控制台向 IAM 发出请求以列出组、用户、角色和策略，并生成有关这些资源的报告。

星号将作为通配符。在策略中使用 `iam:Get*` 时，生成的权限包括以 `Get` 开头的所有 IAM 操作，例如，`GetUser` 和 `GetRole`。如果将来在 IAM 中添加新类型的实体，通配符是非常有用的。在这种情况下，策略授予的权限自动允许用户列出和获取有关这些新实体的详细信息。

此策略不能用于生成报告或服务的上次访问详细信息。有关允许此操作的其他策略，请参阅 [IAM：允许对 IAM 控制台进行只读访问](reference_policies_examples_iam_read-only-console.md)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:Get*",
            "iam:List*"
        ],
        "Resource": "*"
    }
}
```

------

# IAM：允许对 IAM 控制台进行只读访问
<a name="reference_policies_examples_iam_read-only-console"></a>

此示例说明了如何创建基于身份的策略以允许 IAM 用户执行任何以字符串 `Get`、`List` 或 `Generate` 开头的 IAM 操作。在用户使用 IAM 控制台时，控制台发出请求以列出组、用户、角色和策略，并生成有关这些资源的报告。

星号将作为通配符。在策略中使用 `iam:Get*` 时，生成的权限包括以 `Get` 开头的所有 IAM 操作，例如，`GetUser` 和 `GetRole`。使用通配符是非常有用的，特别是将来在 IAM 中添加新类型的实体。在这种情况下，策略授予的权限自动允许用户列出和获取有关这些新实体的详细信息。

将此策略用于控制台访问，其中包括生成报告或服务上次访问详细信息的权限。有关不允许生成操作的其他策略，请参阅 [IAM：允许对 IAM 控制台进行只读访问而不生成报告](reference_policies_examples_iam_read-only-console-no-reporting.md)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:Get*",
            "iam:List*",
            "iam:Generate*"
        ],
        "Resource": "*"
    }
}
```

------

# IAM：允许特定的 IAM 用户以编程方式和在控制台中管理组
<a name="reference_policies_examples_iam_users-manage-group"></a>

此示例说明如何创建基于身份的策略以允许特定 IAM 用户管理 `AllUsers` 组。此策略定义了程序访问和控制台访问的权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

此策略有何作用？
+ `AllowAllUsersToListAllGroups` 语句允许列出所有组。这对于控制台访问是必需的。该权限必须位于自己的语句中，因为它不支持资源 ARN。相反，权限指定 `"Resource" : "*"`。
+ `AllowAllUsersToViewAndManageThisGroup` 语句允许可以对组资源类型执行的所有组操作。它不允许执行 `ListGroupsForUser` 操作，可以对用户资源类型执行该操作，但不能对组资源类型执行该操作。有关可以为 IAM 操作指定的资源类型的更多信息，请参阅 [AWS Identity and Access Management 的操作、资源和条件键](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_identityandaccessmanagement.html#identityandaccessmanagement-actions-as-permissions)。
+ `LimitGroupManagementAccessToSpecificUsers` 语句拒绝具有指定名称的用户访问以执行写入和权限管理组操作。如果策略中指定的用户尝试对组进行更改，该语句不会拒绝请求。`AllowAllUsersToViewAndManageThisGroup` 语句允许该请求。如果其他用户尝试执行这些操作，则会拒绝该请求。在 IAM 控制台中创建该策略时，您可以查看使用**写入**或**权限管理**访问级别定义的 IAM 操作。为此，请从 **JSON** 选项卡切换到**可视化编辑器**选项卡。有关访问级别的更多信息，请参阅 [AWS Identity and Access Management 的操作、资源和条件键](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_identityandaccessmanagement.html#identityandaccessmanagement-actions-as-permissions)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAllUsersToListAllGroups",
            "Effect": "Allow",
            "Action": "iam:ListGroups",
            "Resource": "*"
        },
        {
            "Sid": "AllowAllUsersToViewAndManageThisGroup",
            "Effect": "Allow",
            "Action": "iam:*Group*",
            "Resource": "arn:aws:iam::*:group/AllUsers"
        },
        {
            "Sid": "LimitGroupManagementAccessToSpecificUsers",
            "Effect": "Deny",
            "Action": [
                "iam:AddUserToGroup",
                "iam:CreateGroup",
                "iam:RemoveUserFromGroup",
                "iam:DeleteGroup",
                "iam:AttachGroupPolicy",
                "iam:UpdateGroup",
                "iam:DetachGroupPolicy",
                "iam:DeleteGroupPolicy",
                "iam:PutGroupPolicy"
            ],
            "Resource": "arn:aws:iam::*:group/AllUsers",
            "Condition": {
                "StringNotEquals": {
                    "aws:username": [
                        "srodriguez",
                        "mjackson",
                        "adesai"
                    ]
                }
            }
        }
    ]
}
```

------

# IAM：允许以编程方式和在控制台中设置账户密码要求
<a name="reference_policies_examples_iam_set-account-pass-policy"></a>

此示例说明了如何创建基于身份的策略以允许用户查看和更新其账户密码要求。密码要求指定账户成员密码的复杂性要求和强制轮换期。此策略定义了程序访问和控制台访问的权限。

要了解如何为您的账户设置账户密码要求策略，请参阅[为 IAM 用户设置账户密码策略](id_credentials_passwords_account-policy.md)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:GetAccountPasswordPolicy",
            "iam:UpdateAccountPasswordPolicy"
        ],
        "Resource": "*"
    }
}
```

------

# IAM：基于用户路径访问策略模拟器 API
<a name="reference_policies_examples_iam_policy-sim-path"></a>

此示例说明了如何创建基于身份的策略以仅允许具有路径 `Department/Development` 的用户使用策略模拟器 API。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "iam:GetContextKeysForPrincipalPolicy",
                "iam:SimulatePrincipalPolicy"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iam::*:user/Department/Development/*"
        }
    ]
}
```

------

**注意**  
要创建允许具有路径 `Department/Development` 的用户使用策略模拟器控制台的策略，请参阅 [IAM：基于用户路径访问策略模拟器控制台](reference_policies_examples_iam_policy-sim-path-console.md)。

# IAM：基于用户路径访问策略模拟器控制台
<a name="reference_policies_examples_iam_policy-sim-path-console"></a>

此示例说明了如何创建基于身份的策略以仅允许具有路径 `Department/Development` 的用户使用策略模拟器控制台。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

您可以在以下位置访问 IAM policy simulator：[https://policysim.aws.amazon.com/](https://policysim.aws.amazon.com/)

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "iam:GetPolicy",
                "iam:GetUserPolicy"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "iam:GetUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListGroupsForUser",
                "iam:ListUserPolicies",
                "iam:ListUsers"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iam::*:user/Department/Development/*"
        }
    ]
}
```

------

# IAM：允许 IAM 用户自行管理 MFA 设备
<a name="reference_policies_examples_iam_mfa-selfmanage"></a>

此示例说明如何创建 IAM policy 以允许基于身份的用户自行管理其[多重身份验证（MFA）](id_credentials_mfa.md)设备。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。

**注意**  
如果具有此策略的 IAM 用户未通过 MFA 进行身份验证，则此策略会拒绝对所有 AWS 操作（使用 MFA 进行身份验证所需的操作除外）的访问。如果为已登录 AWS 的用户添加这些权限，他们需要注销并重新登录才能看到这些更改。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowListActions",
            "Effect": "Allow",
            "Action": [
                "iam:ListUsers",
                "iam:ListVirtualMFADevices"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowUserToCreateVirtualMFADevice",
            "Effect": "Allow",
            "Action": [
                "iam:CreateVirtualMFADevice"
            ],
            "Resource": "arn:aws:iam::*:mfa/*"
        },
        {
            "Sid": "AllowUserToManageTheirOwnMFA",
            "Effect": "Allow",
            "Action": [
                "iam:EnableMFADevice",
                "iam:GetMFADevice",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
            "Sid": "AllowUserToDeactivateTheirOwnMFAOnlyWhenUsingMFA",
            "Effect": "Allow",
            "Action": [
                "iam:DeactivateMFADevice"
            ],
            "Resource": [
                "arn:aws:iam::*:user/${aws:username}"
            ],
            "Condition": {
                "Bool": {
                    "aws:MultiFactorAuthPresent": "true"
                }
            }
        },
        {
            "Sid": "BlockMostAccessUnlessSignedInWithMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:CreateVirtualMFADevice",
                "iam:EnableMFADevice",
                "iam:ListMFADevices",
                "iam:ListUsers",
                "iam:ListVirtualMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}
```

------

# IAM：允许 IAM 用户通过编程方式和控制台更新自己的凭证
<a name="reference_policies_examples_iam_credentials_console"></a>

此示例演示了如何创建基于身份的策略以允许 IAM 用户更新自己的访问密钥、签名证书、特定于服务的凭证和密码。此策略定义了程序访问和控制台访问的权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:ListUsers",
                "iam:GetAccountPasswordPolicy"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:*AccessKey*",
                "iam:ChangePassword",
                "iam:GetUser",
                "iam:*ServiceSpecificCredential*",
                "iam:*SigningCertificate*"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        }
    ]
}
```

------

要了解用户如何在控制台中更改自己的密码，请参阅[IAM 用户如何更改自己的密码](id_credentials_passwords_user-change-own.md)。

# IAM：查看 AWS Organizations 策略的服务上次访问信息
<a name="reference_policies_examples_iam_service-accessed-data-orgs"></a>

此示例说明了如何创建基于身份的策略以允许查看特定 AWS Organizations 策略的服务上次访问信息。该策略允许检索具有 `p-policy123` ID 的服务控制策略 (SCP) 的数据。必须使用 AWS Organizations 管理账户凭证对生成和查看报告的人员进行身份验证。该策略允许请求者检索其组织中的任何 AWS Organizations 实体的数据。此策略定义了程序访问和控制台访问的权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

有关上次访问的信息的重要信息（包括所需的权限、故障排除和支持的区域），请参阅[使用上次访问的信息优化 AWS 中的权限](access_policies_last-accessed.md)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowOrgsReadOnlyAndIamGetReport",
            "Effect": "Allow",
            "Action": [
                "iam:GetOrganizationsAccessReport",
                "organizations:Describe*",
                "organizations:List*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowGenerateReportOnlyForThePolicy",
            "Effect": "Allow",
            "Action": "iam:GenerateOrganizationsAccessReport",
            "Resource": "*",
            "Condition": {
                "StringEquals": {"iam:OrganizationsPolicyId": "p-policy123"}
            }
        }
    ]
}
```

------

# IAM：对可应用于 IAM 用户、组或角色的托管策略加以限制
<a name="reference_policies_examples_iam_limit-managed"></a>

此示例说明了如何创建基于身份的策略以限制客户托管和 AWS 托管的策略，这些策略将应用于 IAM 用户、组或角色。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:AttachUserPolicy",
            "iam:DetachUserPolicy"
        ],
        "Resource": "*",
        "Condition": {
            "ArnEquals": {
                "iam:PolicyARN": [
                    "arn:aws:iam::*:policy/policy-name-1",
                    "arn:aws:iam::*:policy/policy-name-2"
                ]
            }
        }
    }
}
```

------

# AWS：拒绝访问您账户之外的资源，AWS 托管式 IAM policy 除外。
<a name="resource_examples_iam_policies_resource_account"></a>

在基于身份的策略中使用 `aws:ResourceAccount` 可能会影响用户或角色利用某些需要与服务拥有的账户中的资源进行交互的服务的能力。

您可以创建包含例外情况的策略，以允许 AWS 托管式 IAM policy。您的 AWS Organizations 外部的服务托管式账户拥有托管式 IAM 策略。有四项 IAM 操作可以列出和检索 AWS 托管式策略。在策略中的 `AllowAccessToS3ResourcesInSpecificAccountsAndSpecificService1` 语句的 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notaction.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notaction.html) 元素中使用这些操作。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessToResourcesInSpecificAccountsAndSpecificService1",
      "Effect": "Deny",
      "NotAction": [
        "iam:GetPolicy",
        "iam:GetPolicyVersion",
        "iam:ListEntitiesForPolicy",
        "iam:ListPolicies"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": [
            "111122223333"
          ]
        }
      }
    }
  ]
}
```

------

# AWS Lambda：允许 Lambda 函数访问 Amazon DynamoDB 表
<a name="reference_policies_examples_lambda-access-dynamodb"></a>

此示例说明了如何创建基于身份的策略以允许对特定 Amazon DynamoDB 表进行读写访问。该策略还允许将日志文件写入到 CloudWatch Logs 中。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

要使用该策略，请将策略附加到 Lambda [服务角色](id_roles_create_for-service.md)。服务角色是在您的账户中创建的一个角色，以允许服务代表您执行操作。该服务角色必须在信任策略中包含 AWS Lambda 以作为主体。有关如何使用此策略的详细信息，请参阅 AWS 安全博客中的[如何创建 AWS IAM policy 以授予 AWS Lambda 访问 Amazon DynamoDB 表的权限](https://aws.amazon.com/blogs/security/how-to-create-an-aws-iam-policy-to-grant-aws-lambda-access-to-an-amazon-dynamodb-table/)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadWriteTable",
            "Effect": "Allow",
            "Action": [
                "dynamodb:BatchGetItem",
                "dynamodb:GetItem",
                "dynamodb:Query",
                "dynamodb:Scan",
                "dynamodb:BatchWriteItem",
                "dynamodb:PutItem",
                "dynamodb:UpdateItem"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/SampleTable"
        },
        {
            "Sid": "GetStreamRecords",
            "Effect": "Allow",
            "Action": "dynamodb:GetRecords",
            "Resource": "arn:aws:dynamodb:*:*:table/SampleTable/stream/* "
        },
        {
            "Sid": "WriteLogStreamsAndGroups",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CreateLogGroup",
            "Effect": "Allow",
            "Action": "logs:CreateLogGroup",
            "Resource": "*"
        }
    ]
}
```

------

# Amazon RDS：允许在特定区域中进行完全 RDS 数据库访问。
<a name="reference_policies_examples_rds_region"></a>

此示例说明了如何创建基于身份的策略以允许在特定区域中进行完全 RDS 数据库访问。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "rds:*",
            "Resource": ["arn:aws:rds:us-east-1:*:*"]
        },
        {
            "Effect": "Allow",
            "Action": ["rds:Describe*"],
            "Resource": ["*"]
        }
    ]
}
```

------

# Amazon RDS：允许以编程方式和在控制台中还原 RDS 数据库
<a name="reference_policies_examples_rds_db-console"></a>

此示例说明了了如何创建允许还原 RDS 数据库的基于身份的策略。此策略定义了程序访问和控制台访问的权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "rds:CreateDBParameterGroup",
                "rds:CreateDBSnapshot",
                "rds:DeleteDBSnapshot",
                "rds:Describe*",
                "rds:DownloadDBLogFilePortion",
                "rds:List*",
                "rds:ModifyDBInstance",
                "rds:ModifyDBParameterGroup",
                "rds:ModifyOptionGroup",
                "rds:RebootDBInstance",
                "rds:RestoreDBInstanceFromDBSnapshot",
                "rds:RestoreDBInstanceToPointInTime"
            ],
            "Resource": "*"
        }
    ]
}
```

------

# Amazon RDS：允许标签所有者不受限制地访问其标记的 RDS 资源
<a name="reference_policies_examples_rds_tag-owner"></a>

此示例显示您可以创建一个基于身份的策略，对标签所有者授予对已标记的 RDS 资源的完全访问权限。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "rds:Describe*",
                "rds:List*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "rds:DeleteDBInstance",
                "rds:RebootDBInstance",
                "rds:ModifyDBInstance"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {"rds:db-tag/Owner": "${aws:username}"}
            }
        },
        {
            "Action": [
                "rds:ModifyOptionGroup",
                "rds:DeleteOptionGroup"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {"rds:og-tag/Owner": "${aws:username}"}
            }
        },
        {
            "Action": [
                "rds:ModifyDBParameterGroup",
                "rds:ResetDBParameterGroup"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {"rds:pg-tag/Owner": "${aws:username}"}
            }
        },
        {
            "Action": [
                "rds:AuthorizeDBSecurityGroupIngress",
                "rds:RevokeDBSecurityGroupIngress",
                "rds:DeleteDBSecurityGroup"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {"rds:secgrp-tag/Owner": "${aws:username}"}
            }
        },
        {
            "Action": [
                "rds:DeleteDBSnapshot",
                "rds:RestoreDBInstanceFromDBSnapshot"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {"rds:snapshot-tag/Owner": "${aws:username}"}
            }
        },
        {
            "Action": [
                "rds:ModifyDBSubnetGroup",
                "rds:DeleteDBSubnetGroup"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {"rds:subgrp-tag/Owner": "${aws:username}"}
            }
        },
        {
            "Action": [
                "rds:ModifyEventSubscription",
                "rds:AddSourceIdentifierToSubscription",
                "rds:RemoveSourceIdentifierFromSubscription",
                "rds:DeleteEventSubscription"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {"rds:es-tag/Owner": "${aws:username}"}
            }
        }
    ]
}
```

------

# Amazon S3：允许 Amazon Cognito 用户访问其存储桶中的对象
<a name="reference_policies_examples_s3_cognito-bucket"></a>

此示例说明了如何创建基于身份的策略以允许 Amazon Cognito 用户访问特定 Amazon S3 存储桶中的对象。该策略仅允许访问名称包含 `cognito`、应用程序名称以及联合主体 ID 的对象，由 \$1\$1cognito-identity.amazonaws.com:sub\$1 变量表示。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

**注意**  
对象键中使用的“sub”值不是用户池中的 sub 值，而是与身份池中的用户关联的身份 ID。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ListYourObjects",
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": [
        "arn:aws:s3:::bucket-name"
      ],
      "Condition": {
        "StringLike": {
          "s3:prefix": [
            "cognito/application-name/${cognito-identity.amazonaws.com:sub}/*"
          ]
        }
      }
    },
    {
      "Sid": "ReadWriteDeleteYourObjects",
      "Effect": "Allow",
      "Action": [
        "s3:DeleteObject",
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::bucket-name/cognito/application-name/${cognito-identity.amazonaws.com:sub}/*"
      ]
    }
  ]
}
```

------

Amazon Cognito 为您的 Web 和移动应用程序提供身份验证、授权和用户管理。您的用户可使用用户名和密码直接登录，也可以通过第三方 (如 Facebook、Amazon 或 Google) 登录。

Amazon Cognito 的两个主要组件是用户池和身份池。用户池是为您的应用程序提供注册和登录选项的用户目录。使用身份池，您可以授予用户访问其他 AWS 服务的权限。您可以单独或配合使用身份池和用户池。

有关 Amazon Cognito 的更多信息，请参阅 [Amazon Cognito 用户指南](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html)。

# Amazon S3：允许联合用户以编程方式和在控制台中访问其 Amazon S3 主目录
<a name="reference_policies_examples_s3_federated-home-directory-console"></a>

此示例说明了如何创建基于身份的策略以允许联合主体访问其位于 S3 中的主目录存储桶对象。主目录是一个包含 `home` 文件夹和个人联合主体文件夹的存储桶。此策略定义了程序访问和控制台访问的权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

此策略中的 `${aws:userid}` 变量解析为 `role-id:specified-name`。联合主体 ID 的 `role-id` 部分是创建过程中分配给联合主体角色的唯一标识符。有关更多信息，请参阅 [唯一标识符](reference_identifiers.md#identifiers-unique-ids)。`specified-name` 是当联合主体担任其角色时传递给 `AssumeRoleWithWebIdentity` 请求的 [RoleSessionName 参数](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html#API_AssumeRoleWithWebIdentity_RequestParameters)。

您可使用 AWS CLI 命令 `aws iam get-role --role-name specified-name` 查看此角色 ID。例如，假设您指定友好名称 `John` 并且 CLI 返回角色 ID `AROAXXT2NJT7D3SIQN7Z6`。在此示例中，联合主体的用户 ID 为 `AROAXXT2NJT7D3SIQN7Z6:John`。此策略之后允许联合主体 John 访问具有前缀 `AROAXXT2NJT7D3SIQN7Z6:John` 的 Amazon S3 存储桶。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3ConsoleAccess",
            "Effect": "Allow",
            "Action": [
                "s3:GetAccountPublicAccessBlock",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ListObjectsInBucket",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "",
                        "home/",
                        "home/${aws:userid}/*"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:userid}",
                "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:userid}/*"
            ]
        }
    ]
}
```

------

# Amazon S3：S3 存储桶访问，但在最近未进行 MFA 的情况下拒绝生产存储桶
<a name="reference_policies_examples_s3_full-access-except-production"></a>

此示例说明如何创建基于身份的策略以允许 Amazon S3 管理员访问任何存储桶（包括更新、添加和删除对象）。不过，如果用户在过去 30 分钟内未使用多重身份验证 (MFA)[IAM 中的 AWS 多重身份验证](id_credentials_mfa.md) 登录，则显式拒绝访问 `amzn-s3-demo-bucket-production` 存储桶。该策略授予所需的权限以在控制台中执行该操作，或者以编程方式使用 AWS CLI 或 AWS API 执行该操作。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

该策略从不允许使用长期用户访问密钥以编程方式访问 `amzn-s3-demo-bucket` 存储桶。这是将 `aws:MultiFactorAuthAge` 条件键与 `NumericGreaterThanIfExists` 条件运算符结合使用来实现的。如果 MFA 不存在或 MFA 的使用期限超过 30 分钟，则此策略条件将返回 `true`。在这些情况下，访问将被拒绝。要以编程方式访问 `amzn-s3-demo-bucket-production` 存储桶，S3 管理员必须使用通过 [GetSessionToken](id_credentials_temp_request.md#api_getsessiontoken) API 操作在过去 30 分钟内生成的临时凭证。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ListAllS3Buckets",
            "Effect": "Allow",
            "Action": ["s3:ListAllMyBuckets"],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Sid": "AllowBucketLevelActions",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Sid": "AllowBucketObjectActions",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::*/*"
        },
        {
            "Sid": "RequireMFAForProductionBucket",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket-production/*",
                "arn:aws:s3:::amzn-s3-demo-bucket-production"
            ],
            "Condition": {
                "NumericGreaterThanIfExists": {"aws:MultiFactorAuthAge": "1800"}
            }
        }
    ]
}
```

------

# Amazon S3：允许 IAM 用户以编程方式和在控制台中访问其 S3 主目录
<a name="reference_policies_examples_s3_home-directory-console"></a>

此示例说明了如何创建基于身份的策略以允许 IAM 用户访问其位于 S3 中的主目录存储桶对象。主目录是一个包含 `home` 文件夹和个人用户文件夹的存储桶。此策略定义了程序访问和控制台访问的权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

使用 IAM 角色时，此策略将不起作用，因为使用角色 IAM 时 `aws:username` 变量不可用。有关主体键值的详细信息，请参阅 [主体键值](reference_policies_variables.md#principaltable)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3ConsoleAccess",
            "Effect": "Allow",
            "Action": [
                "s3:GetAccountPublicAccessBlock",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ListObjectsInBucket",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "",
                        "home/",
                        "home/${aws:username}/*"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}",
                "arn:aws:s3:::amzn-s3-demo-bucket/home/${aws:username}/*"
            ]
        }
    ]
}
```

------

# Amazon S3：将管理限制为特定 S3 存储桶
<a name="reference_policies_examples_s3_deny-except-bucket"></a>

此示例说明了如何创建基于身份的策略以限制 Amazon S3 存储桶对该特定存储桶的管理。此策略授予执行所有 Amazon S3 操作的权限，但拒绝访问除 Amazon S3 外的所有 AWS 服务。请参阅以下示例。根据此策略，您只能访问可以对 S3 存储桶或 S3 对象资源执行的 Amazon S3 操作。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

如果将该策略与允许该策略拒绝的操作的其他策略（例如 [AmazonS3FullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonS3FullAccess) 或 [AmazonEC2FullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonEC2FullAccess) AWS 托管策略）一起使用，则访问会被拒绝。这是因为“显式拒绝”声明优先于“允许”声明。有关更多信息，请参阅 [AWS 执行代码逻辑如何评估允许或拒绝访问的请求](reference_policies_evaluation-logic_policy-eval-denyallow.md)。

**警告**  
[`NotAction`](reference_policies_elements_notaction.md) 和 [`NotResource`](reference_policies_elements_notresource.md) 是必须谨慎使用的高级策略元素。该策略将拒绝对除 Amazon S3 以外所有 AWS 服务的访问。如果将该策略挂载到用户，则授予其他服务访问权限的任何其他策略都会被忽略 (访问会被拒绝)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::bucket-name",
                "arn:aws:s3:::bucket-name/*"
            ]
        },
        {
            "Effect": "Deny",
            "NotAction": "s3:*",
            "NotResource": [
                "arn:aws:s3:::bucket-name",
                "arn:aws:s3:::bucket-name/*"
            ]
        }
    ]
}
```

------

# 授予对 Amazon S3 存储桶对象的读取和写入访问权限
<a name="reference_policies_examples_s3_rw-bucket"></a>

此示例说明如何创建基于身份的策略以允许 `Read` 和 `Write` 对特定 Amazon S3 存储桶中的对象进行访问。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

`s3:*Object` 操作使用通配符作为操作名称的一部分。`AllObjectActions` 语句允许以单词“Object”结尾的 `GetObject`、`DeleteObject`、`PutObject` 和任何其他 Amazon S3 操作。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ListObjectsInBucket",
            "Effect": "Allow",
            "Action": ["s3:ListBucket"],
            "Resource": ["arn:aws:s3:::bucket-name"]
        },
        {
            "Sid": "AllObjectActions",
            "Effect": "Allow",
            "Action": "s3:*Object",
            "Resource": ["arn:aws:s3:::bucket-name/*"]
        }
    ]
}
```

------

**注意**  
要允许对 Amazon S3 存储桶中的对象进行 `Read` 和 `Write` 访问并包含用于控制台访问的其他权限，请参阅 [Amazon S3：允许以编程方式和在控制台中对 S3 存储桶中的对象进行读写访问](reference_policies_examples_s3_rw-bucket-console.md)。

# Amazon S3：允许以编程方式和在控制台中对 S3 存储桶中的对象进行读写访问
<a name="reference_policies_examples_s3_rw-bucket-console"></a>

此示例说明如何创建基于身份的策略以允许 `Read` 和 `Write` 对特定 S3 存储桶中的对象进行访问。此策略定义了程序访问和控制台访问的权限。要使用此策略，请将示例策略中的*斜体占位符文本*替换为您自己的信息。然后，按照[创建策略](access_policies_create.md)或[编辑策略](access_policies_manage-edit.md)中的说明操作。

`s3:*Object` 操作使用通配符作为操作名称的一部分。`AllObjectActions` 语句允许以单词“Object”结尾的 `GetObject`、`DeleteObject`、`PutObject` 和任何其他 Amazon S3 操作。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3ConsoleAccess",
            "Effect": "Allow",
            "Action": [
                "s3:GetAccountPublicAccessBlock",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketPublicAccessBlock",
                "s3:ListAccessPoints",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ListObjectsInBucket",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"]
        },
        {
            "Sid": "AllObjectActions",
            "Effect": "Allow",
            "Action": "s3:*Object",
            "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/*"]
        }
    ]
}
```

------

# 管理 IAM 策略
<a name="access_policies_manage"></a>

IAM 为您提供了相应的工具以创建和管理所有类型的 IAM policy（托管策略和内联策略）。要向 IAM 身份（IAM 用户、组或角色）添加权限，请创建策略、验证策略，然后将该策略附加到身份。您可以将多个策略附加到一个身份，每个策略可以包含多个权限。

**Topics**
+ [其他资源](#access_policies_manage-additional-resources)
+ [使用客户管理型策略定义自定义 IAM 权限](access_policies_create.md)
+ [IAM 策略验证](access_policies_policy-validator.md)
+ [使用 IAM policy simulator 测试 IAM 策略](access_policies_testing-policies.md)
+ [添加和删除 IAM 身份权限](access_policies_manage-attach-detach.md)
+ [IAM policy 版本控制](access_policies_managed-versioning.md)
+ [编辑 IAM 策略](access_policies_manage-edit.md)
+ [删除 IAM 策略](access_policies_manage-delete.md)
+ [使用上次访问的信息优化 AWS 中的权限](access_policies_last-accessed.md)

## 其他资源
<a name="access_policies_manage-additional-resources"></a>

以下资源可帮助您了解有关 AWS 的更多信息。
+ 有关不同类型的 IAM policy 的更多信息，请参阅 [AWS Identity and Access Management 中的策略和权限](access_policies.md)。
+ 有关使用 IAM 中的策略的一般信息，请参阅 [适用于 AWS 资源的 Access Management](access.md)。
+ 有关如何使用 IAM Acess Analyzer 生成基于实体的访问活动的 IAM 策略的信息，请参阅 [IAM Access Analyzer 策略生成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html)。
+ 有关在多个策略对给定 IAM 身份有效时如何评估权限的信息，请参阅 [策略评估逻辑](reference_policies_evaluation-logic.md)。
+ AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 AWS STS 配额](reference_iam-quotas.md)。

# 使用客户管理型策略定义自定义 IAM 权限
<a name="access_policies_create"></a>

[策略](access_policies.md)定义 AWS 中的身份或资源的权限。您可以使用 AWS 管理控制台、AWS CLI 或 AWS API 在 IAM 中创建*客户管理型策略*。客户管理型策略是您在自己的 AWS 账户 中管理的独立策略。然后，您可以将策略附加到您的 AWS 账户 中的身份（用户、组和角色）。

*基于身份的策略*是附加到 IAM 中身份的策略。基于身份的策略可以包括 AWS 托管策略、客户管理型策略和内联策略。AWS 托管策略由 AWS 创建和管理，您可以使用但无法管理这些策略。内联策略是您创建并直接嵌入到 IAM 用户组、用户或角色的策略。内联策略不能在其他身份上重复使用，也不能在其所存在的身份之外托管。有关更多信息，请参阅 [添加和删除 IAM 身份权限](access_policies_manage-attach-detach.md)。

通常来说，最好使用客户管理型策略而非内联策略或 AWS 托管策略。AWS 托管策略通常提供广泛的管理权限或只读权限。为了获得最高安全性，[请授予最低权限](best-practices.md#grant-least-privilege)，这意味着仅授予执行特定作业任务所需的权限。

创建或编辑 IAM policy 时，AWS 可以自动执行策略验证，以帮助您创建具有最低权限的有效策略。在 AWS 管理控制台 中，IAM 可识别 JSON 语法错误，而 IAM Access Analyzer 提供额外的策略检查和建议，以帮助您进一步优化策略。要了解策略验证的更多信息，请参阅 [IAM 策略验证](access_policies_policy-validator.md)。要了解有关 IAM Access Analyzer 策略检查和可执行建议的更多信息，请参阅 [IAM Access Analyzer 策略验证](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。

您可以使用 AWS 管理控制台、AWS CLI 或 AWS API 在 IAM 中创建客户托管策略。有关使用 CloudFormation 模板添加或更新策略的更多信息，请参阅《CloudFormation 用户指南》**中的 [AWS Identity and Access Management 资源类型参考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_IAM.html)。

**Topics**
+ [创建 IAM 策略（控制台）](access_policies_create-console.md)
+ [创建 IAM 策略（AWS CLI）](access_policies_create-cli.md)
+ [创建 IAM 策略（AWS API）](access_policies_create-api.md)

# 创建 IAM 策略（控制台）
<a name="access_policies_create-console"></a>

[策略](access_policies.md)是一个实体；在附加到身份或资源时，策略定义了它们的权限。您可以使用 AWS 管理控制台 在 IAM 中创建*客户托管策略*。客户管理型策略是您在自己的 AWS 账户 中管理的独立策略。然后，您可以将策略附加到您的 AWS 账户 中的身份（用户、组和角色）。

AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 AWS STS 配额](reference_iam-quotas.md)。

**Topics**
+ [创建 IAM 策略](#access_policies_create-start)
+ [使用 JSON 编辑器创建策略](#access_policies_create-json-editor)
+ [使用可视化编辑器创建策略](#access_policies_create-visual-editor)
+ [导入现有托管策略](#access_policies_create-copy)

## 创建 IAM 策略
<a name="access_policies_create-start"></a>

您可以使用下列方法之一在 AWS 管理控制台中创建客户托管策略：
+ **[JSON](#access_policies_create-json-editor)** - 粘贴和自定义已发布的[基于身份的示例策略](access_policies_examples.md)。
+ **[Visual editor](#access_policies_create-visual-editor)**（可视化编辑器）- 在可视化编辑器中从头开始构建新的策略。如果使用可视化编辑器，您不需要了解 JSON 语法。
+ **[Import](#access_policies_create-copy)**（导入）- 从您的账户中导入并自定义托管策略。您可以导入之前创建的 AWS 托管策略或客户托管策略。

AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 AWS STS 配额](reference_iam-quotas.md)。

## 使用 JSON 编辑器创建策略
<a name="access_policies_create-json-editor"></a>

您可以选择 **JSON** 选项以在 JSON 中键入或粘贴策略。这种方法适用于复制[示例策略](access_policies_examples.md)以在您的账户中使用。或者，您可以在 JSON 编辑器中键入自己的 JSON 策略文档。也可以使用 **JSON** 选项在可视化编辑器和 JSON 之间切换以比较这些视图。

 当您在 JSON 编辑器中创建或编辑策略时，IAM 会执行策略验证以帮助您创建有效的策略。IAM 可识别 JSON 语法错误，而 IAM Access Analyzer 提供额外的策略检查和可执行的建议，以帮助您进一步优化策略。

JSON [策略](access_policies.md)文档包含一个或多个语句。每个语句应包含具有相同效果 (`Allow` 或 `Deny`) 并支持相同资源和条件的所有操作。如果一个操作要求指定所有资源 (`"*"`)，而另一个操作支持特定资源的 Amazon Resource Name (ARN)，则它们必须位于两个单独的 JSON 语句中。有关 ARN 格式的详细信息，请参阅《AWS 一般参考指南》中的 [Amazon 资源名称（ARN）](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)**。有关 IAM policy 的一般信息，请参阅 [AWS Identity and Access Management 中的策略和权限](access_policies.md)。有关 IAM policy 语言的信息，请参阅 [IAM JSON 策略参考](reference_policies.md)。

**使用 JSON 策略编辑器创建策略**

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

1. 在左侧的导航窗格中，选择**策略**。

1. 选择**创建策略**。

1. 在**策略编辑器**部分，选择 **JSON** 选项。

1. 键入或粘贴一个 JSON 策略文档。有关 IAM policy 语言的详细信息，请参阅 [IAM JSON 策略参考](reference_policies.md)。

1.  解决[策略验证](access_policies_policy-validator.md)过程中生成的任何安全警告、错误或常规警告，然后选择**下一步**。
**注意**  
您可以随时在**可视化**和 **JSON** 编辑器选项卡之间切换。不过，如果您进行更改或在**可视化**编辑器中选择**下一步**，IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息，请参阅 [调整策略结构](troubleshoot_policies.md#troubleshoot_viseditor-restructure)。

1. （可选）在 AWS 管理控制台 中创建或编辑策略时，您可以生成可在 CloudFormation 模板中使用的 JSON 或 YAML 策略模板。

   为此，请在**策略编辑器**中选择**操作**，然后选择**生成 CloudFormation 模板**。如需了解有关 CloudFormation 的更多信息，请参阅《AWS CloudFormation 用户指南》中的 [AWS Identity and Access Management资源类型参考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_IAM.html)。

1. 向策略添加完权限后，选择**下一步**。

1. 在**查看和创建**页面上，为创建的策略键入**策略名称**和**描述**（可选）。查看**此策略中定义的权限**以查看您的策略授予的权限。

1. （可选）通过以密钥值对的形式附加标签来向策略添加元数据。有关在 IAM 中使用标签的更多信息，请参阅 [AWS Identity and Access Management 资源的标签](id_tags.md)。

1. 选择**创建策略**可保存您的新策略。

在创建策略后，可以将其附加到您的组、用户或角色。有关更多信息，请参阅 [添加和删除 IAM 身份权限](access_policies_manage-attach-detach.md)。

## 使用可视化编辑器创建策略
<a name="access_policies_create-visual-editor"></a>

IAM 控制台中的可视化编辑器指导您完成创建策略的过程，而无需编写 JSON 语法。要查看使用可视化编辑器创建策略的示例，请参阅[控制对身份的访问](access_controlling.md#access_controlling-identities)。

**使用可视化编辑器创建策略**

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

1. 在左侧的导航窗格中，选择**策略**。

1. 选择**创建策略**。

1. 在**策略编辑器**部分中，找到**选择服务**部分，然后选择 AWS 服务。您可以使用顶部的搜索框限制服务列表中的结果。您只能在一个可视化编辑器权限块中选择一个服务。要为多个服务授予访问权限，请选择**添加更多权限**以添加多个权限块。

1. 对于**允许的操作**，选择要添加到策略的操作。您可以使用以下方法选择操作：
   + 选中所有操作的复选框。
   + 选择**添加操作**以键入特定操作的名称。您可以使用通配符 (`*`) 指定多个操作。
   + 选择**访问级别**组之一以选择访问级别的所有操作（例如，**读取**、**写入**或**列出**）。
   + 展开每个**访问级别**组以选择单独的操作。

   预设情况下，您创建的策略允许执行选择的操作。要拒绝选择的操作，请选择**切换到拒绝权限**。由于 [IAM 默认拒绝](reference_policies_evaluation-logic.md)，作为安全最佳实践，我们建议您仅允许用户所需的操作和资源的权限。只有在要覆盖由其他语句或策略单独允许的权限时，您才应创建 JSON 语句以拒绝权限。我们建议您将拒绝权限数限制为最低，因为它们可能会增加解决权限问题的难度。

1. 对于**资源**，如果您在前面步骤中选择的服务和操作不支持选择[特定资源](access_controlling.md#access_controlling-resources)，则允许使用所有资源，并且您无法编辑此部分。

   如果您选择了一个或多个操作支持[资源级权限](access_controlling.md#access_controlling-resources)，可视化编辑器会列出这些资源。然后，展开**资源**以指定您的策略的资源。

   您可以通过以下方式指定资源：
   + 选择**添加 ARN**，通过 Amazon 资源名称（ARN）指定资源。您可以使用可视化 ARN 编辑器或手动列出 ARN。有关 ARN 语法的更多信息，请参阅《AWS 一般参考指南》中的 [Amazon 资源名称（ARN）](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)**。有关在策略的 `Resource` 元素中使用 ARN 的信息，请参阅[IAM JSON 策略元素：Resource](reference_policies_elements_resource.md)。
   + 选择资源旁边的**此账户中的任意项**以授予对该类型的任何资源的权限。
   + 选择**所有**以选择该服务的所有资源。

1. （可选）选择**请求条件 – *可选***，以在创建的策略中添加条件。条件限制 JSON 策略语句的效果。例如，您可以指定仅在以下情况下允许用户对资源执行操作：该用户的请求发生在特定的时间范围内。您还可以使用常用的条件来限制是否必须使用多重验证 (MFA) 设备来验证用户身份。或者，您可以要求请求来自特定范围的 IP 地址。有关您可以在策略条件中使用的所有上下文键的列表，请参阅*服务授权参考*中的 [AWS 服务的操作、资源和条件键](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html)。

   您可以使用以下方法选择条件：
   + 使用复选框选择常用的条件。
   + 选择**添加其他条件**以指定其他条件。选择条件的**条件键**、**限定词**和**运算符**，然后键入一个**值**。要添加多个值，请选择**添加**。您可以将这些值视为通过逻辑“OR”运算符连接在一起。完成后，选择**添加条件**。

   要添加多个条件，请再次选择**添加其他条件**。根据需要重复上述步骤。每个条件仅适用于该可视化编辑器权限块。所有条件都必须为 true，才会将权限块视为匹配项。也就是说，将条件视为通过逻辑“AND”运算符连接在一起。

   有关 **Condition** 元素的更多信息，请参阅 [IAM JSON 策略元素：Condition](reference_policies_elements_condition.md)中的 [IAM JSON 策略参考](reference_policies.md)。

1. 要添加更多权限块，请选择**添加更多权限**。对于每个块，重复步骤 2 到步骤 5。
**注意**  
您可以随时在**可视化**和 **JSON** 编辑器选项卡之间切换。不过，如果您进行更改或在**可视化**编辑器中选择**下一步**，IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息，请参阅 [调整策略结构](troubleshoot_policies.md#troubleshoot_viseditor-restructure)。

1. （可选）在 AWS 管理控制台 中创建或编辑策略时，您可以生成可在 CloudFormation 模板中使用的 JSON 或 YAML 策略模板。

   为此，请在**策略编辑器**中选择**操作**，然后选择**生成 CloudFormation 模板**。如需了解有关 CloudFormation 的更多信息，请参阅《AWS CloudFormation 用户指南》中的 [AWS Identity and Access Management资源类型参考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_IAM.html)。

1. 向策略添加完权限后，选择**下一步**。

1. 在**查看和创建**页面上，为创建的策略键入**策略名称**和**描述**（可选）。查看**此策略中定义的权限**，确保您授予了所需的权限。

1. （可选）通过以密钥值对的形式附加标签来向策略添加元数据。有关在 IAM 中使用标签的更多信息，请参阅 [AWS Identity and Access Management 资源的标签](id_tags.md)。

1. 选择**创建策略**可保存您的新策略。

在创建策略后，可以将其附加到您的组、用户或角色。有关更多信息，请参阅 [添加和删除 IAM 身份权限](access_policies_manage-attach-detach.md)。

## 导入现有托管策略
<a name="access_policies_create-copy"></a>

要创建新的策略，一种简单的方法是在您的账户中导入至少具有一部分所需权限的现有托管策略。您随后可以自定义该策略，使其符合您的新要求。

您无法导入内联策略。要了解托管策略和内联策略之间的差别，请参阅[托管策略与内联策略](access_policies_managed-vs-inline.md)。

**在可视化编辑器中导入现有的托管策略**

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

1. 在左侧的导航窗格中，选择**策略**。

1. 选择**创建策略**。

1. 在**策略编辑器**中，选择**可视化**，然后在页面右侧选择**操作**，然后选择**导入策略**。

1. 在**导入策略**窗口中，选择与要在新策略中包含的策略最匹配的管理型策略。您可以使用顶部的搜索框限制策略列表中的结果。

1. 选择**导入策略**。

   将在策略底部的新权限块中添加导入的策略。

1. 使用**可视化编辑器**或选择 **JSON** 以自定义您的策略。然后选择**下一步**。
**注意**  
您可以随时在**可视化**和 **JSON** 编辑器选项卡之间切换。不过，如果您进行更改或在**可视化**编辑器中选择**下一步**，IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息，请参阅 [调整策略结构](troubleshoot_policies.md#troubleshoot_viseditor-restructure)。

1. 在**查看和创建**页面上，为创建的策略键入**策略名称**和**描述**（可选）。您以后无法编辑这些设置。查看**此策略中定义的权限**，然后选择**创建策略**以保存您的工作。

**在 **JSON** 编辑器中导入现有的管理型策略**

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

1. 在左侧的导航窗格中，选择**策略**。

1. 选择**创建策略**。

1. 在**策略编辑器**部分，选择 **JSON** 选项，然后在页面右侧选择**操作**，然后选择**导入策略**。

1. 在**导入策略**窗口中，选择与要在新策略中包含的策略最匹配的管理型策略。您可以使用顶部的搜索框限制策略列表中的结果。

1. 选择**导入策略**。

   导入的策略中的语句将添加到 JSON 策略底部。

1. 在 JSON 中自定义您的策略。解决[策略验证](access_policies_policy-validator.md)过程中生成的任何安全警告、错误或常规警告，然后选择**下一步**。或者，在 **Visual editor**（可视化编辑器）中自定义您的策略。然后选择**下一步**。
**注意**  
您可以随时在**可视化**和 **JSON** 编辑器选项卡之间切换。不过，如果您进行更改或在**可视化**编辑器中选择**下一步**，IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息，请参阅 [调整策略结构](troubleshoot_policies.md#troubleshoot_viseditor-restructure)。

1. 在**查看和创建**页面上，为创建的策略键入**策略名称**和**描述**（可选）。您以后无法编辑这些字段。查看策略**此策略中定义的权限**，然后选择**创建策略**以保存您的工作。

在创建策略后，可以将其附加到您的组、用户或角色。有关更多信息，请参阅 [添加和删除 IAM 身份权限](access_policies_manage-attach-detach.md)。

# 创建 IAM 策略（AWS CLI）
<a name="access_policies_create-cli"></a>

[策略](access_policies.md)是一个实体；在附加到身份或资源时，策略定义了它们的权限。您可以使用 AWS CLI 在 IAM 中创建*客户托管策略*。客户管理型策略是您在自己的 AWS 账户 中管理的独立策略。作为[最佳实践](best-practices.md)，我们建议您使用 IAM Access Analyzer 验证您的 IAM policy，以确保权限的安全性和功能性。通过[验证策略](access_policies_policy-validator.md)，您可以在将策略附加到您 AWS 账户 中的身份（用户、组和角色）之前，解决任何错误或建议。

AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 AWS STS 配额](reference_iam-quotas.md)。

## 创建 IAM policy (AWS CLI)
<a name="create-policies-cli-api"></a>

您可以使用 AWS Command Line Interface (AWS CLI) 创建 IAM 客户托管策略或内联策略。

**创建客户托管策略 (AWS CLI)**  
使用以下命令：
+ [create-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy.html)

**为 IAM 身份（组、用户或角色）创建内联策略 (AWS CLI)**  
使用以下命令之一：
+ [put-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-group-policy.html)
+ [put-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html)
+ [put-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-user-policy.html)

**注意**  
您不能使用 IAM 嵌入*[服务相关](id_roles.md#iam-term-service-linked-role)*角色的内联策略。

**验证客户托管策略 (AWS CLI)**  
使用以下 IAM Access Analyzer 命令：
+ [validate-policy](https://docs.aws.amazon.com/cli/latest/reference/accessanalyzer/validate-policy.html)

# 创建 IAM 策略（AWS API）
<a name="access_policies_create-api"></a>

[策略](access_policies.md)是一个实体；在附加到身份或资源时，策略定义了它们的权限。您可以使用 AWS API 在 IAM 中创建*客户托管策略*。客户管理型策略是您在自己的 AWS 账户 中管理的独立策略。作为[最佳实践](best-practices.md)，我们建议您使用 IAM Access Analyzer 验证您的 IAM policy，以确保权限的安全性和功能性。通过[验证策略](access_policies_policy-validator.md)，您可以在将策略附加到您 AWS 账户 中的身份（用户、组和角色）之前，解决任何错误或建议。

AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 AWS STS 配额](reference_iam-quotas.md)。

## 创建 IAM policy (AWS API)
<a name="create-policies-api"></a>

您可以使用 AWS API 创建 IAM 客户托管策略或内联策略。

**创建客户托管策略 (AWS API)**  
调用以下操作：
+ [CreatePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html)

**为 IAM 身份（组、用户或角色）创建内联策略 (AWS API)**  
调用下列一项操作：
+ [PutGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutGroupPolicy.html)
+ [PutRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html)
+ [PutUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutUserPolicy.html)

**注意**  
您不能使用 IAM 嵌入*[服务相关](id_roles.md#iam-term-service-linked-role)*角色的内联策略。

**验证客户托管策略 (AWS API)**  
调用以下 IAM Access Analyzer 操作：
+ [ValidatePolicy](https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_ValidatePolicy.html)

# IAM 策略验证
<a name="access_policies_policy-validator"></a>

[策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_overview.html)是使用 [IAM policy 语法](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-grammar.html)编写的 JSON 文档。当您将策略附加到 IAM 实体（例如用户、组或角色）时，策略将向该实体授予权限。

当您使用 AWS 管理控制台 创建或编辑 IAM 访问控制策略时，AWS 会自动检查它们，以确保它们符合 IAM policy 语法。如果 AWS 确定策略不符合语法，则会提示您修复策略。

IAM Access Analyzer 提供额外的策略检查和建议，以帮助您进一步优化策略。要了解有关 IAM Access Analyzer 策略检查和可执行建议的更多信息，请参阅 [IAM Access Analyzer 策略验证](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。要查看 IAM Access Analyzer 返回的警告、错误和建议的列表，请参阅 [IAM Access Analyzer 策略检查参考](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html)。

**验证范围**  
AWS 检查 JSON 策略语法。它还验证您的 ARN 格式是否正确，操作名称和条件键是否正确。

**访问策略验证**  
当您创建 JSON 策略或在 AWS 管理控制台 中编辑现有策略时，将自动对策略进行验证。如果策略语法无效，您会收到通知，必须先解决问题，然后才能继续。如果您有适用于 `access-analyzer:ValidatePolicy` 的权限，则 IAM Access Analyzer 策略验证的结果会自动返回到 AWS 管理控制台。您还可以使用 AWS API 或 AWS CLI 验证策略。

**现有策略**  
您的现有策略可能无效，因为它们是在策略引擎的最新更新之前创建或保存的。作为[最佳实践](best-practices.md)，我们建议您使用 IAM Access Analyzer 验证您的 IAM policy，以确保权限的安全性和功能性。我们建议您打开现有策略并查看生成的策略验证结果。如果未修复任何策略语法错误，则无法编辑和保存现有策略。

# 使用 IAM policy simulator 测试 IAM 策略
<a name="access_policies_testing-policies"></a>

有关如何以及为何使用 IAM policy 的更多信息，请参阅。[AWS Identity and Access Management 中的策略和权限](access_policies.md)

**您可以在以下位置访问 IAM policy simulator 控制台：[https://policysim.aws.amazon.com/](https://policysim.aws.amazon.com/)**

**重要**  
策略模拟器的结果可能与您的实时 AWS 环境不同。我们建议您在使用策略模拟器进行测试后，根据真实 AWS 环境检查您的策略，以确认您获得了预期的结果。有关更多信息，请参阅 [IAM policy simulator 的工作方式](#policies_policy-simulator-how-it-works)。

 

使用 IAM policy simulator，您可以测试和排除基于身份的策略和 IAM 权限边界的故障。以下是您可以使用策略模拟器执行的一些常见操作：
+ 测试附加到您 AWS 账户 中的 IAM 用户、IAM 组或角色的基于身份的策略。如果多个策略附加到用户、用户组或角色，您可以测试所有策略，也可以选择单个策略进行测试。您可以测试为特定资源所选的策略允许或拒绝哪些操作。
+ 测试[权限边界](access_policies_boundaries.md)对 IAM 实体的影响并进行故障排除。一次只能模拟一个权限边界。
+ 测试基于资源的策略对附加到 AWS 资源（例如 Amazon S3 存储桶、Amazon SQS 队列、Amazon SNS 主题或 Amazon Glacier 文件库）的 IAM 用户的影响。要在 IAM 用户的策略模拟器中使用基于资源的策略，必须在模拟中包含该资源。还必须选中该复选框以将该资源的策略包含在模拟中。
**注意**  
IAM 角色不支持基于资源的策略模拟。
+ 如果您的 AWS 账户 是 [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/) 中的组织的成员，则您可以测试服务控制策略（SCP）对您的基于身份的策略的影响。
**注意**  
策略模拟器不会评估具有任何条件的 SCP。
+ 通过将尚未附加到用户、用户组或角色的基于身份的新策略键入或复制到策略模拟器中，对这些新策略进行测试。这些仅在模拟中使用，不会保存。您不能将基于资源的策略键入或者复制到策略模拟器中。
+ 使用所选服务、操作和资源测试基于身份的策略。例如，您可以通过测试确保策略允许某个实体在 Amazon S3 服务中对特定存储桶执行 `ListAllMyBuckets`、`CreateBucket` 和 `DeleteBucket` 操作。
+ 通过提供上下文密钥 (如 IP 地址或日期，包含在被测试策略的 `Condition` 元素中) 模拟真实方案。
**注意**  
如果模拟中基于身份的策略没有显式检查标签的 `Condition` 元素，则策略模拟器不会模拟作为输入提供的标签。
+ 识别基于身份的策略中导致允许或拒绝访问特定资源或操作的特定语句。

**Topics**
+ [IAM policy simulator 的工作方式](#policies_policy-simulator-how-it-works)
+ [使用 IAM policy simulator 所需的权限](#permissions-required_policy-simulator)
+ [使用 IAM policy simulator（控制台）](#policies_policy-simulator-using)
+ [使用 IAM policy simulator（AWS CLI 和 AWS API）](#policies-simulator-using-api)

## IAM policy simulator 的工作方式
<a name="policies_policy-simulator-how-it-works"></a>

策略模拟器会评估基于身份的策略中的语句以及您在模拟期间提供的输入。策略模拟器的结果可能与您的实时 AWS 环境不同。我们建议您在使用策略模拟器进行测试后，根据真实 AWS 环境检查您的策略，以确认您获得了预期的结果。

策略模拟器在以下几方面与真实 AWS 环境不同：
+ 策略模拟器不发出真实 AWS 服务请求，因此，您可以安全地测试在真实 AWS 环境中会进行不需要的更改的请求。策略模拟器不考虑生产中的实际上下文键值。
+ 因为策略模拟器不模拟运行所选操作，所以它不能报告对模拟请求的任何响应。返回的唯一结果是请求的操作是被允许还是被拒绝。
+ 如果您在策略模拟器内编辑策略，所做的更改只会影响策略模拟器。您的 AWS 账户 中的相应策略保持不变。
+ 您不能测试具有任何条件的服务控制策略（SCP）。
+ 策略模拟器不支持资源控制策略（RCP）的模拟。
+ 策略模拟器不支持针对 IAM 角色和用户进行跨账户存取的模拟。

**注意**  
IAM policy simulator 无法确定哪些服务支持[全局条件键](reference_policies_condition-keys.md)进行授权。例如，策略模拟器无法识别某个服务不支持 [`aws:TagKeys`](reference_policies_condition-keys.md#condition-keys-tagkeys)。

## 使用 IAM policy simulator 所需的权限
<a name="permissions-required_policy-simulator"></a>

您可以使用策略模拟器控制台或策略模拟器 API 来测试策略。默认情况下，控制台用户可以通过将尚未附加到用户、用户组或角色的策略键入或复制到策略模拟器中来对其进行测试。这些策略仅在模拟中使用，不会揭露敏感信息。API 用户必须具有测试未附加策略的权限。您可以允许控制台或 API 用户测试附加到 AWS 账户 中的 IAM 用户、IAM 组或角色的策略。为此，您必须提供检索这些策略的权限。要测试基于资源的策略，用户必须有权检索相关资源的策略。

有关允许用户模拟策略的控制台和 API 策略示例，请参阅[示例策略：AWS Identity and Access Management (IAM)](access_policies_examples.md#policy_library_IAM)。

### 使用策略模拟器控制台所需的权限
<a name="permissions-required_policy-simulator-console"></a>

您可以允许用户测试附加到 AWS 账户 中的 IAM 用户、IAM 组或角色的策略。为此，您必须向用户提供检索这些策略的权限。要测试基于资源的策略，用户必须有权检索相关资源的策略。

要查看允许为附加到用户、用户组或角色的策略使用策略模拟器控制台的示例策略，请参阅 [IAM：访问策略模拟器控制台](reference_policies_examples_iam_policy-sim-console.md)。

要查看只允许具有特定路径的用户使用策略模拟器控制台的示例策略，请参阅 [IAM：基于用户路径访问策略模拟器控制台](reference_policies_examples_iam_policy-sim-path-console.md)。

要创建只允许为一种实体类型使用策略模拟器控制台的策略，请按照以下步骤操作。

**允许控制台用户模拟用户的策略**  
在策略中包含以下操作：
+ `iam:GetGroupPolicy`
+ `iam:GetPolicy`
+ `iam:GetPolicyVersion`
+ `iam:GetUser`
+ `iam:GetUserPolicy`
+ `iam:ListAttachedUserPolicies`
+ `iam:ListGroupsForUser`
+ `iam:ListGroupPolicies`
+ `iam:ListUserPolicies`
+ `iam:ListUsers`

**允许控制台用户模拟 IAM 组的策略**  
在策略中包含以下操作：
+ `iam:GetGroup`
+ `iam:GetGroupPolicy`
+ `iam:GetPolicy`
+ `iam:GetPolicyVersion`
+ `iam:ListAttachedGroupPolicies`
+ `iam:ListGroupPolicies`
+ `iam:ListGroups`

**允许控制台用户模拟角色的策略**  
在策略中包含以下操作：
+ `iam:GetPolicy`
+ `iam:GetPolicyVersion`
+ `iam:GetRole`
+ `iam:GetRolePolicy`
+ `iam:ListAttachedRolePolicies`
+ `iam:ListRolePolicies`
+ `iam:ListRoles`

要测试基于资源的策略，用户必须有权检索相关资源的策略。

**允许控制台用户在 Amazon S3 存储桶中测试基于资源的策略**  
在您的策略中包含以下操作：
+ `s3:GetBucketPolicy`

例如，以下策略使用该操作，以允许控制台用户在特定的 Amazon S3 存储桶中模拟基于资源的策略。

------
#### [ JSON ]

****  

```
{
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "s3:GetBucketPolicy",
            "Resource":"arn:aws:s3:::bucket-name/*"
          }
        ]
      }
```

------

### 使用策略模拟器 API 所需的权限
<a name="permissions-required_policy-simulator-api"></a>

策略模拟器 API 操作 [GetContextKeyForCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeyForCustomPolicy.html) 和 [SimulateCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html) 允许用户测试尚未附加到用户、用户组或角色的策略。要测试此类策略，请将策略以字符串形式传递给 API。这些策略仅在模拟中使用，不会揭露敏感信息。您还可以使用此 API 测试附加到 AWS 账户 中的 IAM 用户、IAM 组或角色的策略。要执行此操作，您必须为用户提供调用 [GetContextKeyForPrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeyForPrincipalPolicy.html) 和 [SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html) 的权限。

要查看允许为当前 AWS 账户 中已附加策略和未附加的策略使用策略模拟器 API 的示例策略，请参阅 [IAM：访问策略模拟器 API](reference_policies_examples_iam_policy-sim.md)。

要创建只允许为一种策略类型使用策略模拟器 API 的策略，请按照以下步骤操作。

**允许 API 用户模拟作为字符串直接传递到 API 的策略**  
在策略中包含以下操作：
+ `iam:GetContextKeysForCustomPolicy`
+ `iam:SimulateCustomPolicy`

**允许 API 用户模拟附加到 IAM 用户、IAM 组、角色或资源的策略**  
在策略中包含以下操作：
+ `iam:GetContextKeysForPrincipalPolicy`
+ `iam:SimulatePrincipalPolicy`

例如，要向名为“Bob”的用户提供模拟已分配到名为“Alice”的用户的策略的权限，请向 Bob 提供访问以下资源的权限：`arn:aws:iam::777788889999:user/alice`。

要查看只允许具有特定路径的用户使用策略模拟器 API 的示例策略，请参阅 [IAM：基于用户路径访问策略模拟器 API](reference_policies_examples_iam_policy-sim-path.md)。

## 使用 IAM policy simulator（控制台）
<a name="policies_policy-simulator-using"></a>

默认情况下，用户可以通过将尚未附加到用户、用户组或角色的策略键入或复制到策略模拟器控制台中来对其进行测试。这些策略仅在模拟中使用，不会揭露敏感信息。

**测试未附加到用户、用户组或角色的策略（控制台）**

1. 在以下位置打开 IAM policy simulator 控制台：[https://policysim.aws.amazon.com/](https://policysim.aws.amazon.com/)。

1. 在页面顶部的 **Mode:** 菜单中，选择 **New Policy**。

1. 在 **Policy Sandbox** 中，选择 **Create New Policy**。

1. 将策略键入或复制到策略模拟器中，按照以下步骤中所述使用策略模拟器。

获得使用 IAM policy simulator 控制台的权限后，可以使用该策略模拟器测试 IAM 用户、用户组、角色或资源策略。

**测试附加到用户、用户组或角色的策略（控制台）**

1. 在以下位置打开 IAM policy simulator 控制台：[https://policysim.aws.amazon.com/](https://policysim.aws.amazon.com/)。
**注意**  
要作为 IAM 用户登录策略模拟器，请使用您的唯一登录 URL 登录 AWS 管理控制台。然后转到[https://policysim.aws.amazon.com/](https://policysim.aws.amazon.com/)。有关以 IAM 用户身份登录的更多信息，请参阅 [IAM 用户如何登录 AWS](id_users_sign-in.md)。

   策略模拟器将以 **Existing Policies**（现有策略）模式打开，并在 **Users, Groups, and Roles**（用户、组和角色）下列出您的账户中的 IAM 用户。

1. <a name="polsimstep-selectid"></a>选择适合于您的任务的选项：  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/access_policies_testing-policies.html)
**提示**  
要测试附加到组的策略，您可以直接从 [IAM 控制台](https://console.aws.amazon.com/iam/)启动 IAM policy simulator：在导航窗格中，选择 **User groups**（用户组）。选择要对其测试策略的组的名称，然后选择**权限**选项卡。选择 **Simulate**（模拟）。  
要测试附加到用户的客户托管策略，请执行以下操作：在导航窗格中选择 **Users (用户)**。选择要对其测试策略的用户的名称。然后选择 **Permissions** 选项卡，并展开您要测试的策略。在最右端，选择 **Simulate policy**。**IAM policy simulator**在新窗口中打开，并在 **Policies**（策略）窗格中显示所选策略。

1. （可选）如果您的账户是 [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/) 中某组织的成员，则请选中 **AWS Organizations SCP** 旁边的复选框以将 SCP 包含在模拟评估中。SCP 是指定组织或组织单元 (OU) 的最大权限的 JSON 策略。SCP 限制成员账户中实体的权限。如果 SCP 阻止某个服务或操作，则该账户中的所有实体均无法访问该服务或执行该操作。即使管理员使用 IAM 或资源策略明确地为该服务或操作授予权限，也依然如此。

   如果您的账户不是某组织的成员，则不会显示该复选框。

1. （可选）您可以测试为 IAM 实体（用户或角色，但不包括 IAM 组）设置为[权限边界](access_policies_boundaries.md)的策略。如果当前为实体设置了权限边界策略，则该策略将显示在 **Policies (策略)** 窗格中。您仅可为实体设置一个权限边界。要测试不同的权限边界，您可以创建自定义权限边界。为此，选择 **Create New Policy (创建新策略)**。将打开新的 **Policies (策略)** 窗格。在菜单中，选择 **Custom IAM Permissions Boundary Policy (自定义 IAM 权限边界策略)**。输入新策略的名称，然后在下面的空间中键入或复制策略。选择**应用**以保存策略。接下来，选择 **Back (返回)** 以返回原始 **Policies (策略)** 窗格。然后选中要用于模拟的权限边界旁边的复选框。

1. <a name="polsimstep-polsubset"></a>（可选）您可以只测试附加到用户、用户组或角色的策略的子集。为此，请在**策略**窗格中清除每个要排除的策略旁边的复选框。

1. <a name="polsimstep-service"></a>在 **Policy Simulator** 下，选择 **Select service**，然后选择要测试的服务。然后选择 **Select actions**，选择一个或多个要测试的操作。尽管菜单一次只为一项服务显示可用选择，不过 **Action Settings and Results** 中会显示所选择的全部服务和操作。

1. （可选）如果在 [Step 2](#polsimstep-selectid) 和 [Step 5](#polsimstep-polsubset) 中选择的任一策略包含具有 [AWS* 全局条件键*](reference_policies_condition-keys.md)的条件，请为这些键提供值。为此，可以展开 **Global Settings (全局设置)** 部分，为其中显示的键名称键入值。
**警告**  
如果将某个条件键的值留空，则模拟过程会忽略该键。在某些情况下，这会导致错误，使模拟无法运行。在其他情况下，模拟运行，但结果可能不可靠。在这些情况下，模拟过程与条件键或变量包含值的真实条件不相符。

1. （可选）所选的每个操作均显示在 **Action Settings and Results**（操作设置和结果）列表中，在实际运行模拟前，**Permission**（权限）列中显示 **Not simulated**。在运行模拟前，您可以使用资源配置每个操作。要为特定方案配置单独的操作，请选择箭头展开相应操作的行。如果该操作支持资源级权限，您可以键入要测试其访问权限的特定资源的 [Amazon Resource Name (ARN)](reference_identifiers.md#identifiers-arns)。默认情况下，每个资源都设置为一个通配符 (\$1)。您还可以为任意[条件上下文密钥](reference_policies_actions-resources-contextkeys.html)指定值。如前所述，系统会忽略值为空的密钥，从而导致模拟失败或结果不可靠。

   1. 单击操作名称旁的箭头展开每一行，可以配置准确模拟方案中的操作所需的任何其他信息。如果操作需要任何资源级权限，您可以键入要模拟访问的特定资源的 [Amazon Resource Name (ARN)](reference_identifiers.md#identifiers-arns)。默认情况下，每个资源都设置为一个通配符 (\$1)。

   1. 如果操作支持但未设置资源级权限，可以选择 **Add Resource**，从而选择要添加到模拟中的资源类型。

   1. 如果所选任一策略包含的 `Condition` 元素引用该操作的服务的上下文密钥，则该操作下会显示相应键名称。您可以指定在对指定的资源模拟该操作的过程中将使用的值。
<a name="resource-scenarios"></a>
**需要不同资源类型组的操作**  
某些操作在不同情况下需要不同的资源类型。每个资源类型组都与一个方案相关联。如果其中一个适用于您的模拟，则选择它，策略模拟器需要适合该方案的资源类型。下表列出了每个受支持的方案选项，以及为运行模拟您必须定义的资源。

   以下每个 Amazon EC2 场景都需要指定 `instance`、`image` 和 `security-group` 资源。如果方案包含某个 EBS 卷，您必须指定该 `volume` 作为资源。如果 Amazon EC2 场景包含 Virtual Private Cloud (VPC)，则必须提供 `network-interface` 资源。如果它包含 IP 子网，您必须指定 `subnet` 资源。有关 Amazon EC2 场景选项的更多信息，请参阅 *Amazon EC2 用户指南*中的[支持的平台](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html)。
   + **EC2-VPC-InstanceStore**

     实例、映像、安全组、网络接口
   + **EC2-VPC-InstanceStore-Subnet**

     实例、映像、安全组、网络接口、子网
   + **EC2-VPC-EBS**

     实例、映像、安全组、网络接口、卷
   + **EC2-VPC-EBS-Subnet**

     实例、映像、安全组、网络接口、子网、卷

1. <a name="polsimstep-respol"></a>(可选) 如果要在模拟中包含基于资源的策略，必须首先在 [Step 6](#polsimstep-service) 中选择要对资源模拟的操作。展开所选操作的行，对要模拟的策略键入该资源的 ARN。然后选择 **ARN** 文本框旁边的 **Include Resource Policy**（包括资源策略）。IAM policy simulator 当前仅支持来自以下服务的基于资源的策略：Amazon S3（仅限基于资源的策略；当前不支持 ACL）、Amazon SQS、Amazon SNS 和未锁定的 Amazon Glacier 文件库（当前不支持锁定的文件库）。

1. 选择右上角的 **Run Simulation**。

   **Action Settings and Results** 每行中的 **Permission** 列显示对指定资源模拟该操作的结果。

1. 要查看策略中的哪个语句显式允许或拒绝操作，请在 **Permission**（权限）列中，选择 ***N* matching statement(s)** 链接，展开该行。然后，选择 **Show statement (显示语句) **链接。**Policies** 窗格显示其语句会影响突出显示的模拟结果的相关策略。
**注意**  
如果操作为*隐式*拒绝，意即，如果操作仅因未明确允许而被拒绝，则 **List**（列表）和 **Show statement**（显示语句）选项不会显示。

### IAM policy simulator 控制台消息故障排除
<a name="iam-policy-simulator-messages"></a>

下表列出了在使用 IAM policy simulator 时可能遇到的告知性和警告性消息。表中还提供了解决消息所示问题的操作步骤。


****  

| Message | 解决步骤 | 
| --- | --- | 
| This policy has been edited。Changes will not be saved to your account。 |   **无需操作。** 此为告知性消息。如果在 IAM policy simulator 中编辑现有策略，则所做的更改不会影响您的 AWS 账户。通过策略模拟器，您可以仅出于测试目的对策略进行更改。  | 
| 无法获取资源策略。原因：详细错误消息 | 策略模拟器无法访问所请求的基于资源的策略。确保指定的资源 ARN 正确，并且运行模拟的用户有权读取该资源的策略。 | 
| One or more policies require values in the simulation settings。The simulation might fail without these values。 |  如果您测试的策略中包含条件键或变量，但未在 **Simulation Settings (模拟设置)** 中为这些键或变量提供任何值，则会显示此消息。 要取消显示此消息，请选择 **Simulation Settings (模拟设置)**，然后为每个条件键或变量输入值。  | 
| You have changed policies。These results are no longer valid。 |  若您在 **Results** 窗格中显示结果的同时更改了所选策略，则会显示此消息。**Results** 窗格中显示的结果不会动态更新。 要取消显示此消息，请再次选择 **Run Simulation**，以根据 **Policies** 窗格中所做的更改显示新的模拟结果。  | 
| The resource you typed for this simulation does not match this service。 |  如果您在 **Simulation Settings**（模拟设置）窗格中键入的 Amazon Resource Name (ARN) 与您为当前模拟选择的服务不相符，则会显示此消息。例如，如果为 Amazon DynamoDB 资源指定一个 ARN，但选择 Amazon Redshift 作为要模拟的服务，则会显示此消息。 要取消显示此消息，请执行下列操作之一： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/access_policies_testing-policies.html)  | 
| 此操作所属的服务除支持基于资源的策略之外，还支持特殊访问控制机制，如 Amazon S3 ACL 或 Amazon Glacier 文件库锁定策略。策略模拟器不支持这些机制，因此结果可能与您的生产环境不同。 |   **无需操作。** 此为告知性消息。在当前版本中，策略模拟器评估附加到用户和 IAM 组的策略，可评估针对 Amazon S3、Amazon SQS、Amazon SNS 和 Amazon Glacier 的基于资源的策略。策略模拟器只支持其他 AWS 服务支持的部分访问控制机制。  | 
| DynamoDB FGAC is currently not supported。 |   **无需操作。** 该信息性消息指的是*精细访问控制*。精细的访问控制是指使用 IAM policy 条件来确定谁可以访问 DynamoDB 表和索引中的各个数据项和属性的功能。它还指可以对这些表和索引执行的操作。IAM policy simulator 的当前版本不支持这类策略条件。有关 DynamoDB 访问权限精细控制的更多信息，请参阅 [DynamoDB 访问权限的精细控制](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/FGAC_DDB.html)。  | 
| You have policies that do not comply with the policy syntax。您可以使用策略模拟器查看您策略的推荐更新。 |  如果策略不符合 IAM policy 语法，则会在策略列表的顶部显示此消息。要模拟这些策略，请查看位于 [IAM 策略验证](access_policies_policy-validator.md) 的策略验证选项来识别和修复这些策略。  | 
|  This policy must be updated to comply with the latest policy syntax rules。 |  如果您的策略不符合 IAM policy 语法，则会显示此消息。要模拟这些策略，请查看位于 [IAM 策略验证](access_policies_policy-validator.md) 的策略验证选项来识别和修复这些策略。  | 

## 使用 IAM policy simulator（AWS CLI 和 AWS API）
<a name="policies-simulator-using-api"></a>

策略模拟器命令通常需要调用 API 操作以执行两项操作：

1. 评估策略并返回策略引用的上下文密钥的列表。您需要了解引用了哪些上下文密钥，以便在下一个步骤中提供它们的值。

1. 模拟策略，在模拟过程中提供操作、资源和上下文密钥的列表。

出于安全原因，API 操作已分为两个组：
+ 只对以字符串形式直接传递给 API 的策略进行模拟的 API 操作。此组包括 [GetContextKeysForCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html) 和 [SimulateCustomPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html)。
+ 对挂载到指定 IAM 用户、用户组、角色或资源的策略进行模拟的 API 操作。因为这些 API 操作可以获得分配给其他 IAM 实体的权限的详细信息，所以您应考虑限制对这些 API 操作的访问。此组包括 [GetContextKeysForPrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html) 和 [SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html)。有关限制对 API 操作的访问的更多信息，请参阅[示例策略：AWS Identity and Access Management (IAM)](access_policies_examples.md#policy_library_IAM)。

在这两种情况下，API 操作都将模拟一个或多个策略对操作和资源的列表的影响。每个操作都与每个资源配对，模拟将确定策略对该资源是允许还是拒绝该操作。您还可以为您的策略引用的任何上下文密钥提供值。通过首先调用 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html) 或 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html)，可以获取策略引用的上下文密钥的列表。如果不提供上下文密钥值，模拟仍会运行。但结果可能不可靠，这是因为策略模拟器无法在评估中包含该上下文密钥。

**获取上下文密钥的列表（AWS CLI、AWS API）**  
使用以下命令评估策略列表，返回策略中使用的上下文密钥的列表。
+ AWS CLI[https://docs.aws.amazon.com/cli/latest/reference/iam/get-context-keys-for-custom-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-context-keys-for-custom-policy.html) 和 [https://docs.aws.amazon.com/cli/latest/reference/iam/get-context-keys-for-principal-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/get-context-keys-for-principal-policy.html)
+ AWS API：[https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForCustomPolicy.html) 和 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetContextKeysForPrincipalPolicy.html)

**模拟 IAM policy（AWS CLI、AWS API）**  
使用以下命令模拟 IAM policy，以确定用户的有效权限。
+ AWS CLI[https://docs.aws.amazon.com/cli/latest/reference/iam/simulate-custom-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/simulate-custom-policy.html) 和 [https://docs.aws.amazon.com/cli/latest/reference/iam/simulate-principal-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/simulate-principal-policy.html)
+ AWS API：[https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulateCustomPolicy.html) 和 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html)

# 添加和删除 IAM 身份权限
<a name="access_policies_manage-attach-detach"></a>

可使用策略定义身份（用户、用户组或角色）的权限。您可以通过使用 AWS 管理控制台、AWS Command Line Interface (AWS CLI) 或 IAM API 附加和分离 AWS 策略来添加和删除权限。您还可使用策略为使用相同方法的唯一实体（用户或角色）设置 [permissions boundaries](access_policies_boundaries.md)（权限边界）。权限边界是一项控制实体可拥有的最大权限的高级 AWS 功能。

**Topics**
+ [术语](#attach-detach-etc-terminology)
+ [查看身份活动](#attach-detach_prerequisites)
+ [添加 IAM 身份权限（控制台）](#add-policies-console)
+ [删除 IAM 身份权限（控制台）](#remove-policies-console)
+ [添加 IAM policy (AWS CLI)](#add-policy-cli)
+ [移除 IAM policy (AWS CLI)](#remove-policy-cli)
+ [添加 IAM policy (AWS API)](#add-policy-api)
+ [删除 IAM policy (AWS API)](#remove-policy-api)

## 术语
<a name="attach-detach-etc-terminology"></a>

将权限策略与身份（IAM 用户、IAM 组和 IAM 角色）相关联时，术语和过程会因使用的是托管式策略还是内联策略而异：
+ **附加** - 与托管策略一起使用。您将托管策略附加到身份（用户、用户组或角色）。如果附加一个策略，则会将该策略中的权限应用于身份。
+ **分离** - 与托管策略一起使用。将托管策略与 IAM 身份（用户、用户组或角色）分离。如果分离一个策略，则会将其权限从身份中删除。
+ **嵌入** - 与内联策略一起使用。您在身份（用户、用户组或角色）中嵌入内联策略。如果嵌入一个策略，则会将该策略中的权限应用于身份。由于内联策略存储在身份中，因此，将嵌入而不是附加该策略，尽管结果类似。
**注意**  
您只能将*[服务相关角色](id_roles.md#iam-term-service-linked-role)*的内联策略嵌入依赖该角色的服务。请参阅服务的 [AWS 文档](https://docs.aws.amazon.com/)，以了解它是否支持该功能。
+ **删除** - 与内联策略一起使用。从 IAM 身份（用户、用户组或角色）删除内联策略。如果删除一个策略，则会将其权限从身份中删除。
**注意**  
您只能将*[服务相关角色](id_roles.md#iam-term-service-linked-role)*的内联策略从依赖该角色的服务中删除。请参阅服务的 [AWS 文档](https://docs.aws.amazon.com/)，以了解它是否支持该功能。

您可以使用控制台、AWS CLI 或 AWS API 来执行这些操作中的任一操作。

### 更多信息
<a name="terminology-more-info-roles-policies"></a>
+ 有关托管策略和内联策略之间的差别的更多信息，请参阅[托管策略与内联策略](access_policies_managed-vs-inline.md)。
+ 有关权限边界的更多信息，请参阅[IAM 实体的权限边界](access_policies_boundaries.md)。
+ 有关 IAM policy 的一般信息，请参阅。[AWS Identity and Access Management 中的策略和权限](access_policies.md)
+ 有关验证 IAM 用户策略的信息，请参阅 [IAM 策略验证](access_policies_policy-validator.md)。
+ AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 AWS STS 配额](reference_iam-quotas.md)。

## 查看身份活动
<a name="attach-detach_prerequisites"></a>

在更改身份（用户、用户组或角色）的权限之前，您应查看其最近的服务级别活动。这非常重要，因为您不想删除使用它的主体（个人或应用程序）的访问权限。有关查看上次访问的信息的更多信息，请参阅 [使用上次访问的信息优化 AWS 中的权限](access_policies_last-accessed.md)。

## 添加 IAM 身份权限（控制台）
<a name="add-policies-console"></a>

您可以使用 AWS 管理控制台向身份（用户、用户组或角色）添加权限。为此，请附加控制权限的托管策略，或指定充当[权限边界](access_policies_boundaries.md)的策略。您还可以嵌入内联策略。<a name="access_policies_manage-attach-detach-console"></a>

**将托管策略用作身份的权限策略（控制台）**

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

1. 在导航窗格中，选择**策略**。

1. 在策略列表中，选中要附加的策略的名称旁边的单选按钮。您可以使用搜索框筛选策略列表。

1. 选择 **Actions**（操作），然后选择 **Attach**（附加）。

1. 选择一个或多个要将策略附加到的身份。您可以使用搜索框来筛选主体实体列表。在选择身份后，选择**附加策略**。<a name="set-managed-policy-boundary-console"></a>

**使用托管策略设置权限边界（控制台）**

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

1. 在导航窗格中，选择**策略**。

1. 在策略列表中，选择要设置的策略的名称。您可以使用搜索框筛选策略列表。

1. 在策略详细信息页面上，选择**附加的实体**选项卡，然后（如有必要）打开**附加为权限边界**部分并选择**将策略设置为权限边界**。

1. 选择要将策略用于其权限边界的一个或多个用户或角色。您可以使用搜索框来筛选主体实体列表。选择主体后，选择**设置权限边界**。<a name="embed-inline-policy-console"></a>

**为用户或角色嵌入内联策略（控制台）**

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

1. 在导航窗格中，选择**用户**或**角色**。

1. 在列表中，选择要在其中嵌入策略的用户或角色的名称。

1. 选择**权限**选项卡。

1. 选择**添加权限**，然后选择**创建内联策略**。

    
**注意**  
您不能在 IAM 中的*[服务相关角色](id_roles.md#iam-term-service-linked-role)*中嵌入内联策略。由于链接服务定义了您是否能修改角色的权限，因此，您可能能够从服务控制台、API 或 AWS CLI 添加其他策略。要查看某个服务的服务相关角色文档，请参阅[使用 IAM 的 AWS 服务](reference_aws-services-that-work-with-iam.md)并在您的服务的 **Service-Linked Role** 列中选择 **Yes**。

1. 选择以下方法之一来查看创建策略所需的步骤：
   + [导入现有托管策略](access_policies_create-console.md#access_policies_create-copy) - 您可以在您的账户中导入一个托管策略，然后编辑该策略以根据您的特定要求进行自定义。托管策略可以是 AWS 托管策略，也可以是您以前创建的客户托管策略。
   + [使用可视化编辑器创建策略](access_policies_create-console.md#access_policies_create-visual-editor) - 您可以在可视化编辑器中从头开始构建新的策略。如果使用可视化编辑器，您不需要了解 JSON 语法。
   + [使用 JSON 编辑器创建策略](access_policies_create-console.md#access_policies_create-json-editor) – 在 **JSON** 编辑器选项中，您可以使用 JSON 语法创建策略。您可以键入新的 JSON 策略文档或粘贴[示例策略](access_policies_examples.md)。

1. 创建内联策略后，它会自动嵌入您的用户和角色。

**为用户组嵌入内联策略（控制台）**

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

1. 在导航窗格中，选择 **User groups**（用户组）。

1. 在列表中，请选择要在其中嵌入策略的用户组的名称。

1. 请选择 **Permissions**（权限）选项卡，然后选择 **Add permissions**（添加权限），接着选择 **Create inline policy**（创建内联策略）。

1. 请执行以下操作之一：
   + 选择**可视化**选项以创建策略。有关更多信息，请参阅 [使用可视化编辑器创建策略](access_policies_create-console.md#access_policies_create-visual-editor)。
   + 选择 **JSON** 选项以创建策略。有关更多信息，请参阅 [使用 JSON 编辑器创建策略](access_policies_create-console.md#access_policies_create-json-editor)。

1. 若您满意所创建的策略，请选择**创建策略**。<a name="replace-managed-policy-boundary-console"></a>

**更改一个或多个实体的权限边界（控制台）**

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

1. 在导航窗格中，选择**策略**。

1. 在策略列表中，选择要设置的策略的名称。您可以使用搜索框筛选策略列表。

1. 在策略详细信息页面上，选择**附加的实体**选项卡，然后（如有必要）打开**附加为权限边界**部分。选中要更改其边界的用户或角色旁边的复选框，然后选择**更改**。

1. 选择要用于权限边界的新策略。您可以使用搜索框筛选策略列表。选择策略后，选择**设置权限边界**。

## 删除 IAM 身份权限（控制台）
<a name="remove-policies-console"></a>

您可以使用 AWS 管理控制台删除身份（用户、用户组或角色）的权限。为此，请分离控制权限的托管策略，或删除充当[权限边界](access_policies_boundaries.md)的策略。您还可以删除内联策略。<a name="detach-managed-policy-console"></a>

**分离用作权限策略的托管策略（控制台）**

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

1. 在导航窗格中，选择**策略**。

1. 在策略列表中，选中要分离的策略的名称旁边的单选按钮。您可以使用搜索框筛选策略列表。

1. 选择 **Actions**（操作），然后选择 **Detach**（删除）。

1. 选择要从中分离策略的身份。您可以使用搜索框筛选身份列表。在选择身份后，选择**分离策略**。<a name="remove-managed-policy-boundary-console"></a>

**删除权限边界（控制台）**

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

1. 在导航窗格中，选择**策略**。

1. 在策略列表中，选择要设置的策略的名称。您可以使用搜索框筛选策略列表。

1. 在策略摘要页面上，选择**附加的实体**选项卡，然后（如有必要）打开**附加为权限边界**部分并选择要移除权限边界的实体。然后选择**移除边界**。

1. 确认您要移除边界并选择**移除边界**。<a name="delete-inline-policy-console"></a>

**删除内联策略（控制台）**

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

1. 在导航窗格中，选择 **Groups**（组）、**Users**（用户）或 **Roles**（角色）。

1. 在列表中，请选择具有要修改的策略的用户组、用户或角色的名称。

1. 选择**权限**选项卡。

1. 选中策略旁边的复选框，然后选择**移除**。

1. 在确认对话框中，选择**移除**。

## 添加 IAM policy (AWS CLI)
<a name="add-policy-cli"></a>

您可以使用 AWS CLI向身份（用户、用户组或角色）添加权限。为此，请附加控制权限的托管策略，或指定充当[权限边界](access_policies_boundaries.md)的策略。您还可以嵌入内联策略。

**将托管策略用作实体的权限策略 (AWS CLI)**

1. （可选）要查看有关托管策略的信息，请运行以下命令：
   + 列出托管策略：[aws iam list-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies.html)
   + 检索有关托管策略的详细信息：[get-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy.html)

1. 要将托管策略附加到身份（用户、用户组或角色），请使用以下命令之一：
   + [aws iam attach-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-user-policy.html)
   + [aws iam attach-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-group-policy.html)
   + [aws iam attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html)

**使用托管策略设置权限边界 (AWS CLI)**

1. （可选）要查看有关托管策略的信息，请运行以下命令：
   + 列出托管策略：[aws iam list-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies.html)
   + 检索有关托管策略的详细信息：[aws iam get-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy.html)

1. 要使用托管策略为实体（用户或角色）设置权限边界，请使用下列命令之一：
   + [aws iam put-user-permissions-boundary](https://docs.aws.amazon.com/cli/latest/reference/iam/put-user-permissions-boundary.html)
   + [aws iam put-role-permissions-boundary](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-permissions-boundary.html)

**嵌入内联策略 (AWS CLI)**  
要将内联策略嵌入身份（用户、用户组或不是*[服务相关角色](id_roles.md#iam-term-service-linked-role)*的角色），请使用以下命令之一：
+ [aws iam put-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-user-policy.html)
+ [aws iam put-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-group-policy.html)
+ [aws iam put-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html)

## 移除 IAM policy (AWS CLI)
<a name="remove-policy-cli"></a>

您可以使用 AWS CLI 分离控制权限的托管策略，或删除充当[权限边界](access_policies_boundaries.md)的策略。您还可以删除内联策略。

**分离用作权限策略的托管策略 (AWS CLI)**

1. （可选）要查看有关策略的信息，请运行以下命令：
   + 列出托管策略：[aws iam list-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies.html)
   + 检索有关托管策略的详细信息：[aws iam get-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy.html) 

1. （可选）要了解策略与身份之间的关系，请运行以下命令：
   + 列出托管式策略附加到的身份（IAM 用户、IAM 组和 IAM 角色）：
     + [aws iam list-entities-for-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/list-entities-for-policy.html)
   + 要列出附加到身份（用户、用户组或角色）的托管策略，请使用以下一个命令：
     + [aws iam list-attached-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-user-policies.html)
     + [aws iam list-attached-group-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-group-policies.html)
     + [aws iam list-attached-role-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-role-policies.html)

1. 要从身份（用户、用户组或角色）分离托管策略，请使用以下命令之一：
   + [aws iam detach-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/detach-user-policy.html)
   + [aws iam detach-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/detach-group-policy.html)
   + [aws iam detach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/detach-role-policy.html)

**删除权限边界 (AWS CLI)**

1. （可选）要查看当前用于为用户或角色设置权限边界的托管策略，请运行以下命令：
   + [aws iam get-user](https://docs.aws.amazon.com/cli/latest/reference/iam/get-user.html)
   +  [aws iam get-role](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html) 

1. （可选）要查看将托管策略用于其权限边界的用户或角色，请运行以下命令：
   + [aws iam list-entities-for-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/list-entities-for-policy.html)

1. （可选）要查看有关托管策略的信息，请运行以下命令：
   + 列出托管策略：[aws iam list-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies.html)
   + 检索有关托管策略的详细信息：[aws iam get-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy.html) 

1. 要从用户或角色删除权限边界，请使用以下命令之一：
   + [aws iam delete-user-permissions-boundary](https://docs.aws.amazon.com/cli/latest/reference/iam/detach-user-policy.html)
   + [aws iam delete-role-permissions-boundary](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-permissions-boundary.html)

**删除内联策略 (AWS CLI)**

1. （可选）要列出附加到身份（用户、用户组和角色）的所有内联策略，请使用以下命令之一：
   + [aws iam list-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-user-policies.html)
   + [aws iam list-group-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-group-policies.html)
   + [aws iam list-role-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-role-policies.html)

1. （可选）要检索嵌入到身份（用户、用户组或角色）中的内联策略文档，请使用以下命令之一：
   + [aws iam get-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-user-policy.html)
   + [aws iam get-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-group-policy.html)
   + [aws iam get-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role-policy.html)

1. 要从身份（用户、用户组或不是*[服务相关角色](id_roles.md#iam-term-service-linked-role)*的角色）中删除内联策略，请使用以下命令之一：
   + [aws iam delete-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-user-policy.html)
   + [aws iam delete-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-group-policy.html)
   + [aws iam delete-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html)

## 添加 IAM policy (AWS API)
<a name="add-policy-api"></a>

您可以使用 AWS API 附加控制权限的托管策略，或指定充当[权限边界](access_policies_boundaries.md)的策略。您还可以嵌入内联策略。

**将托管策略用作实体的权限策略 (AWS API)**

1. （可选）要查看有关策略的信息，请调用以下操作：
   + 列出托管策略：[ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html) 
   + 检索有关托管策略的详细信息：[GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html)

1. 要将托管策略附加到身份（用户、用户组或角色），请调用以下操作之一：
   + [AttachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachUserPolicy.html)
   + [AttachGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachGroupPolicy.html)
   + [AttachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html)

**使用托管策略设置权限边界 (AWS API)**

1. （可选）要查看有关托管策略的信息，请调用以下操作：
   + 列出托管策略：[ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html)
   + 检索有关托管策略的详细信息：[GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html)

1. 要使用托管策略为实体（用户或角色）设置权限边界，请调用下列操作之一：
   + [PutUserPermissionsBoundary](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutUserPermissionsBoundary.html)
   + [PutRolePermissionsBoundary](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePermissionsBoundary.html)

**嵌入内联策略 (AWS API)**  
要将内联策略嵌入身份（用户、用户组或不是*[服务相关角色](id_roles.md#iam-term-service-linked-role)*的角色），请调用以下操作之一：
+ [PutUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutUserPolicy.html)
+ [PutGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutGroupPolicy.html)
+ [PutRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html)

## 删除 IAM policy (AWS API)
<a name="remove-policy-api"></a>

您可以使用 AWS API 分离控制权限的托管策略，或删除充当[权限边界](access_policies_boundaries.md)的策略。您还可以删除内联策略。

**分离用作权限策略的托管策略 (AWS API)**

1. （可选）要查看有关策略的信息，请调用以下操作：
   + 列出托管策略：[ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html)
   + 检索有关托管策略的详细信息：[GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html)

1. （可选）要了解策略与身份之间的关系，请调用以下操作：
   + 列出托管式策略附加到的身份（IAM 用户、IAM 组和 IAM 角色）：
     + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html)
   + 要列出附加到身份（用户、用户组或角色）的托管策略，请调用以下一项操作：
     + [ListAttachedUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedUserPolicies.html)
     + [ListAttachedGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedGroupPolicies.html)
     + [ListAttachedRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html)

1. 要将托管策略与身份（用户、用户组或角色）分离，请调用以下操作之一：
   + [DetachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html)
   + [DetachGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachGroupPolicy.html)
   + [DetachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachRolePolicy.html)

**删除权限边界 (AWS API)**

1. （可选）要查看当前用于为用户或角色设置权限边界的托管策略，请调用以下操作：
   + [GetUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html)
   + [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html)

1. （可选）要查看将托管策略用于其权限边界的用户或角色，请调用以下操作：
   + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html)

1. （可选）要查看有关托管策略的信息，请调用以下操作：
   + 列出托管策略：[ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html)
   + 检索有关托管策略的详细信息：[GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html)

1. 要从用户或角色删除权限边界，请调用以下操作之一：
   + [DeleteUserPermissionsBoundary](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPermissionsBoundary.html)
   + [DeleteRolePermissionsBoundary](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRolePermissionsBoundary.html)

**删除内联策略 (AWS API)**

1. （可选）要列出附加到身份（用户、用户组和角色）的所有内联策略，请调用以下操作之一：
   + [ListUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html)
   + [ListGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupPolicies.html)
   + [ListRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html)

1. （可选）要检索嵌入到身份（用户、用户组或角色）中的内联策略文档，请调用以下操作之一：
   + [GetUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUserPolicy.html)
   + [GetGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroupPolicy.html)
   + [GetRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRolePolicy.html)

1. 要将内联策略从身份（用户、用户组或不是*[服务相关角色](id_roles.md#iam-term-service-linked-role)*的角色）中删除，请调用以下操作之一：
   + [DeleteUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPolicy.html)
   + [DeleteGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroupPolicy.html)
   + [DeleteRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRolePolicy.html)

# IAM policy 版本控制
<a name="access_policies_managed-versioning"></a>

在对 IAM 客户托管策略进行更改时，以及 AWS 对 AWS 托管策略进行更改时，更改的策略不会覆盖现有的策略。而是由 IAM 创建新的托管策略*版本*。IAM 最多可以存储五个版本的客户管理策略。IAM 不支持内联策略版本控制。

下图说明了客户托管策略版本控制。在此示例中，已保存版本 1-4。您最多可以将五个托管策略版本保存到 IAM。在您编辑将创建第六个已保存版本的策略时，可以选择不再保存哪个较旧版本。您可以随时恢复到其他四个已保存版本中的任何一个。

![\[对托管策略进行的更改成为新的策略版本\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-managed-policies-versions-overview.diagram.png)


策略版本与 `Version` 策略元素不同。`Version` 策略元素用在策略之中，用于定义策略语言的版本。要了解 `Version` 策略元素的更多信息，请参阅[IAM JSON 策略元素：Version](reference_policies_elements_version.md)。

您可以使用不同版本跟踪对托管策略的更改。例如，您对托管策略进行更改，然后发现更改有意外效果。在这种情况下，通过将以前版本设置为*默认* 版本，可以回滚到以前版本的托管策略。

下面的主题说明了如何对托管式策略进行版本控制。

**Topics**
+ [版本限制](#version-limits)
+ [使用不同版本回滚更改](#versions-roll-back)
+ [用于设置默认策略版本的权限](#policy-version-permissions)
+ [设置客户托管策略的默认版本](#default-version)

## 版本限制
<a name="version-limits"></a>

一个托管策略最多可以有五个版本。如果需要从 AWS Command Line Interface 或 AWS API 在五个版本之外更改托管策略更改，必须先删除一个或多个现有版本。如果使用的是 AWS 管理控制台，则您在编辑策略之前不必删除版本。当您保存第六个版本时，会出现一个对话框，提示您删除策略的一个或多个非默认版本。您可以查看每个版本的 JSON 策略文档，以方便做出决定。有关该对话框的详细信息，请参阅[编辑 IAM 策略](access_policies_manage-edit.md)。

您可以根据需要删除任何托管策略版本 (默认版本除外)。删除某个版本时，其余版本的版本标识符不会更改。因此，版本标识符可能是不连续的。例如，如果您删除托管策略版本 v2 和 v4，然后添加两个新版本，则其余版本标识符可能是 v1、v3、v5、v6 和 v7。

## 使用不同版本回滚更改
<a name="versions-roll-back"></a>

您可以设置客户托管策略的默认版本以回滚您的更改。例如，考虑以下情形：

您创建一个客户托管策略，以允许用户使用 AWS 管理控制台 管理特定的 Amazon S3 存储桶。创建时，您的客户托管策略只有一个版本（标识为 v1），因此该版本自动设置为默认版本。该策略可正常工作。

随后，您将更新策略，以添加权限对第二个 Amazon S3 存储桶进行管理。IAM 会创建新的策略版本（标识为 v2），该版本将包含您所做的更改。您将版本 v2 设置为默认版本，不久之后，您的用户报告，他们缺少使用 Amazon S3 控制台的权限。在此情况下，您可以回滚到策略版本 v1，您知道该版本可正常工作。为此，您可以将版本 v1 设置为默认版本。您的用户现在可以使用 Amazon S3 控制台来管理原始存储桶。

后来，在确定策略版本 v2 中的错误之后，您再次更新策略，添加了对第二个 Amazon S3 存储桶的管理权限。IAM 会创建另一个新版本的策略，标识为 v3。您将版本 v3 设置为默认版本，此版本可正常工作。此时，您删除策略版本 v2。

## 用于设置默认策略版本的权限
<a name="policy-version-permissions"></a>

设置默认策略版本所需的权限对应于任务的 AWS API 操作。您可以使用 `CreatePolicyVersion` 或 `SetDefaultPolicyVersion` API 操作来设置默认策略版本。要允许某人设置现有策略的默认策略版本，您可以允许访问 `iam:CreatePolicyVersion` 操作或 `iam:SetDefaultPolicyVersion` 操作。`iam:CreatePolicyVersion` 操作允许他们创建新版本的策略并将该版本设置为默认版本。`iam:SetDefaultPolicyVersion` 操作允许他们将任何现有策略版本设置为默认版本。

**重要**  
要防止用户更改策略的默认版本，必须同时拒绝 `iam:CreatePolicyVersion` 和 `iam:SetDefaultPolicyVersion`。

您可以使用以下策略来拒绝用户访问以更改现有客户托管策略：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "iam:CreatePolicyVersion",
                "iam:SetDefaultPolicyVersion"
            ],
            "Resource": "arn:aws:iam::*:policy/POLICY-NAME"
        }
    ]
}
```

------

## 设置客户托管策略的默认版本
<a name="default-version"></a>

托管策略的一个版本会设置为*默认* 版本。策略的默认版本是有效版本，即对托管式策略附加到的所有主体实体（IAM 用户、IAM 组和 IAM 角色）都生效的版本。

创建客户托管策略时，策略从标识为 v1 的单个版本开始。对于只有单个版本的托管策略，该版本会自动设置为默认版本。对于有多个版本的客户托管策略，由您选择要设置为默认版本的版本。对于 AWS 托管策略，默认版本由 AWS 设置。下面的示意图对此概念进行说明。

![\[有单个版本（默认版本）的托管策略\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-managed-policies-versions-default-one.diagram.png)




![\[有三个版本的客户托管策略，其中版本 v2 是默认版本。\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-managed-policies-versions-default-multiple.diagram.png)


您可以设置客户托管策略的默认版本，以将该版本应用于该策略附加到的每个 IAM 身份（用户、用户组和角色）。您无法为 AWS 托管策略或内联策略设置默认版本。

**设置客户托管策略的默认版本（控制台）**

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

1. 在导航窗格中，选择**策略**。

1. 在策略列表中，选择要设置其默认版本的策略的名称。您可以使用搜索框筛选策略列表。

1. 选择 **Policy Versions (策略版本)** 选项卡。选中要设置为默认版本的版本旁边的复选框，然后选择**设为默认**。

要了解如何从 AWS Command Line Interface 或 AWS API 中设置客户托管策略的默认版本，请参阅[编辑 IAM 策略（AWS CLI）](access_policies_manage-edit-cli.md)。

# 编辑 IAM 策略
<a name="access_policies_manage-edit"></a>

[策略](access_policies.md)是一个实体；在附加到身份或资源时，策略定义了它们的权限。策略作为 JSON 文档存储在 AWS 中，并在 IAM 中作为*基于身份的策略*附加到主体。您可以将基于身份的策略附加到主体（或身份），例如，IAM 用户组、用户或角色。基于身份的策略包括 AWS 托管策略、客户托管策略和[内联策略](access_policies_managed-vs-inline.md)。您可以在 IAM 中编辑客户托管策略和内联策略。AWS 托管策略无法编辑。AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 AWS STS 配额](reference_iam-quotas.md)。

通常来说，最好使用客户管理型策略而非内联策略或 AWS 托管策略。AWS 托管策略通常提供广泛的管理权限或只读权限。内联策略不能在其他身份上重复使用，也不能在其所存在的身份之外托管。为了获得最高安全性，[请授予最低权限](best-practices.md#grant-least-privilege)，这意味着仅授予执行特定作业任务所需的权限。

创建或编辑 IAM policy 时，AWS 可以自动执行策略验证，以帮助您创建具有最低权限的有效策略。在 AWS 管理控制台 中，IAM 可识别 JSON 语法错误，而 IAM Access Analyzer 提供额外的策略检查和建议，以帮助您进一步优化策略。要了解策略验证的更多信息，请参阅 [IAM 策略验证](access_policies_policy-validator.md)。要了解有关 IAM Access Analyzer 策略检查和可执行建议的更多信息，请参阅 [IAM Access Analyzer 策略验证](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。

您可以使用 AWS 管理控制台、AWS CLI 或 AWS API 在 IAM 中编辑客户管理型策略和内联策略。有关使用 CloudFormation 模板添加或更新策略的更多信息，请参阅《CloudFormation 用户指南》**中的 [AWS Identity and Access Management 资源类型参考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_IAM.html)。

**Topics**
+ [编辑 IAM 策略（控制台）](access_policies_manage-edit-console.md)
+ [编辑 IAM 策略（AWS CLI）](access_policies_manage-edit-cli.md)
+ [编辑 IAM 策略（AWS API）](access_policies_manage-edit-api.md)

# 编辑 IAM 策略（控制台）
<a name="access_policies_manage-edit-console"></a>

[策略](access_policies.md)是一个实体；在附加到身份或资源时，策略定义了它们的权限。您可以使用 AWS 管理控制台 在 IAM 中编辑*客户管理型策略*和*内联策略*。AWS 托管策略无法编辑。AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 AWS STS 配额](reference_iam-quotas.md)。

有关策略结构和语法的更多信息，请参阅[AWS Identity and Access Management 中的策略和权限](access_policies.md)和[IAM JSON 策略元素参考](reference_policies_elements.md)。

## 先决条件
<a name="edit-customer-managed-policy-console-prerequisites"></a>

在更改策略的权限之前，您应查看其最近的服务级别活动。这非常重要，因为您不想删除使用它的主体（个人或应用程序）的访问权限。有关查看上次访问的信息的更多信息，请参阅 [使用上次访问的信息优化 AWS 中的权限](access_policies_last-accessed.md)。

## 编辑客户托管策略（控制台）
<a name="edit-customer-managed-policy-console"></a>

您可以从 AWS 管理控制台 中编辑客户管理型策略以更改在策略中定义的权限。客户托管策略最多可以具有五个版本。这是非常重要的，因为如果在五个版本以外更改托管策略，AWS 管理控制台将提示您决定删除哪个版本。也可以更改策略的默认版本，或者在编辑之前删除一个版本以避免出现提示。要了解版本的更多信息，请参阅[IAM policy 版本控制](access_policies_managed-versioning.md)。

------
#### [ Console ]

**编辑客户管理型策略**

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

1. 在导航窗格中，选择**策略**。

1. 在策略列表中，选择要编辑的策略的名称。您可以使用搜索框筛选策略列表。

1. 选择**权限**选项卡，然后选择**编辑**。

1. 请执行以下操作之一：
   + 选择**可视化**选项以更改您的策略，而无需了解 JSON 语法。您可以更改策略中的每个权限块的服务、操作、资源或可选条件。也可以导入一个策略以在您的策略底部添加其他权限。完成更改后，选择**下一步**以继续。
   + 选择 **JSON** 选项，然后在 JSON 文本框中键入或粘贴文本以修改您的策略。也可以导入一个策略以在您的策略底部添加其他权限。解决[策略验证](access_policies_policy-validator.md)过程中生成的任何安全警告、错误或常规警告，然后选择**下一步**。
**注意**  
您可以随时在**可视化**和 **JSON** 编辑器选项卡之间切换。不过，如果您进行更改或在**可视化**编辑器中选择**下一步**，IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息，请参阅 [调整策略结构](troubleshoot_policies.md#troubleshoot_viseditor-restructure)。

1. 在**查看并保存**页面上，查看**此策略中定义的权限**，然后选择**保存更改**以保存您的工作。

1. 如果管理型策略已达到最大版本数（5 个），选择**保存更改**将显示对话框。要保存您的新版本，策略最旧的非默认版本将被移除并替换为该新版本。（可选）您也可以将新版本设置为策略的默认版本。

   选择**保存更改**以保存您的新策略版本。

------

## 设置客户管理型策略的默认版本（控制台）
<a name="edit-customer-managed-policy-console-set-default-policy-version"></a>

您可以从 AWS 管理控制台 中设置客户管理型策略的默认版本。您可以使用该策略为整个组织中的权限建立一致的基准配置。该策略的所有新附件都将使用这组标准化的权限。

------
#### [  Console  ]

**设置客户托管策略的默认版本（控制台）**

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

1. 在导航窗格中，选择**策略**。

1. 在策略列表中，选择要设置其默认版本的策略的名称。您可以使用搜索框筛选策略列表。

1. 选择 **Policy Versions (策略版本)** 选项卡。选中要设置为默认版本的版本旁的复选框，然后选择 **Set as default**。

------

## 删除某个版本的客户管理型策略（控制台）
<a name="edit-customer-managed-policy-console-delete-policy-version"></a>

您可能需要删除客户管理型策略的某个版本，才能删除不再需要的权限或存在潜在安全风险的过时权限或不正确权限。仅维护必要的版本有助于确保始终处于五个管理型策略版本的限制范围内，从而为将来的更新和改进留出空间。您可以从 AWS 管理控制台 中删除客户管理型策略的某个版本。

------
#### [ Console ]

**删除客户管理型策略的某个版本**

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

1. 在导航窗格中，选择**策略**。

1. 选择要删除其版本的客户托管策略的名称。您可以使用搜索框筛选策略列表。

1. 选择 **Policy Versions (策略版本)** 选项卡。选中要删除的版本旁边的复选框，然后选择**删除**。

1. 确认您要删除该版本，然后选择 **Delete**。

------

## 编辑内联策略（控制台）
<a name="edit-inline-policy-console"></a>

您可能需要编辑客户管理型策略以更新或完善所授予的权限，确保这些权限与组织不断变化的安全要求和访问控制需求保持一致。您可通过编辑来调整策略的 JSON 文档，并添加、修改或删除特定操作、资源或条件，以维护最低权限原则并适应环境或流程的变化。您可以从 AWS 管理控制台编辑内联策略。

------
#### [ Console ]

**编辑用户、用户组或角色的内联策略**

1. 在导航窗格中，选择 **Users**（用户）、**User groups**（用户组）或 **Roles**（角色）。

1. 请选择具有要修改的策略的用户组、用户或角色的名称。然后选择**权限**选项卡并展开此策略。

1. 要编辑内联策略，请选择 **Edit Policy**。

1. 请执行以下操作之一：
   + 选择**可视化**选项以更改您的策略，而无需了解 JSON 语法。您可以更改策略中的每个权限块的服务、操作、资源或可选条件。也可以导入一个策略以在您的策略底部添加其他权限。完成更改后，选择**下一步**以继续。
   + 选择 **JSON** 选项，然后在 JSON 文本框中键入或粘贴文本以修改您的策略。也可以导入一个策略以在您的策略底部添加其他权限。解决[策略验证](access_policies_policy-validator.md)过程中生成的任何安全警告、错误或常规警告，然后选择**下一步**。要在不影响当前附加的实体的情况下保存更改，请清除 **Save as default version** 的复选框。
**注意**  
您可以随时在**可视化**和 **JSON** 编辑器选项卡之间切换。不过，如果您进行更改或在**可视化**编辑器中选择**下一步**，IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息，请参阅 [调整策略结构](troubleshoot_policies.md#troubleshoot_viseditor-restructure)。

1. 在**审核**页面上，审核策略摘要，然后选择**保存更改**进行保存。

------

# 编辑 IAM 策略（AWS CLI）
<a name="access_policies_manage-edit-cli"></a>

[策略](access_policies.md)是一个实体；在附加到身份或资源时，策略定义了它们的权限。您可以使用 AWS Command Line Interface（AWS CLI）在 IAM 中编辑*客户管理型策略*和*内联策略*。AWS 托管策略无法编辑。AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 AWS STS 配额](reference_iam-quotas.md)。

有关策略结构和语法的更多信息，请参阅[AWS Identity and Access Management 中的策略和权限](access_policies.md)和[IAM JSON 策略元素参考](reference_policies_elements.md)。

## 先决条件
<a name="edit-customer-managed-policy-cli-prerequisites"></a>

在更改策略的权限之前，您应查看其最近的服务级别活动。这非常重要，因为您不想删除使用它的主体（个人或应用程序）的访问权限。有关查看上次访问的信息的更多信息，请参阅 [使用上次访问的信息优化 AWS 中的权限](access_policies_last-accessed.md)。

## 编辑客户托管策略 (AWS CLI)
<a name="edit-customer-managed-policy-cli"></a>

您可以从 AWS CLI 编辑客户托管策略。

**注意**  
一个托管策略最多可以有五个版本。如果您需要在五个版本之外继续对客户托管策略进行更改，则必须首先删除一个或多个现有版本。

**编辑客户托管策略 (AWS CLI)**

1. （可选）要查看有关策略的信息，请运行以下命令：
   + 列出托管策略：[list-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies.html)
   + 检索有关托管策略的详细信息：[get-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy.html)

1. （可选）要了解策略与身份之间的关系，请运行以下命令：
   + 列出托管式策略附加到的身份（IAM 用户、IAM 组和 IAM 角色）：
     + [list-entities-for-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/list-entities-for-policy.html)
   + 列出附加到身份（用户、用户组或角色）的托管策略：
     + [list-attached-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-user-policies.html)
     + [list-attached-group-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-group-policies.html)
     + [list-attached-role-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-role-policies.html)

1. 要编辑客户托管策略，请运行以下命令：
   + [create-policy-version](https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy-version.html)

1. （可选）要验证客户托管策略，请运行以下 IAM Access Analyzer 命令：
   + [validate-policy](https://docs.aws.amazon.com/cli/latest/reference/accessanalyzer/validate-policy.html)

## 设置客户管理型策略的默认版本（AWS CLI）
<a name="edit-customer-managed-policy-cli-set-default-policy-version"></a>

您可以从 AWS CLI 中设置客户管理型策略的默认版本。

**设置客户托管策略的默认版本 (AWS CLI)**

1. （可选）要列出托管策略，请运行以下命令：
   + [list-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies.html)

1. 要设置客户托管策略的默认版本，请运行以下命令：
   + [set-default-policy-version](https://docs.aws.amazon.com/cli/latest/reference/iam/set-default-policy-version.html)

## 删除客户管理型策略的某个版本（AWS CLI）
<a name="edit-customer-managed-policy-cli-delete-policy-version"></a>

您可以从 AWS CLI 中删除客户管理型策略的某个版本。

**删除客户托管策略的某个版本 (AWS CLI)**

1. （可选）要列出托管策略，请运行以下命令：
   + [list-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies.html)

1. 要删除客户托管策略，请运行以下命令：
   + [delete-policy-version](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-policy-version.html)

## 编辑内联策略（AWS CLI）
<a name="edit-inline-policy-cli"></a>

您可以从 AWS CLI编辑内联策略。

**要编辑内联策略（AWS CLI）**

1. （可选）要查看有关策略的信息，请运行以下命令：
   + 要列出与身份（用户、用户组或角色）关联的内联策略：
     + [list-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-user-policies.html)
     + [list-role-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-role-policies.html)
     + [list-group-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-group-policies.html)
   + 要检索有关内联策略的详细信息：
     + [get-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-user-policy.html)
     + [get-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role-policy.html)
     + [get-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-group-policy.html)

1. 要编辑内联策略，请运行以下命令：
   + [put-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-user-policy.html)
   + [put-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html)
   + [put-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-group-policy.html)

1. （可选）要验证内联策略，请运行以下 IAM Access Analyzer 命令：
   + [validate-policy](https://docs.aws.amazon.com/cli/latest/reference/accessanalyzer/validate-policy.html)

# 编辑 IAM 策略（AWS API）
<a name="access_policies_manage-edit-api"></a>

[策略](access_policies.md)是一个实体；在附加到身份或资源时，策略定义了它们的权限。您可以使用 AWS API 在 IAM 中编辑*客户管理型策略*和*内联策略*。AWS 托管策略无法编辑。AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 AWS STS 配额](reference_iam-quotas.md)。

有关策略结构和语法的更多信息，请参阅[AWS Identity and Access Management 中的策略和权限](access_policies.md)和[IAM JSON 策略元素参考](reference_policies_elements.md)。

## 先决条件
<a name="edit-customer-managed-policy-api-prerequisites"></a>

在更改策略的权限之前，您应查看其最近的服务级别活动。这非常重要，因为您不想删除使用它的主体（个人或应用程序）的访问权限。有关查看上次访问的信息的更多信息，请参阅 [使用上次访问的信息优化 AWS 中的权限](access_policies_last-accessed.md)。

## 编辑客户托管策略 (AWS API)
<a name="edit-customer-managed-policy-api"></a>

您可以使用 AWS API 编辑客户托管策略。

**注意**  
一个托管策略最多可以有五个版本。如果您需要在五个版本之外继续对客户托管策略进行更改，则必须首先删除一个或多个现有版本。

**编辑客户托管策略 (AWS API)**

1. （可选）要查看有关策略的信息，请调用以下操作：
   + 列出托管策略：[ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html)
   + 检索有关托管策略的详细信息：[GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html)

1. （可选）要了解策略与身份之间的关系，请调用以下操作：
   + 列出托管式策略附加到的身份（IAM 用户、IAM 组和 IAM 角色）：
     + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html)
   + 列出附加到身份（用户、用户组或角色）的托管策略：
     + [ListAttachedUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedUserPolicies.html)
     + [ListAttachedGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedGroupPolicies.html)
     + [ListAttachedRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html)

1. 要编辑客户托管策略，请调用以下操作：
   + [CreatePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicyVersion.html)

1. （可选）要验证客户托管策略，请调用以下 IAM Access Analyzer 操作：
   + [ValidatePolicy](https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_ValidatePolicy.html)

## 设置客户管理型策略的默认版本（AWS API）
<a name="edit-customer-managed-policy-api-set-default-policy-version"></a>

您可以从 AWS API 中设置客户管理型策略的默认版本。

**设置客户托管策略的默认版本 (AWS API)**

1. （可选）要列出托管策略，请调用以下操作：
   + [ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html)

1. 要设置客户托管策略的默认版本，请调用以下操作：
   + [SetDefaultPolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SetDefaultPolicyVersion.html)

## 删除客户管理型策略的某个版本（AWS API）
<a name="edit-customer-managed-policy-api-delete-policy-version"></a>

您可以从 AWS API 中删除客户管理型策略的某个版本。

**删除客户托管策略的某个版本 (AWS API)**

1. （可选）要列出托管策略，请调用以下操作：
   + [ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html)

1. 要删除客户托管策略，请调用以下操作：
   + [DeletePolicyVersion](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicyVersion.html)

## 编辑内联策略（AWS API）
<a name="edit-inline-policy-api"></a>

您可以从 AWS API 中编辑内联策略。

**要编辑内联策略（AWS API）**

1. （可选）要查看有关内联策略的信息，请运行以下操作：
   + 要列出与身份（用户、用户组或角色）关联的内联策略：
     + [ListUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html)
     + [ListRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html)
     + [ListGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupPolicies.html)
   + 要检索有关内联策略的详细信息：
     + [GetUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUserPolicy.html)
     + [GetRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRolePolicy.html)
     + [GetGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroupPolicy.html)

1. 要编辑内联策略，请运行以下操作：
   + [PutUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutUserPolicy.html)
   + [PutRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html)
   + [PutGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutGroupPolicy.html)

1. （可选）要验证内联策略，请运行以下 IAM Access Analyzer 操作：
   + [ValidatePolicy](https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_ValidatePolicy.html)

# 删除 IAM 策略
<a name="access_policies_manage-delete"></a>

您可以使用 AWS 管理控制台、AWS Command Line Interface（AWS CLI）或 AWS API 删除 IAM 策略。

**注意**  
对 IAM policy 的删除是永久性的。策略删除后，无法恢复。

有关 IAM 策略结构和语法的更多信息，请参阅 [AWS Identity and Access Management 中的策略和权限](access_policies.md)和 [IAM JSON 策略元素参考](reference_policies_elements.md)。

有关托管策略和内联策略之间的差别的更多信息，请参阅[托管策略与内联策略](access_policies_managed-vs-inline.md)。

AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 AWS STS 配额](reference_iam-quotas.md)。

**Topics**
+ [删除 IAM 策略（控制台）](access_policies_manage-delete-console.md)
+ [删除 IAM 策略（AWS CLI）](access_policies_manage-delete-cli.md)
+ [删除 IAM 策略（AWS API）](access_policies_manage-delete-api.md)

# 删除 IAM 策略（控制台）
<a name="access_policies_manage-delete-console"></a>

您可以使用 AWS 管理控制台 在 IAM 中删除*客户管理型策略*和*内联策略*。AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 AWS STS 配额](reference_iam-quotas.md)。

**注意**  
对 IAM policy 的删除是永久性的。策略删除后，无法恢复。

有关 IAM 策略结构和语法的更多信息，请参阅 [AWS Identity and Access Management 中的策略和权限](access_policies.md)和 [IAM JSON 策略元素参考](reference_policies_elements.md)。

有关托管策略和内联策略之间的差别的更多信息，请参阅[托管策略与内联策略](access_policies_managed-vs-inline.md)。

## 先决条件
<a name="delete-policy-prerequisites-console"></a>

在删除策略之前，您应查看其最近的服务级别活动。这非常重要，因为您不想删除使用它的主体（个人或应用程序）的访问权限。有关查看上次访问的信息的更多信息，请参阅 [使用上次访问的信息优化 AWS 中的权限](access_policies_last-accessed.md)。

## 删除 IAM policy （控制台）
<a name="delete-customer-managed-policy-console"></a>

当客户管理型策略过时或不再符合您组织的安全要求和访问控制需求时，您可能需要将其删除。通过删除不必要的策略，可减少与过时或未使用的策略相关的潜在安全风险。您可删除客户管理型策略以便从您的 AWS 账户 中删除它。您无法删除 AWS 托管策略。

------
#### [ Console ]

**删除客户管理型策略**

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

1. 在导航窗格中，选择**策略**。

1. 选中您要删除的客户管理型策略旁边的复选框。您可以使用搜索框筛选策略列表。

1. 选择 **Actions**，然后选择 **Delete**。

1. 按照说明，确认您要删除该策略，然后选择**删除**。

------

## 删除内联策略（控制台）
<a name="delete-inline-policy-console"></a>

当直接附加到内联策略的 IAM 用户、组或角色不再需要策略授予的特定权限时，您可能需要删除该策略。删除不必要的内联策略有助于降低意外访问的风险，尤其是内联策略无法像管理型策略那样在多个身份之间重复使用或共享。您可删除内联策略以便从您的 AWS 账户 中删除它。您无法删除 AWS 托管策略。

------
#### [ Console ]

**删除 IAM 用户、组或角色的内联策略**

1. 在导航窗格中，选择 **Groups**（组）、**Users**（用户）或 **Roles**（角色）。

1. 请选择具有要删除的策略的用户组、用户或角色的名称。然后选择 **Permissions** 选项卡。

1. 选中要删除的策略旁边的复选框，然后选择**移除**。然后，在确认对话框中，确认删除策略。
   + 要删除**用户**或**角色**中的内联策略，请选择**移除**以确认删除。
   + 如果您要删除 **User groups**（用户组）中的单个内联策略，请键入策略的名称，然后选择 **Delete**（删除）。如果要删除 **User groups**（用户组）中的多个内联策略，请键入要删除的策略数，接着键入 **inline policies**，然后选择 **Delete**（删除）。例如，如果要删除三个内联策略，请键入 **3 inline policies**。

------

# 删除 IAM 策略（AWS CLI）
<a name="access_policies_manage-delete-cli"></a>

您可以使用 AWS Command Line Interface（AWS CLI）在 IAM 中删除*客户管理型策略*和*内联策略*。AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 AWS STS 配额](reference_iam-quotas.md)。

**注意**  
对 IAM policy 的删除是永久性的。策略删除后，无法恢复。

有关 IAM 策略结构和语法的更多信息，请参阅 [AWS Identity and Access Management 中的策略和权限](access_policies.md)和 [IAM JSON 策略元素参考](reference_policies_elements.md)。

有关托管策略和内联策略之间的差别的更多信息，请参阅[托管策略与内联策略](access_policies_managed-vs-inline.md)。

## 先决条件
<a name="delete-policy-prerequisites-cli"></a>

在删除策略之前，您应查看其最近的服务级别活动。这非常重要，因为您不想删除使用它的主体（个人或应用程序）的访问权限。有关查看上次访问的信息的更多信息，请参阅 [使用上次访问的信息优化 AWS 中的权限](access_policies_last-accessed.md)。

## 删除客户管理型策略（AWS CLI）
<a name="delete-customer-managed-policy-cli"></a>

您可以从 AWS Command Line Interface 中删除客户托管策略。

**删除客户托管策略 (AWS CLI)**

1. （可选）要查看有关策略的信息，请运行以下命令：
   + 列出托管策略：[list-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies.html)
   + 检索有关托管策略的详细信息：[get-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy.html)

1. （可选）要了解策略与身份之间的关系，请运行以下命令：
   + 要列出托管式策略附加到的身份（IAM 用户、IAM 组和 IAM 角色），请运行以下命令：
     + [list-entities-for-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/list-entities-for-policy.html)
   + 要列出附加到身份（用户、用户组或角色）的托管策略，请运行下列命令之一：
     + [list-attached-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-user-policies.html)
     + [list-attached-group-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-group-policies.html)
     + [list-attached-role-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-attached-role-policies.html)

1. 要删除客户托管策略，请运行以下命令：
   + [delete-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-policy.html)

## 删除内联策略（AWS CLI）
<a name="delete-inline-policy-cli"></a>

您可以从 AWS CLI 中删除内联策略。

**删除内联策略 (AWS CLI)**

1. （可选）要列出附加到身份（用户、用户组和角色）的所有内联策略，请使用以下命令之一：
   + [aws iam list-user-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-user-policies.html)
   + [aws iam list-group-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-group-policies.html)
   + [aws iam list-role-policies](https://docs.aws.amazon.com/cli/latest/reference/iam/list-role-policies.html)

1. （可选）要检索嵌入到身份（用户、用户组或角色）中的内联策略文档，请使用以下命令之一：
   + [aws iam get-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-user-policy.html)
   + [aws iam get-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-group-policy.html)
   + [aws iam get-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role-policy.html)

1. 要从身份（用户、用户组或不是*[服务相关角色](id_roles.md#iam-term-service-linked-role)*的角色）中删除内联策略，请使用以下命令之一：
   + [aws iam delete-user-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-user-policy.html)
   + [aws iam delete-group-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-group-policy.html)
   + [aws iam delete-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html)

# 删除 IAM 策略（AWS API）
<a name="access_policies_manage-delete-api"></a>

您可以使用 AWS API 在 IAM 中删除*客户管理型策略*和*内联策略*。AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 AWS STS 配额](reference_iam-quotas.md)。

**注意**  
对 IAM policy 的删除是永久性的。策略删除后，无法恢复。

有关 IAM 策略结构和语法的更多信息，请参阅 [AWS Identity and Access Management 中的策略和权限](access_policies.md)和 [IAM JSON 策略元素参考](reference_policies_elements.md)。

有关托管策略和内联策略之间的差别的更多信息，请参阅[托管策略与内联策略](access_policies_managed-vs-inline.md)。

## 先决条件
<a name="delete-policy-prerequisites-api"></a>

在删除策略之前，您应查看其最近的服务级别活动。这非常重要，因为您不想删除使用它的主体（个人或应用程序）的访问权限。有关查看上次访问的信息的更多信息，请参阅 [使用上次访问的信息优化 AWS 中的权限](access_policies_last-accessed.md)。

## 删除客户管理型策略（AWS API）
<a name="delete-customer-managed-policy-api"></a>

您可以使用 AWS API 删除客户托管策略。

**删除客户托管策略 (AWS API)**

1. （可选）要查看有关策略的信息，请调用以下操作：
   + 列出托管策略：[ListPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPolicies.html)
   + 检索有关托管策略的详细信息：[GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html)

1. （可选）要了解策略与身份之间的关系，请调用以下操作：
   + 要列出托管式策略附加到的身份（IAM 用户、IAM 组和 IAM 角色），请调用以下操作：
     + [ListEntitiesForPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListEntitiesForPolicy.html)
   + 要列出附加到身份（用户、用户组或角色）的托管策略，请调用以下一项操作：
     + [ListAttachedUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedUserPolicies.html)
     + [ListAttachedGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedGroupPolicies.html)
     + [ListAttachedRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedRolePolicies.html)

1. 要删除客户托管策略，请调用以下操作：
   + [DeletePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicy.html)

## 删除 IAM 策略（AWS API）
<a name="delete-inline-policy-api"></a>

您可以使用 AWS API 删除内联策略。

**删除内联策略 (AWS API)**

1. （可选）要列出附加到身份（用户、用户组和角色）的所有内联策略，请调用以下操作之一：
   + [ListUserPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html)
   + [ListGroupPolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupPolicies.html)
   + [ListRolePolicies](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRolePolicies.html)

1. （可选）要检索嵌入到身份（用户、用户组或角色）中的内联策略文档，请调用以下操作之一：
   + [GetUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUserPolicy.html)
   + [GetGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroupPolicy.html)
   + [GetRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRolePolicy.html)

1. 要将内联策略从身份（用户、用户组或不是*[服务相关角色](id_roles.md#iam-term-service-linked-role)*的角色）中删除，请调用以下操作之一：
   + [DeleteUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPolicy.html)
   + [DeleteGroupPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroupPolicy.html)
   + [DeleteRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteRolePolicy.html)

# 使用上次访问的信息优化 AWS 中的权限
<a name="access_policies_last-accessed"></a>

作为管理员，您可能会向 IAM 资源（角色、用户、用户组或策略）授予超出需要的权限。IAM 提供上次访问的信息以帮助您识别未使用的权限，以便您可以将其移除。您可以使用上次访问信息来优化策略，并仅允许访问您的 IAM 身份和策略使用的服务和操作。这有助于更好地遵循[最小权限的最佳实践](best-practices.md#grant-least-privilege)。您可以查看 IAM 或 AWS Organizations 中存在的身份或策略的上次访问信息。

您可以使用未使用的访问分析器持续监控上次访问的信息。有关更多信息，请参阅[外部和未使用的访问的调查发现](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-findings.html)。

**Topics**
+ [IAM 的上次访问的信息类型](#access_policies_last-accessed-data-types)
+ [AWS Organizations 的上次访问信息](#access_policies_last-accessed-orgs)
+ [关于上次访问的信息的知识](#access_policies_last-accessed-know)
+ [所需权限](#access_policies_last-accessed-permissions)
+ [排查 IAM 和 AWS Organizations 实体的活动问题](#access_policies_last-accessed-troubleshooting)
+ [AWS 跟踪上次访问信息的位置](#last-accessed_tracking-period)
+ [查看 IAM 的上次访问信息](access_policies_last-accessed-view-data.md)
+ [查看 AWS Organizations 的上次访问信息](access_policies_last-accessed-view-data-orgs.md)
+ [使用上次访问信息的示例应用场景](access_policies_last-accessed-example-scenarios.md)
+ [上次访问 IAM 操作信息的服务和操作](access_policies_last-accessed-action-last-accessed.md)

## IAM 的上次访问的信息类型
<a name="access_policies_last-accessed-data-types"></a>

对于 IAM 身份，您可以查看两种类型的上次访问信息：允许的 AWS 服务信息和允许的操作信息。此信息包括尝试访问 AWS 的日期和时间。对于操作，上次访问信息会报告服务管理操作。管理操作包括创建、删除和修改操作。要了解有关如何查看 IAM 的上次访问信息的更多信息，请参阅 [查看 IAM 的上次访问信息](access_policies_last-accessed-view-data.md)。

有关在做有关向 IAM 身份授予权限的决策时使用上次访问信息的示例场景，请参阅 [使用上次访问信息的示例应用场景](access_policies_last-accessed-example-scenarios.md)。

要了解有关如何提供管理操作信息的更多信息，请参阅[关于上次访问的信息的知识](#access_policies_last-accessed-know)。

## AWS Organizations 的上次访问信息
<a name="access_policies_last-accessed-orgs"></a>

如果使用管理账户凭证登录，则可以查看企业中的 AWS Organizations 实体或策略的上次访问的服务信息。AWS Organizations 实体包括企业根、企业部门 (OU) 或账户。AWS Organizations 的上次访问信息包括有关服务控制策略 (SCP) 允许的服务的信息。该信息指示组织或账户中的哪些主体（根用户、IAM 用户或角色）上次尝试访问该服务以及尝试访问的时间。要了解有关报告以及如何查看 AWS Organizations 的上次访问信息的更多信息，请参阅[查看 AWS Organizations 的上次访问信息](access_policies_last-accessed-view-data-orgs.md)。

有关使用上次访问信息做出有关向 AWS Organizations 实体授予的权限的决策的示例场景，请参阅[使用上次访问信息的示例应用场景](access_policies_last-accessed-example-scenarios.md)。

## 关于上次访问的信息的知识
<a name="access_policies_last-accessed-know"></a>

在使用报告中的上次访问信息更改 IAM 或 AWS Organizations 实体的权限之前，请查看有关该信息的以下细节。
+ **跟踪周期** - 最近的活动会在四小时内显示在 IAM 控制台中。服务信息的跟踪周期至少为 400 天，具体取决于服务何时开始跟踪操作信息。Amazon S3 操作信息的跟踪周期从 2020 年 4 月 12 日开始。Amazon EC2、IAM 和 Lambda 操作的跟踪周期从 2021 年 4 月 7 日开始。所有其他服务的跟踪周期从 2023 年 5 月 23 日开始计算。有关提供上次访问操作信息的服务列表，请参阅 [上次访问 IAM 操作信息的服务和操作](access_policies_last-accessed-action-last-accessed.md)。要详细了解提供上次访问操作信息的区域，请参阅 [AWS 跟踪上次访问信息的位置](#last-accessed_tracking-period)。
+ **Attempts reported**（报告的尝试）- 服务上次访问的数据包含访问 AWS API 的所有尝试，而不仅仅是成功的尝试。这包括使用 AWS 管理控制台、AWS API（通过任何开发工具包）或任何命令行工具进行的所有尝试。在上次访问的服务相关数据中看到意外的条目并不意味着您的账户信息泄露，因为请求可能已被拒。请参阅您的 CloudTrail 日志并将其作为有关所有 API 调用以及它们是成功还是被拒绝的访问的信息的权威来源。
+ **PassRole** - `iam:PassRole` 操作不会被跟踪，也不包括在 IAM 上次访问的服务信息中。
+ **上次访问操作信息** – 对于 IAM 身份访问的服务管理操作，可提供上次访问操作信息。查看将报告上次访问操作信息的 [服务与操作列表](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_last-accessed-action-last-accessed.html#access_policies_last-accessed-action-last-accessed-supported-actions)。
**注意**  
对于任何数据平面事件，都没有上次访问操作信息。
+ **管理事件** – IAM 将为由 CloudTrail 记录的服务管理事件提供操作信息。有时，CloudTrail 管理事件也称为控制层面操作或控制层面事件。通过管理事件，可以了解对在您 AWS 账户 内的资源执行的管理操作。要详细了解 Cloudtrail 中的管理事件，请参阅《AWS CloudTrail 用户指南》中的 [记录管理事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html)**。
+ **Report owner**（报告拥有者）- 只有生成报告的主体才能查看报告详细信息。这意味着，当您查看 AWS 管理控制台中的信息时，您可能需要等待它生成和加载。如果您使用 AWS CLI 或 AWS API 获取报告详细信息，则您的凭证必须与生成报告的主体的凭证相匹配。如果对角色或 AWS STS 联合用户主体使用临时凭证，则必须在同一会话期间生成和检索报告。有关代入角色会话主体的更多信息，请参阅[AWS JSON 策略元素：Principal](reference_policies_elements_principal.md)。
+ **IAM 资源** – IAM 的上次访问信息包括您账户中的 IAM 资源（角色、用户、IAM 组和策略）。AWS Organizations 的上次访问信息包括指定 AWS Organizations 实体中的主体（IAM 用户、IAM 角色或 AWS 账户根用户）。上次访问信息不包括未通过身份验证的尝试信息。
+ **IAM policy 类型** - IAM 的上次访问信息包括 IAM 身份的策略允许的服务。这些是附加到角色或直接或通过组附加到用户的策略。其他策略类型允许的访问权限未包含在您的报告中。排除的策略类型包括基于资源的策略、访问控制列表、AWS Organizations SCP、IAM 权限边界以及会话策略。由服务相关角色提供的权限由它们所关联的服务定义，不能在 IAM 中进行修改。要了解有关服务相关角色的更多信息，请参阅[创建服务相关角色](id_roles_create-service-linked-role.md)。要了解如何评估不同的策略类型以允许或拒绝访问，请参阅[策略评估逻辑](reference_policies_evaluation-logic.md)。
+ **AWS Organizations 策略类型**：AWS Organizations 的信息仅包含 AWS Organizations 实体继承的服务控制策略 (SCP) 允许的服务。SCP 是附加到根、OU 或账户的策略。其他策略类型允许的访问权限未包含在您的报告中。排除的策略类型包括基于身份的策略、基于资源的策略、访问控制列表、IAM 权限边界以及会话策略。要了解如何评估不同的策略类型以允许或拒绝访问，请参阅[策略评估逻辑](reference_policies_evaluation-logic.md)。
+ **指定策略 ID**：在 AWS Organizations 中使用 AWS CLI 或 AWS API 为上次访问的信息生成报告时，您可以选择指定策略 ID。生成的报告包含仅该策略允许的服务的信息。该信息包括指定的 AWS Organizations 实体或其子实体中的最新账户活动。有关更多信息，请参阅 [aws iam generate-organizations-access-report](https://docs.aws.amazon.com/cli/latest/reference/iam/generate-organizations-access-report.html) 或 [GenerateOrganizationsAccessReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateOrganizationsAccessReport.html)。
+ **AWS Organizations 管理账户**：您必须登录到组织的管理账户才能查看服务的上次访问信息。您可以选择使用 IAM 控制台、AWS CLI 或 AWS API 查看管理账户的信息。生成的报告列出所有 AWS 服务，因为管理账户不受 SCP 限制。如果在 CLI 或 API 中指定策略 ID，则会忽略该策略。对于每个服务，报告仅包含管理账户的信息。不过，其他 AWS Organizations 实体的报告不会返回管理账户中的活动的信息。
+ **AWS Organizations 设置**：管理员必须[先在组织根中启用 SCP](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies.html#enable_policies_on_root)，然后才能生成 AWS Organizations 的数据。

## 所需权限
<a name="access_policies_last-accessed-permissions"></a>

要在 AWS 管理控制台中查看上次访问的信息，您必须具有授予所需权限的策略。

### IAM 信息的权限
<a name="access_policies_last-accessed-permissions-iam"></a>

要使用 IAM 控制台查看 IAM 用户、角色或策略的上次访问信息，您必须具有包含以下操作的策略：
+ `iam:GenerateServiceLastAccessedDetails`
+ `iam:Get*`
+ `iam:List*`

这些权限允许用户查看以下内容：
+ 哪些用户、组或角色将附加到[托管策略](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#managed_policy)
+ 用户或角色可访问哪些服务
+ 他们上次访问服务的时间
+ 他们上次尝试使用特定 Amazon EC2、IAM、Lambda 或 Amazon S3 操作的时间

要使用 AWS CLI 或 AWS API 查看 IAM 的上次访问信息，您必须具有与要使用的操作匹配的权限：
+ `iam:GenerateServiceLastAccessedDetails`
+ `iam:GetServiceLastAccessedDetails`
+ `iam:GetServiceLastAccessedDetailsWithEntities`
+ `iam:ListPoliciesGrantingServiceAccess`

此示例说明如何创建基于身份的策略以允许查看 IAM 上次访问的信息。此外，它还允许对所有 IAM 进行只读访问。此策略定义了程序访问和控制台访问的权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:GenerateServiceLastAccessedDetails",
            "iam:Get*",
            "iam:List*"
        ],
        "Resource": "*"
    }
}
```

------

### AWS Organizations 信息的权限
<a name="access_policies_last-accessed-permissions-orgs"></a>

要使用 IAM 控制台查看 AWS Organizations 中的根、OU 或账户实体的报告，您必须具有包含以下操作的策略：
+ `iam:GenerateOrganizationsAccessReport`
+ `iam:GetOrganizationsAccessReport`
+ `organizations:DescribeAccount`
+ `organizations:DescribeOrganization`
+ `organizations:DescribeOrganizationalUnit`
+ `organizations:DescribePolicy`
+ `organizations:ListChildren`
+ `organizations:ListParents`
+ `organizations:ListPoliciesForTarget`
+ `organizations:ListRoots`
+ `organizations:ListTargetsForPolicy`

要使用 AWS CLI 或 AWS API 查看 AWS Organizations 的上次访问的服务信息，您必须具有包含以下操作的策略：
+ `iam:GenerateOrganizationsAccessReport`
+ `iam:GetOrganizationsAccessReport`
+ `organizations:DescribePolicy`
+ `organizations:ListChildren`
+ `organizations:ListParents`
+ `organizations:ListPoliciesForTarget`
+ `organizations:ListRoots`
+ `organizations:ListTargetsForPolicy`

此示例说明如何创建基于身份的策略以允许查看 AWS Organizations 的服务上次访问信息。此外，它还允许对所有 AWS Organizations 进行只读访问。此策略定义了程序访问和控制台访问的权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iam:GenerateOrganizationsAccessReport",
            "iam:GetOrganizationsAccessReport",
            "organizations:Describe*",
            "organizations:List*"
        ],
        "Resource": "*"
    }
}
```

------

您也可以使用 [iam:OrganizationsPolicyId](reference_policies_iam-condition-keys.md#ck_OrganizationsPolicyId) 条件键以仅允许为特定 AWS Organizations 策略生成报告。有关策略示例，请参阅 [IAM：查看 AWS Organizations 策略的服务上次访问信息](reference_policies_examples_iam_service-accessed-data-orgs.md)。

## 排查 IAM 和 AWS Organizations 实体的活动问题
<a name="access_policies_last-accessed-troubleshooting"></a>

在某些情况下，AWS 管理控制台上次访问的信息表可能为空。或者，AWS CLI 或 AWS API 请求可能会返回空信息集或空字段。在这些情况下，请检查以下问题：
+ 对于上次访问的操作信息，您期望看到的操作可能不会在列表中返回。这可能是因为 IAM 身份不具有该操作的权限，或者 AWS 尚未跟踪该操作的上次访问信息。
+ 对于 IAM 用户，请确保该用户直接或通过组成员资格附加了至少一个内联或托管策略。
+ 对于 IAM 组，请确认该组附加了至少一个内联或托管策略。
+ 对于 IAM 组，该报告仅返回使用组的策略访问服务的成员的上次访问的服务信息。要了解成员是否使用了其他策略，请查看该用户的上次访问的信息。
+ 对于 IAM 角色，请确认该角色附加了至少一个内联或托管策略。
+ 对于 IAM 实体（用户或角色），请检查可能影响该实体的权限的其他策略类型。其中包含基于资源的策略、访问控制列表、AWS Organizations 策略、IAM 权限边界或会话策略。有关更多信息，请参阅 [策略类型](access_policies.md#access_policy-types) 或 [对单个账户内的请求进行策略评估](reference_policies_evaluation-logic_policy-eval-basics.md)。
+ 对于 IAM policy，请确保指定的托管策略附加到至少一个用户、具有成员的组或角色。
+ 对于 AWS Organizations 实体（根、OU 或账户），请确保您使用 AWS Organizations 管理账户凭证登录。
+ 确认[在组织根中启用了 SCP](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies.html#enable_policies_on_root)。
+ 上次访问的操作信息仅适用于 [上次访问 IAM 操作信息的服务和操作](access_policies_last-accessed-action-last-accessed.md) 中列出的操作。

在进行更改时，请等待至少四小时，以便在 IAM 控制台报告中显示活动。如果您使用 AWS CLI 或 AWS API，则必须生成新的报告以查看更新后的信息。

## AWS 跟踪上次访问信息的位置
<a name="last-accessed_tracking-period"></a>

AWS 收集标准 AWS 区域的上次访问信息。在 AWS 添加额外的区域时，这些区域将添加到下表中，包括 AWS 开始在每个区域中跟踪信息的日期：
+ **服务信息** - 服务的跟踪周期至少为 400 天，如果您的区域在过去 400 天内才开始跟踪此功能，则此周期会更短。
+ **操作信息** - Amazon S3 管理操作的跟踪周期从 2020 年 4 月 12 日开始。Amazon EC2、IAM 和 Lambda 管理操作的跟踪周期从 2021 年 4 月 7 日开始。所有其他服务的管理操作跟踪周期从 2023 年 5 月 23 日开始计算。如果某个区域的开始跟踪日期为 2023 年 5 月 23 日以后，则该区域的上次操作访问信息将从该较晚的日期开始。


| 区域名称 | 区域 | 跟踪开始日期 | 
| --- | --- | --- | 
| 美国东部（俄亥俄州） | us-east-2 | 2017 年 10 月 27 日 | 
| 美国东部（弗吉尼亚州北部） | us-east-1 | 2015 年 10 月 1 日 | 
| 美国西部（北加利福尼亚） | us-west-1 | 2015 年 10 月 1 日 | 
| 美国西部（俄勒冈州） | us-west-2 | 2015 年 10 月 1 日 | 
| 非洲（开普敦） | af-south-1 | 2020 年 4 月 22 日 | 
| 亚太地区（香港） | ap-east-1 | 2019 年 4 月 24 日 | 
| 亚太地区（海得拉巴） | ap-south-2 | 2022 年 11 月 22 日 | 
| 亚太地区（雅加达） | ap-southeast-3 | 2021 年 12 月 13 日 | 
| 亚太地区（墨尔本） | ap-southeast-4 | 2023 年 1 月 23 日 | 
| 亚太地区（孟买） | ap-south-1 | 2016 年 6 月 27 日 | 
| 亚太地区（大阪） | ap-northeast-3 | 2018 年 2 月 11 日 | 
| 亚太地区（首尔） | ap-northeast-2 | 2016 年 1 月 6 日 | 
| 亚太地区（新加坡） | ap-southeast-1 | 2015 年 10 月 1 日 | 
| 亚太地区（悉尼） | ap-southeast-2 | 2015 年 10 月 1 日 | 
| 亚太地区（东京） | ap-northeast-1 | 2015 年 10 月 1 日 | 
| 加拿大（中部） | ca-central-1 | 2017 年 10 月 28 日 | 
| 欧洲地区（法兰克福） | eu-central-1 | 2015 年 10 月 1 日 | 
| 欧洲地区（爱尔兰） | eu-west-1 | 2015 年 10 月 1 日 | 
| 欧洲（伦敦） | eu-west-2 | 2017 年 10 月 28 日 | 
| 欧洲地区（米兰） | eu-south-1 | 2020 年 4 月 28 日 | 
| 欧洲地区（巴黎） | eu-west-3 | 2017 年 12 月 18 日 | 
| 欧洲（西班牙） | eu-south-2 | 2022 年 11 月 15 日 | 
| 欧洲地区（斯德哥尔摩） | eu-north-1 | 2018 年 12 月 12 日 | 
| 欧洲（苏黎世） | eu-central-2 | 2022 年 11 月 8 日 | 
| 以色列（特拉维夫） | il-central-1 | 2023 年 8 月 1 日 | 
| 中东（巴林） | me-south-1 | 2019 年 7 月 29 日 | 
| 中东（阿联酋） | me-central-1 | 2022 年 8 月 30 日 | 
| 南美洲（圣保罗） | sa-east-1 | 2015 年 12 月 11 日 | 
| AWS GovCloud（美国东部） | us-gov-east-1 | 2023 年 7 月 1 日 | 
| AWS GovCloud（美国西部） | us-gov-west-1 | 2023 年 7 月 1 日 | 

如果某个区域未在上表中列出，则表明此区域尚不提供上次访问的信息。

AWS 区域是地理区域中的 AWS 资源集合。区域分组为分区。标准区域是属于 `aws` 分区的区域。有关不同分区的更多信息，请参阅 AWS 一般参考 中的 [Amazon 资源名称 (ARN) 格式](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arns-syntax)。有关区域的更多信息，请参阅 AWS 一般参考 中的[关于 AWS 区域](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#region-what-is)。

# 查看 IAM 的上次访问信息
<a name="access_policies_last-accessed-view-data"></a>

您可以使用 AWS 管理控制台、AWS CLI 或 AWS API 查看 IAM 的上次访问信息。查看将显示上次访问信息的 [服务与操作列表](access_policies_last-accessed-action-last-accessed.md)。有关上次访问信息的更多信息，请参阅[使用上次访问的信息优化 AWS 中的权限](access_policies_last-accessed.md)。

您可以在 IAM 中查看下列资源类型的信息。在每种情况下，该信息包括给定报告周期允许的服务：
+ **用户** - 查看有关用户上次尝试访问每个允许的服务的信息。
+ **User group**（用户组）- 查看有关用户组成员上次尝试访问每个允许的服务的信息。此报告还包括已尝试访问的成员的总数。
+ **Role**（角色）- 查看有关某个人上次使用角色尝试访问每个允许的服务的信息。
+ **Policy**（策略）- 查看有关用户或角色上次尝试访问每个允许的服务的信息。此报告还包括已尝试访问的实体的总数。

**注意**  
在 IAM 中查看资源的访问信息之前，请确保您了解信息的报告周期、报告的实体和已评估的策略类型。有关更多详细信息，请参阅[关于上次访问的信息的知识](access_policies_last-accessed.md#access_policies_last-accessed-know)。

## 查看 IAM（控制台）的信息
<a name="access_policies_last-accessed-viewing"></a>

您可以在 IAM 控制台的**上次访问**选项卡上查看 IAM 的上次访问信息。

**查看 IAM（控制台）的信息**

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

1. 在导航窗格中，选择 **Groups**（组）、**Users**（用户）、**Roles**（角色）或 **Policies**（策略）。

1. 请选择任意用户、用户组、角色或策略名称打开相应的**摘要**页面，然后选择**上次访问时间**选项卡。根据您选择的资源查看以下信息：
   + **User group**（用户组）- 查看用户组成员（用户）可以访问的服务列表。您还可以查看成员上次访问服务的时间、成员使用的用户组策略以及发出请求的用户组成员。请选择策略的名称以了解它是托管策略还是内联用户组策略。请选择用户组成员的名称以查看该用户组的所有成员以及他们上次访问服务的时间。
   + **User**（用户）- 查看用户可以访问的服务列表。您还可以查看这些用户和角色上次访问服务的时间，以及当前与该用户关联的策略。请选择策略的名称以了解它是托管策略、内联用户策略还是用户组的内联策略。
   + **Role**（角色）- 查看角色可以访问的服务的列表、角色上次访问服务的时间以及所使用的策略。选择策略的名称以了解它是托管策略还是内联角色策略。
   + **Policy**（策略）- 查看策略中允许的操作的服务列表。还可以查看上次使用策略访问服务的时间以及使用该策略的实体（用户或角色）。**上次访问**日期还包括通过其他策略授予对此策略的访问权限的时间。选择实体的名称以了解哪些实体已附加此策略以及实体上次访问服务的时间。

1. 在表中的**服务**列中，选择 [包含上次访问操作信息的一种服务](access_policies_last-accessed-action-last-accessed.md) 的名称，以查看 IAM 实体尝试访问的管理操作的列表。您可以查看 AWS 区域以及时间戳（显示某个人上次尝试执行操作的时间）。

1. 对于 [包含上次访问操作信息的服务](access_policies_last-accessed-action-last-accessed.md) 的服务和管理操作，将会显示**上次访问时间**列。查看此列中返回的以下可能结果。这些结果会有所不同，具体取决于是否允许某个服务或操作、是否访问了此服务或操作，以及 AWS 是否跟踪此服务或操作以获取上次访问的信息。  
**<number of> 天前**  
自跟踪周期内使用服务或操作以来的天数。服务的跟踪周期为过去 400 天。Amazon S3 操作的跟踪周期从 2020 年 4 月 12 日开始。Amazon EC2、IAM Lambda 和操作的跟踪周期从 2021 年 4 月 7 日开始。所有其他服务的跟踪周期从 2023 年 5 月 23 日开始计算。要详细了解每个 AWS 区域的跟踪开始日期，请参阅 [AWS 跟踪上次访问信息的位置](access_policies_last-accessed.md#last-accessed_tracking-period)。  
**在跟踪周期间未访问**  
所跟踪的服务或操作在跟踪周期内未被实体使用。

   您可能对未出现在列表中的操作拥有权限。如果 AWS 当前未包含操作的跟踪信息，则可能会发生这种情况。您不应仅出于缺少跟踪信息来做出权限决定。相反，我们建议您使用此信息来告知和支持授予最小权限的总体策略。检查您的策略以确认访问级别是否适当。

## 查看 IAM 的信息 (AWS CLI)
<a name="access_policies_last-accessed-viewing-cli"></a>

您可以使用 AWS CLI 检索有关上次使用 IAM 资源尝试访问 AWS 服务和 Amazon S3、Amazon EC2、IAM 以及 Lambda 操作的信息。IAM 资源可能是用户、用户组、角色或策略。

**查看 IAM 的信息 (AWS CLII)**

1. 生成报告。请求必须包括要报告的 IAM 资源（用户、用户组、角色或策略）的 ARN。您可以指定要在报告中生成的粒度级别，以查看服务或服务和操作的访问详细信息。该请求返回一个 `job-id`，您之后可在 `get-service-last-accessed-details` 和 `get-service-last-accessed-details-with-entities` 操作中使用它来监控 `job-status`，直到作业完成。
   + [aws iam generate-service-last-accessed-details](https://docs.aws.amazon.com/cli/latest/reference/iam/generate-service-last-accessed-details.html)

1. 检索有关使用上一步中的 `job-id` 参数的报告的详细信息。
   + [aws iam get-service-last-accessed-details](https://docs.aws.amazon.com/cli/latest/reference/iam/get-service-last-accessed-details.html)

   此操作根据您在 `generate-service-last-accessed-details` 操作中请求的资源类型和粒度级别返回以下信息：
   + **User**（用户）- 返回指定用户可访问的服务的列表。对于每个服务，此操作返回用户上次尝试的日期和时间以及用户的 ARN。
   + **用户组** — 返回指定用户组的成员可使用附加到用户组的策略访问的服务列表。对于每个服务，此操作返回任何用户组成员（用户）上次尝试的日期和时间。它还返回该用户的 ARN 以及已尝试访问服务的用户组成员的总数。使用 [GetServiceLastAccessedDetailsWithEntities](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetailsWithEntities.html) 操作可检索所有成员的列表。
   + **Role**（角色）- 返回指定角色可访问的服务的列表。对于每个服务，此操作返回角色上次尝试的日期和时间以及角色的 ARN。
   + **Policy**（策略）- 返回指定策略允许访问的服务的列表。对于每个服务，此操作返回实体（用户或角色）上次尝试使用策略访问服务的日期和时间。它还返回实体的 ARN 以及已尝试访问的实体的总数。

1. 了解有关在尝试访问特定服务时使用用户组或策略权限的实体的更多信息。此操作返回具有每个实体的 ARN、ID、名称、路径、类型（用户或角色）的实体列表以及实体上次尝试访问服务的时间。您还可以对用户和角色使用此操作，但它仅返回有关该实体的信息。
   + [aws iam get-service-last-accessed-details-with-entities](https://docs.aws.amazon.com/cli/latest/reference/iam/get-service-last-accessed-details-with-entities.html)

1. 了解有关在尝试访问特定服务时身份（用户、用户组或角色）使用的基于身份的策略的更多信息。在指定身份和服务时，此操作返回身份可用于访问指定服务的权限策略的列表。此操作提供策略的当前状态，而不依赖于生成的报告。它也不返回其他策略类型，例如基于资源的策略、访问控制列表、AWS Organizations 策略、IAM 权限边界或会话策略。有关更多信息，请参阅 [策略类型](access_policies.md#access_policy-types) 或 [对单个账户内的请求进行策略评估](reference_policies_evaluation-logic_policy-eval-basics.md)。
   + [aws iam list-policies-granting-service-access](https://docs.aws.amazon.com/cli/latest/reference/iam/list-policies-granting-service-access.html)

## 查看 IAM 的信息 (AWS API)
<a name="access_policies_last-accessed-viewing-api"></a>

您可以使用 AWS API 检索有关上次使用 IAM 资源尝试访问 AWS 服务和 Amazon S3、Amazon EC2、IAM 以及 Lambda 操作的信息。IAM 资源可能是用户、用户组、角色或策略。您可以指定要在报告中生成的粒度级别，以查看服务或服务和操作的详细信息。

**查看 IAM 的信息 (AWS API)**

1. 生成报告。请求必须包括要报告的 IAM 资源（用户、用户组、角色或策略）的 ARN。它返回一个 `JobId`，您之后可在 `GetServiceLastAccessedDetails` 和 `GetServiceLastAccessedDetailsWithEntities` 操作中使用它来监控 `JobStatus`，直到作业完成。
   + [GenerateServiceLastAccessedDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateServiceLastAccessedDetails.html)

1. 检索有关使用上一步中的 `JobId` 参数的报告的详细信息。
   + [GetServiceLastAccessedDetails](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetails.html)

   此操作根据您在 `GenerateServiceLastAccessedDetails` 操作中请求的资源类型和粒度级别返回以下信息：
   + **User**（用户）- 返回指定用户可访问的服务的列表。对于每个服务，此操作返回用户上次尝试的日期和时间以及用户的 ARN。
   + **用户组** — 返回指定用户组的成员可使用附加到用户组的策略访问的服务列表。对于每个服务，此操作返回任何用户组成员（用户）上次尝试的日期和时间。它还返回该用户的 ARN 以及已尝试访问服务的用户组成员的总数。使用 [GetServiceLastAccessedDetailsWithEntities](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetailsWithEntities.html) 操作可检索所有成员的列表。
   + **Role**（角色）- 返回指定角色可访问的服务的列表。对于每个服务，此操作返回角色上次尝试的日期和时间以及角色的 ARN。
   + **Policy**（策略）- 返回指定策略允许访问的服务的列表。对于每个服务，此操作返回实体（用户或角色）上次尝试使用策略访问服务的日期和时间。它还返回实体的 ARN 以及已尝试访问的实体的总数。

1. 了解有关在尝试访问特定服务时使用用户组或策略权限的实体的更多信息。此操作返回具有每个实体的 ARN、ID、名称、路径、类型（用户或角色）的实体列表以及实体上次尝试访问服务的时间。您还可以对用户和角色使用此操作，但它仅返回有关该实体的信息。
   + [GetServiceLastAccessedDetailsWithEntities](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLastAccessedDetailsWithEntities.html)

1. 了解有关在尝试访问特定服务时身份（用户、用户组或角色）使用的基于身份的策略的更多信息。在指定身份和服务时，此操作返回身份可用于访问指定服务的权限策略的列表。此操作提供策略的当前状态，而不依赖于生成的报告。它也不返回其他策略类型，例如基于资源的策略、访问控制列表、AWS Organizations 策略、IAM 权限边界或会话策略。有关更多信息，请参阅 [策略类型](access_policies.md#access_policy-types) 或 [对单个账户内的请求进行策略评估](reference_policies_evaluation-logic_policy-eval-basics.md)。
   + [ListPoliciesGrantingServiceAccess](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListPoliciesGrantingServiceAccess.html)

# 查看 AWS Organizations 的上次访问信息
<a name="access_policies_last-accessed-view-data-orgs"></a>

您可以使用 IAM 控制台、AWS CLI 或 AWS API 查看 AWS Organizations 的上次访问的服务信息。有关数据、所需的权限、故障排除和支持的区域的重要信息，请参阅[使用上次访问的信息优化 AWS 中的权限](access_policies_last-accessed.md)。

在使用 AWS Organizations 管理账户凭证登录到 IAM 控制台时，您可以查看组织中的任何实体的信息。AWS Organizations 实体包括组织根、组织部门 (OU) 和账户。您还可以使用 IAM 控制台查看企业中的任何服务控制策略 (SCP) 的信息。IAM 显示适用于实体的任何 SCP 允许的服务列表。对于每个服务，您可以查看所选的 AWS Organizations 实体或其子实体的最新账户活动信息。

在将 AWS CLI 或 AWS API 与管理账户凭证一起使用时，您可以为企业中的任何实体或策略生成报告。实体的编程报告包括适用于该实体的任何 SCP 允许的服务列表。对于每个服务，该报告包括指定的 AWS Organizations 实体或其子树中的账户的最新活动。

在为策略生成编程报告时，您必须指定一个 AWS Organizations 实体。该报告包括指定的 SCP 允许的服务列表。对于每个服务，它包括通过该策略授予权限的实体或其子实体中的最新账户活动。有关更多信息，请参阅 [aws iam generate-organizations-access-report](https://docs.aws.amazon.com/cli/latest/reference/iam/generate-organizations-access-report.html) 或 [GenerateOrganizationsAccessReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateOrganizationsAccessReport.html)。

在查看报告之前，请确保您了解管理账户要求和信息、报告周期、报告的实体和评估的策略类型。有关更多详细信息，请参阅[关于上次访问的信息的知识](access_policies_last-accessed.md#access_policies_last-accessed-know)。

## 了解 AWS Organizations 实体路径
<a name="access_policies_last-accessed-viewing-orgs-entity-path"></a>

使用 AWS CLI 或 AWS API 生成 AWS Organizations 访问报告时，必须指定实体路径。路径是 AWS Organizations 实体结构的文本表示形式。

您可以使用组织的已知结构构建实体路径。例如，假定您在 AWS Organizations 中有以下组织结构。

![\[组织路径结构\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/ou-path-diagram.png)


**Dev Managers** OU 的路径是使用组织 ID、根目录及该路径下的所有 OU（包括 Dev Managers OU）构建的。

```
o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-ghi0-awsccccc/ou-jkl0-awsddddd/
```

**Production** OU 中账户的路径是使用组织 ID、根目录、该 OU 和账号构建的。

```
o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-abc0-awsaaaaa/111111111111/
```

**注意**  
组织 ID 是全局唯一的，但 OU ID 和根目录 ID 仅在组织内是唯一的。这意味着没有两个组织具有相同的组织 ID。但是，另一个组织可能具有与您的组织相同的 OU 或根目录 ID。我们建议您在指定 OU 或根目录时始终包含组织 ID。

## 查看 AWS Organizations 的信息（控制台）
<a name="access_policies_last-accessed-viewing-orgs"></a>

您可以使用 IAM 控制台查看根、OU、账户或策略的上次访问的服务信息。

**查看根目录的信息（控制台）**

1. 使用 AWS Organizations 管理账户凭证登录到AWS 管理控制台，然后打开 IAM 控制台，地址：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中的 **Access reports (访问报告)** 部分下，选择 **Organization activity (组织活动)**。

1. 在 **Organization activity (组织活动)** 页面上，选择 **Root (根)**。

1. 在 **Details and activity (详细信息和活动)** 选项卡上，查看 **Service access report (服务访问报告)** 部分。该信息包括直接附加到根的策略允许的服务列表。该信息显示您上次从中访问服务的账户以及访问时间。有关访问服务的主体的更多详细信息，请以该账户中的管理员身份登录并[查看 IAM 服务上次访问的服务信息](access_policies_last-accessed-view-data.md)。

1. 请选择 **Attached SCPs**（附加的 SCP）选项卡以查看附加到根的服务控制策略 (SCP）列表。IAM 显示您可以查看每个策略附加到的目标实体数量。您可以使用该信息确定要检查的 SCP。

1. 请选择一个 SCP 名称以查看该策略允许的所有服务。对于每个服务，查看上次从中访问该服务的账户以及访问时间。

1. 选择**在 AWS Organizations 中编辑**，以查看其他详细信息并在 AWS Organizations 控制台中编辑 SCP。有关更多信息，请参阅 *AWS Organizations 用户指南*中的[更新 SCP](https://docs.aws.amazon.com/organizations/latest/userguide/create-policy.html#update_policy)。

**查看 OU 或账户的信息（控制台）**

1. 使用 AWS Organizations 管理账户凭证登录到AWS 管理控制台，然后打开 IAM 控制台，地址：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中的 **Access reports (访问报告)** 部分下，选择 **Organization activity (组织活动)**。

1. 在 **Organization activity (组织活动)** 页面上，展开您的组织的结构。接下来，请选择要查看的 OU 或任何账户的名称，但管理账户除外。

1. 在 **Details and activity (详细信息和活动)** 选项卡上，查看 **Service access report (服务访问报告)** 部分。该信息包括附加到 OU 或账户*及其* 所有父项的 SCP 允许的服务列表。该信息显示您上次从中访问服务的账户以及访问时间。有关访问服务的主体的更多详细信息，请以该账户中的管理员身份登录并[查看 IAM 服务上次访问的服务信息](access_policies_last-accessed-view-data.md)。

1. 请选择 **Attached SCPs**（附加的 SCP）选项卡以查看直接附加到 OU 或账户的服务控制策略 (SCP）列表。IAM 显示您可以查看每个策略附加到的目标实体数量。您可以使用该信息确定要检查的 SCP。

1. 请选择一个 SCP 名称以查看该策略允许的所有服务。对于每个服务，查看上次从中访问该服务的账户以及访问时间。

1. 选择**在 AWS Organizations 中编辑**，以查看其他详细信息并在 AWS Organizations 控制台中编辑 SCP。有关更多信息，请参阅 *AWS Organizations 用户指南*中的[更新 SCP](https://docs.aws.amazon.com/organizations/latest/userguide/create-policy.html#update_policy)。

**查看管理账户的信息（控制台）**

1. 使用 AWS Organizations 管理账户凭证登录到AWS 管理控制台，然后打开 IAM 控制台，地址：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中的 **Access reports (访问报告)** 部分下，选择 **Organization activity (组织活动)**。

1. 在 **Organization activity（企业活动）**页面上，展开您的企业的结构，然后选择管理账户的名称。

1. 在 **Details and activity (详细信息和活动)** 选项卡上，查看 **Service access report (服务访问报告)** 部分。该信息包括所有 AWS 服务的列表。管理账户不受 SCP 限制。该信息显示账户上次是否访问服务以及访问时间。有关访问服务的主体的更多详细信息，请以该账户中的管理员身份登录并[查看 IAM 服务上次访问的服务信息](access_policies_last-accessed-view-data.md)。

1. 请选择 **Attached SCPs**（附加的 SCP）选项卡以确认没有附加的 SCP，因为该账户是管理账户。

**查看策略的信息（控制台）**

1. 使用 AWS Organizations 管理账户凭证登录到AWS 管理控制台，然后打开 IAM 控制台，地址：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中的 **Access reports (访问报告)** 部分下，选择 **Service control policies (SCPs) (服务控制策略(SCP))**。

1. 在 **Service control policies (SCPs) (服务控制策略 (SCP))** 页面上，查看您组织中的策略列表。您可以查看每个策略附加到的目标实体数量。

1. 请选择一个 SCP 名称以查看该策略允许的所有服务。对于每个服务，查看上次从中访问该服务的账户以及访问时间。

1. 选择**在 AWS Organizations 中编辑**，以查看其他详细信息并在 AWS Organizations 控制台中编辑 SCP。有关更多信息，请参阅 *AWS Organizations 用户指南*中的[更新 SCP](https://docs.aws.amazon.com/organizations/latest/userguide/create-policy.html#update_policy)。

## 查看 AWS Organizations 的信息 (AWS CLI)
<a name="access_policies_last-accessed-viewing-orgs-cli"></a>

您可以使用 AWS CLI 检索 AWS Organizations 根、OU、账户或策略的上次访问的服务信息。

**查看 AWS Organizations 上次访问的服务信息 (AWS CLI)**

1. 使用具有所需的 IAM 和 AWS Organizations 权限的 AWS Organizations 管理账户凭证，并确认为根启用了 SCP。有关更多信息，请参阅 [关于上次访问的信息的知识](access_policies_last-accessed.md#access_policies_last-accessed-know)。

1. 生成报告。请求必须包含要生成报告的 AWS Organizations 实体（根、OU 或账户）的路径。您可以选择包含 `organization-policy-id` 参数以查看特定策略的报告。该命令返回 `job-id`，您可以随后在 `get-organizations-access-report` 命令中使用该内容以监控 `job-status`，直到作业完成。
   + [aws iam generate-organizations-access-report](https://docs.aws.amazon.com/cli/latest/reference/iam/generate-organizations-access-report.html)

1. 检索有关使用上一步中的 `job-id` 参数的报告的详细信息。
   + [aws iam get-organizations-access-report](https://docs.aws.amazon.com/cli/latest/reference/iam/get-organizations-access-report.html)

   该命令返回实体成员可以访问的服务列表。对于每个服务，该命令返回账户成员的上次尝试日期和时间以及账户的实体路径。它还返回可访问的服务总数以及未访问的服务数。如果指定了可选的 `organizations-policy-id` 参数，则可访问的服务是指定策略允许的那些服务。

## 查看 AWS Organizations 的信息 (AWS API)
<a name="access_policies_last-accessed-viewing-orgs-api"></a>

您可以使用 AWS API 检索 AWS Organizations 根、OU、账户或策略的上次访问的服务信息。

**查看 AWS Organizations 上次访问的服务信息 (AWS API)**

1. 使用具有所需的 IAM 和 AWS Organizations 权限的 AWS Organizations 管理账户凭证，并确认为根启用了 SCP。有关更多信息，请参阅 [关于上次访问的信息的知识](access_policies_last-accessed.md#access_policies_last-accessed-know)。

1. 生成报告。请求必须包含要生成报告的 AWS Organizations 实体（根、OU 或账户）的路径。您可以选择包含 `OrganizationsPolicyId` 参数以查看特定策略的报告。该操作返回 `JobId`，您可以随后在 `GetOrganizationsAccessReport` 操作中使用该内容以监控 `JobStatus`，直到作业完成。
   + [GenerateOrganizationsAccessReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateOrganizationsAccessReport.html)

1. 检索有关使用上一步中的 `JobId` 参数的报告的详细信息。
   + [GetOrganizationsAccessReport](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetOrganizationsAccessReport.html)

   该操作返回实体成员可以访问的服务列表。对于每个服务，该操作返回账户成员的上次尝试日期和时间以及账户的实体路径。它还返回可访问的服务总数以及未访问的服务数。如果指定了可选的 `OrganizationsPolicyId` 参数，则可访问的服务是指定策略允许的那些服务。

# 使用上次访问信息的示例应用场景
<a name="access_policies_last-accessed-example-scenarios"></a>

您可以使用上次访问的信息确定您为 IAM 实体或 AWS Organizations 实体授予的权限。有关更多信息，请参阅 [使用上次访问的信息优化 AWS 中的权限](access_policies_last-accessed.md)。

**注意**  
在 IAM 或 AWS Organizations 中查看实体或策略的访问信息之前，请确保您了解信息的报告周期、报告的实体和评估的策略类型。有关更多详细信息，请参阅[关于上次访问的信息的知识](access_policies_last-accessed.md#access_policies_last-accessed-know)。

作为管理员，您可以平衡适合您的公司的可访问性和最小权限。

## 使用信息减少 IAM 组的权限
<a name="last-accessed-sample-reduce-permissions-group"></a>

您可以使用上次访问的信息减少 IAM 组权限，以仅包含用户所需的服务。此方法是在服务级别[授予最小权限](best-practices.md#grant-least-privilege)的重要步骤。

例如，Paulo Santos 是负责为 Example Corp 定义 AWS 用户权限的管理员。这家公司刚刚开始使用 AWS，而软件开发团队尚未定义他们将使用何种 AWS 服务。Paulo 希望仅向团队授予访问他们所需的服务的权限，但由于尚未定义，因此他暂时向团队授予高级用户权限。然后，他使用上次访问的信息来减少组的权限。

Paulo 使用以下 JSON 文本创建名为 `ExampleDevelopment` 的托管策略。然后，他将该策略附加到名为 `Development` 的组，并将所有开发人员添加到该组。

**注意**  
Paulo 的高级用户可能需要 `iam:CreateServiceLinkedRole` 权限才能使用某些服务和功能。他知道添加此权限将允许用户创建任何服务相关角色。他为高级用户接受这种风险。

------
#### [ JSON ]

****  

```
{

    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "FullAccessToAllServicesExceptPeopleManagement",
            "Effect": "Allow",
            "NotAction": [
                "iam:*",
                "organizations:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "RequiredIamAndOrgsActions",
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceLinkedRole",
                "iam:ListRoles",
                "organizations:DescribeOrganization"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Paulo 决定等待 90 天，之后再使用 AWS 管理控制台[查看上次访问的信息](access_policies_last-accessed-view-data.md#access_policies_last-accessed-viewing)（适用于 `Development` 组）。他查看组成员访问过的服务的列表。他了解到，用户上周访问了 5 项服务：AWS CloudTrail、Amazon CloudWatch Logs、Amazon EC2、AWS KMS 和 Amazon S3.. 他们在首次评估 AWS 时访问过其他几项服务，但之后便未访问。

Paulo 决定减少策略权限以仅包含上述 5 项服务以及所需的 IAM 和 AWS Organizations 操作。他使用以下 JSON 文本编辑 `ExampleDevelopment` 策略。

**注意**  
Paulo 的高级用户可能需要 `iam:CreateServiceLinkedRole` 权限才能使用某些服务和功能。他知道添加此权限将允许用户创建任何服务相关角色。他为高级用户接受这种风险。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "FullAccessToListedServices",
            "Effect": "Allow",
            "Action": [
                "s3:*",
                "kms:*",
                "cloudtrail:*",
                "logs:*",
                "ec2:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "RequiredIamAndOrgsActions",
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceLinkedRole",
                "iam:ListRoles",
                "organizations:DescribeOrganization"
            ],
            "Resource": "*"
        }
    ]
}
```

------

为了进一步减少权限，Paulo 可在 AWS CloudTrail **Event history (事件历史记录)** 中查看账户的事件。在那里，他可以查看可用于减少策略权限的详细事件信息，以仅包括开发人员所需的操作和资源。有关更多信息，请参阅 *AWS CloudTrail 用户指南*中的[在 CloudTrail 控制台中查看 CloudTrail 事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html)。

## 使用信息减少 IAM 用户的权限
<a name="access_policies_last-accessed-reduce-permissions-users"></a>

您可以使用上次访问的信息来减少单个 IAM 用户的权限。

例如，Martha Rivera 是 IT 管理员，她负责确保公司的人员没有多余的 AWS 权限。在定期安检中，她检查所有 IAM 用户的权限。这些用户中，有一个是名叫 Nikhil Jayashankar 的应用程序开发人员，以前担任过安全工程师。由于工作要求发生变化，Nikhil 成为了 `app-dev` 组和 `security-team` 组的成员。适用于他的新工作的 `app-dev` 组授予了对多项服务（包括 Amazon EC2、Amazon EBS、Auto Scaling、Amazon S3、Route 53 和 Elastic Transcoder）的权限。他的旧工作的 `security-team` 组授予了对 IAM 和 CloudTrail 的权限。

Martha 以管理员身份登录 IAM 控制台，并依次选择**用户**、姓名 `nikhilj` 和**上次访问时间**选项卡。

Martha 查看 **Last Accessed**（上次访问时间）列，发现 Nikhil 最近未访问过 IAM、CloudTrail、Route 53、Amazon Elastic Transcoder 以及很多其他 AWS 服务。Nikhil 已访问 Amazon S3。Martha 从服务列表中选择 **S3**，并了解到 Nikhil 在过去两周内执行了部分 Amazon S3 `List` 操作。在其公司内部，Martha 确认 Nikhil 不再有访问 IAM 和 CloudTrail 的业务需要，因为他不再是内部安全团队的成员。

Martha 管理员现在准备好处理上次访问的服务和操作信息。但是，与上一个示例中的组不同，像 `nikhilj` 这样的 IAM 用户可能受多个策略的约束并且是多个组的成员。Martha 必须谨慎行事，以避免无意中破坏 `nikhilj` 或其他组成员的访问权限。除了了解 Nikhil 应拥有的访问权限之外，她还必须确定他*如何*接收这些权限。

Martha 选择 **Permissions (权限)** 选项卡，可在其中查看直接附加到 `nikhilj` 的策略以及从组附加的策略。她扩展每个策略并查看策略摘要，以了解哪个策略允许访问 Nikhil 未使用的服务：
+ IAM – `IAMFullAccess` AWS 托管策略直接附加到 `nikhilj` 并附加到 `security-team` 组。
+ CloudTrail - `AWSCloudTrailReadOnlyAccess` AWS 托管策略附加到 `security-team` 组。
+ Route 53 – `App-Dev-Route53` 客户托管策略附加到 `app-dev` 组。
+ Elastic Transcoder - `App-Dev-ElasticTranscoder` 客户托管策略附加到 `app-dev` 组。

Martha 决定删除直接附加到 `nikhilj` 的 `IAMFullAccess` AWS 托管策略。她还删除 Nikhil 的 `security-team` 组成员资格。这两项操作删除了对 IAM 和 CloudTrail 的不必要的访问权限。

Nikhil 对 Route 53 和 Elastic Transcoder 的访问权限由 `app-dev` 组授予。虽然 Nikhil 未使用这些服务，但组的其他成员可能使用了这些服务。Martha 查看 `app-dev` 组的上次访问信息，并了解到有几个成员最近访问了 Route 53 和 Amazon S3。但在过去一年中，没有任何组成员访问过 Elastic Transcoder。她从组中删除 `App-Dev-ElasticTranscoder` 客户托管策略。

然后，Martha 查看 `App-Dev-ElasticTranscoder` 客户托管策略的上次访问的信息。她了解到该策略未附加到任何其他 IAM 身份。她在公司内部进行调查，以确保将来不再需要该策略，然后将其删除。

## 在删除 IAM 资源之前使用信息
<a name="last-accessed-sample-delete-resources"></a>

在删除 IAM 资源之前，您可以使用上次访问的信息，以确保自上次使用该资源以来已经过了一定的时间。这适用于用户、组、角色和策略。要了解这些操作的更多信息，请参阅以下主题：
+ **IAM 用户** – [移除或停用 IAM 用户](id_users_remove.md)
+ **群组** – [删除 IAM 群组](id_groups_manage_delete.md)
+ **角色** – [删除角色或实例配置文件](id_roles_manage_delete.md)
+ **策略** - [删除 IAM 策略（这还会将策略与身份分离）](access_policies_manage-delete.md)

## 在编辑 IAM policy 之前使用信息
<a name="last-accessed-sample-edit-policies"></a>

您可以先查看 IAM 身份（用户、组或角色）或 IAM policy 的上次访问信息，然后再编辑影响该资源的策略。这很重要，因为您不想删除正在使用它的人员的访问权限。

例如，Arnav Desai 是 Example Corp 的开发人员和 AWS 管理员。当他的团队开始使用 AWS，他们为所有开发人员提供了高级用户访问权限，允许他们完全访问除 IAM 和 AWS Organizations 之外的所有服务。作为[授予最小权限](best-practices.md#grant-least-privilege)操作的第一步，Arnav 希望使用 AWS CLI 来查看其账户中的托管策略。

为此，Arnav 首先使用以下命令在其账户中列出附加到身份的客户托管权限策略：

```
aws iam list-policies --scope Local --only-attached --policy-usage-filter PermissionsPolicy
```

从响应中，他捕获了每个策略的 ARN。然后，Arnav 使用以下命令为每个策略生成上次访问的信息报告。

```
aws iam generate-service-last-accessed-details --arn arn:aws:iam::123456789012:policy/ExamplePolicy1
```

在该响应中，他从 `JobId` 字段中捕获了生成的报告的 ID。然后，Arnav 轮询以下命令，直到 `JobStatus` 字段返回 `COMPLETED` 或 `FAILED` 值。如果作业失败，他将捕获错误。

```
aws iam get-service-last-accessed-details --job-id 98a765b4-3cde-2101-2345-example678f9
```

当作业的状态为 `COMPLETED` 时，Arnav 将解析 JSON 格式的 `ServicesLastAccessed` 数组的内容。

```
 "ServicesLastAccessed": [
        {
            "TotalAuthenticatedEntities": 1,
            "LastAuthenticated": 2018-11-01T21:24:33.222Z,
            "ServiceNamespace": "dynamodb",
            "LastAuthenticatedEntity": "arn:aws:iam::123456789012:user/IAMExampleUser",
            "ServiceName": "Amazon DynamoDB"
        },

        {
            "TotalAuthenticatedEntities": 0,
            "ServiceNamespace": "ec2",
            "ServiceName": "Amazon EC2"
        },

        {
            "TotalAuthenticatedEntities": 3,
            "LastAuthenticated": 2018-08-25T15:29:51.156Z,
            "ServiceNamespace": "s3",
            "LastAuthenticatedEntity": "arn:aws:iam::123456789012:role/IAMExampleRole",
            "ServiceName": "Amazon S3"
        }
    ]
```

通过此信息，Arnav 了解到 `ExamplePolicy1` 策略允许访问三项服务，即 Amazon DynamoDB、Amazon S3 和 Amazon EC2。名为 `IAMExampleUser` 的 IAM 用户上次于 11 月 1 日尝试访问过 DynamoDB，并且有人已于 8 月 25 日使用 `IAMExampleRole` 角色尝试访问 Amazon S3。此外，还有另外两个实体在去年尝试访问过 Amazon S3。但是，去年没有人尝试访问 Amazon EC2。

这意味着，Arnav 可从策略中安全地删除 Amazon EC2 操作。Arnav 想查看策略的当前 JSON 文档。首先，他必须使用以下命令确定策略的版本号。

```
aws iam list-policy-versions --policy-arn arn:aws:iam::123456789012:policy/ExamplePolicy1
```

从响应中，Arnav 收集 `Versions` 数组中的当前默认版本号。然后，他使用该版本号 (`v2`) 通过以下命令请求 JSON 策略文档。

```
aws iam get-policy-version --policy-arn arn:aws:iam::123456789012:policy/ExamplePolicy1 --version-id v2
```

Arnav 存储 `PolicyVersion` 数组的 `Document` 字段中返回的 JSON 策略文档。在该策略文档中，Arnav 在 `ec2` 命名空间中搜索操作。如果在该策略中没有其他命名空间中的操作，则他将该策略与受影响的身份（用户、组和角色）分离。然后，他删除该策略。在这种情况下，策略确实包含 Amazon DynamoDB 和 Amazon S3 服务。因此，Arnav 从文档中删除 Amazon EC2 操作并保存更改。然后，他使用以下命令通过文档的新版本更新策略并将该版本设置为默认策略版本。

```
aws iam create-policy-version --policy-arn arn:aws:iam::123456789012:policy/ExamplePolicy1 --policy-document file://UpdatedPolicy.json --set-as-default
```

`ExamplePolicy1` 策略现已更新以删除对不必要的 Amazon EC2 服务的访问权限。

## 其他 IAM 应用场景
<a name="last-accessed-scenarios-other"></a>

有关 IAM 资源（用户、组、角色或策略）上次尝试访问服务的时间的信息可在您完成以下任何任务时为您提供帮助：
+ **Policies**（策略）- [编辑现有的客户托管策略或内联策略以删除权限](access_policies_manage-edit.md)
+ **Policies**（策略）- [将内联策略转换为托管策略，然后将其删除](access_policies-convert-inline-to-managed.md)
+ **Policies**（策略）- [向现有策略添加显式拒绝](reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay.md)
+ **Policies**（策略）- [将托管策略与身份（用户、组或角色）分离](access_policies_manage-attach-detach.md#detach-managed-policy-console)
+ **Entities**（实体）- [设置权限边界以控制实体（用户或角色）可以拥有的最大权限](access_policies_manage-attach-detach.md)
+ **Groups**（组）- [从组中删除用户](id_groups_manage_add-remove-users.md)

## 使用信息来优化组织部门的权限
<a name="access_policies_last-accessed-reduce-permissions-orgs"></a>

您可以在 AWS Organizations 中使用上次访问的信息优化组织部门 (OU) 的权限。

例如，John Stiles 是一个 AWS Organizations 管理员。他负责确保具有公司 AWS 账户 的人员没有多余的权限。作为定期安全审核的一部分，他检查组织的权限。他的 `Development` OU 包含经常用于测试新 AWS 服务的账户。John 决定定期查看超过 180 天未访问的服务的报告。然后，他删除 OU 成员访问这些服务的权限。

John 使用管理账户凭证登录到 IAM 控制台。在 IAM 控制台中，他找到 AWS Organizations OU 的 `Development` 数据。他查看 **Service access report (服务访问报告)** 表，并发现两个超过 180 天（首选的时段）未访问的 AWS 服务。他记得为开发团队添加了权限以访问 Amazon Lex 和 AWS Database Migration Service。John 联系开发团队，并确认他们不再有测试这些服务的业务需求。

John 现在已准备好处理上次访问的信息。他选择 **Edit in AWS Organizations**（在 Amazon Organizations 中编辑），系统提醒他 SCP 将附加到多个实体。他选择 **Continue (继续)**。在 AWS Organizations 中，他检查目标以了解 SCP 附加到哪些 AWS Organizations 实体。所有实体均位于 `Development` OU 中。

John 决定在 `NewServiceTest` SCP 中拒绝访问 Amazon Lex 和 AWS Database Migration Service 操作。该操作将删除这些对这些服务的不必要访问。

# 上次访问 IAM 操作信息的服务和操作
<a name="access_policies_last-accessed-action-last-accessed"></a>

下表列出了将显示 [上次访问 IAM 操作信息](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_last-accessed.html) 的 AWS 服务。有关每项服务中的操作列表，请参阅《服务授权参考》中的 [AWS 服务的操作、资源和条件键](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html)。

AWS 以 JSON 格式提供操作的最后访问信息，以简化策略管理工作流程的自动化。借助服务参考信息，您可以从机器可读文件中跨 AWS 服务 获取操作的最后访问信息。有关更多信息，请参阅《服务授权参考》中的[用于编程访问的简化 AWS 服务信息](https://docs.aws.amazon.com/service-authorization/latest/reference/service-reference.html)。


|  **服务**  |  **服务前缀**  | 
| --- | --- | 
|  [AWS Identity and Access Management and Access Analyzer](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiamaccessanalyzer.html)  | access-analyzer | 
|  [AWS 账户管理](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsaccountmanagement.html)  | 账户 | 
|  [AWS Certificate Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscertificatemanager.html)  | acm | 
|  [Amazon Managed Workflows for Apache Airflow](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmanagedworkflowsforapacheairflow.html)  | airflow | 
|  [AWS Amplify](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsamplify.html)  | amplify | 
|  [AWS Amplify UI Builder](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsamplifyuibuilder.html)  | amplifyuibuilder | 
|  [Amazon AppIntegrations](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonappintegrations.html)  | app-integrations | 
|  [AWS AppConfig](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsappconfig.html)  | appconfig | 
|  [Amazon AppFlow](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonappflow.html)  | appflow | 
|  [AWS Application Cost Profiler](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationcostprofilerservice.html)  | application-cost-profiler | 
|  [Amazon CloudWatch Application Insights](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchapplicationinsights.html)  | applicationinsights | 
|  [AWS App Mesh](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsappmesh.html)  | appmesh | 
|  [Amazon WorkSpaces Applications](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonappstream2.0.html)  | appstream | 
|  [AWS AppSync](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsappsync.html)  | appsync | 
|  [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmanagedserviceforprometheus.html)  | aps | 
|  [Amazon Athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html)  | athena | 
|  [AWS Audit Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsauditmanager.html)  | auditmanager | 
|  [AWS Auto Scaling](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsautoscaling.html)  | 自动扩缩 | 
|  [AWS Marketplace](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsmarketplace.html)  | aws-marketplace | 
|  [AWS Backup](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbackup.html)  | 备份 | 
|  [AWS Batch](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbatch.html)  | 批处理 | 
|  [Amazon Braket](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbraket.html)  | Braket | 
|  [AWS Budgets](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsbudgetservice.html)  | 预算 | 
|  [AWS Cloud9](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloud9.html)  | cloud9 | 
|  [AWS CloudFormation](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html)  | cloudformation | 
|  [Amazon CloudFront](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudfront.html)  | cloudfront | 
|  [AWS CloudHSM](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudhsm.html)  | cloudhsm | 
|  [Amazon CloudSearch](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudsearch.html)  | cloudsearch | 
|  [AWS CloudTrail](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudtrail.html)  | cloudtrail | 
|  [Amazon CloudWatch](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatch.html)  | cloudwatch | 
|  [AWS CodeArtifact](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodeartifact.html)  | codeartifact | 
|  [AWS CodeDeploy](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodedeploy.html)  | codedeploy | 
|  [Amazon CodeGuru Profiler](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncodeguruprofiler.html)  | codeguru-profiler | 
|  [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncodegurureviewer.html)  | codeguru-reviewer | 
|  [AWS CodePipeline](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodepipeline.html)  | codepipeline | 
|  [AWS CodeStar](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodestar.html)  | codestar | 
|  [AWS CodeStar 通知](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodestarnotifications.html)  | codestar-notifications | 
|  [Amazon Cognito 身份](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitoidentity.html)  | cognito-identity | 
|  [Amazon Cognito 用户群体](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitouserpools.html)  | cognito-idp | 
|  [Amazon Cognito Sync](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncognitosync.html)  | cognito-sync | 
|  [Amazon Comprehend Medical](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncomprehendmedical.html)  | comprehendmedical | 
|  [AWS Compute Optimizer](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscomputeoptimizer.html)  | compute-optimizer | 
|  [AWS Config](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsconfig.html)  | config | 
|  [Amazon Connect](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonconnect.html)  | connect | 
|  [AWS 成本和使用情况报告](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscostandusagereport.html)  | cur | 
|  [AWS Glue DataBrew](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsgluedatabrew.html)  | databrew | 
|  [AWS Data Exchange](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdataexchange.html)  | dataexchange | 
|  [AWS Data Pipeline](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatapipeline.html)  | datapipeline | 
|  [DynamoDB Accelerator](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondynamodbacceleratordax.html)  | dax | 
|  [AWS Device Farm](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdevicefarm.html)  | devicefarm | 
|  [Amazon DevOps Guru](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondevopsguru.html)  | devops-guru | 
|  [AWS Direct Connect](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdirectconnect.html)  | directconnect | 
|  [Amazon Data Lifecycle Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondatalifecyclemanager.html)  | dlm | 
|  [AWS Database Migration Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsdatabasemigrationservice.html)  | dms | 
|  [Amazon DocumentDB Elastic Clusters](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondocumentdbelasticclusters.html)  | docdb-elastic | 
|  [Amazon DynamoDB](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondynamodb.html)  | dynamodb | 
|  [Amazon Elastic Block Store](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticblockstore.html)  | ebs | 
|  [Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html)  | ec2 | 
|  [Amazon Elastic Container Registry](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html)  | ecr | 
|  [Amazon Elastic Container Registry Public](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistrypublic.html)  | ecr-public | 
|  [Amazon Elastic Container Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerservice.html)  | ecs | 
|  [Amazon Elastic Kubernetes Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html)  | eks | 
|  [Amazon ElastiCache](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticache.html)  | elasticache | 
|  [AWS Elastic Beanstalk](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselasticbeanstalk.html)  | elasticbeanstalk | 
|  [Amazon Elastic File System](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticfilesystem.html)  | elasticfilesystem | 
|  [Elastic Load Balancing](https://docs.aws.amazon.com/service-authorization/latest/reference/list_elasticloadbalancing.html)  | elasticloadbalancing | 
|  [Amazon Elastic Transcoder](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastictranscoder.html)  | elastictranscoder | 
|  [Amazon EMR 在 EKS 上（EMR 容器）](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonemroneksemrcontainers.html)  | emr-containers | 
|  [Amazon EMR Serverless](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonemrserverless.html)  | emr-serverless | 
|  [Amazon OpenSearch Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonopensearchservice.html)  | es | 
|  [Amazon EventBridge](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridge.html)  | events | 
|  [Amazon CloudWatch Evidently](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchevidently.html)  | evidently | 
|  [Amazon FinSpace](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonfinspace.html)  | finspace | 
|  [Amazon Data Firehose](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisfirehose.html)  | Firehose | 
|  [AWS Fault Injection Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsfaultinjectionsimulator.html)  | fis | 
|  [AWS Firewall Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsfirewallmanager.html)  | fms | 
|  [Amazon Fraud Detector](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonfrauddetector)  | frauddetector | 
|  [Amazon FSx](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonfsx)  | fsx | 
|  [Amazon GameLift Servers](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazongamelift)  | GameLift | 
|  [Amazon Location Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlocation.html)  | geo | 
|  [Amazon Glacier](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3glacier.html)  | glacier | 
|  [Amazon Managed Grafana](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmanagedgrafana.html)  | grafana | 
|  [AWS IoT Greengrass](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotgreengrass.html)  | greengrass | 
|  [AWS Ground Station](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsgroundstation.html)  | groundstation | 
|  [Amazon GuardDuty](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonguardduty.html)  | guardduty | 
|  [AWS HealthLake](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonhealthlake.html)  | healthlake | 
|  [Amazon Honeycode](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonhoneycode.html)  | honeycode | 
|  [AWS Identity and Access Management](https://docs.aws.amazon.com/service-authorization/latest/reference/list_identityandaccessmanagement.html)  | IAM | 
|  [AWS 身份存储](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentitystore.html)  | identitystore | 
|  [EC2 Image Builder](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2imagebuilder.html)  | imagebuilder | 
|  [Amazon Inspector Classic](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoninspector.html)  | inspector | 
|  [Amazon Inspector](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoninspector2.html)  | inspector2 | 
|  [AWS IoT](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html)  | iot | 
|  [AWS IoT Analytics](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotanalytics.html)  | iotanalytics | 
|  [AWS IoT Core Device Advisor](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotcoredeviceadvisor.html)  | iotdeviceadvisor | 
|  [AWS IoT Events](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotevents.html)  | iotevents | 
|  [AWS IoT Fleet Hub](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleethubfordevicemanagement.html)  | iotfleethub | 
|  [AWS IoT SiteWise](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotsitewise.html)  | iotsitewise | 
|  [AWS IoT TwinMaker](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiottwinmaker.html)  | iottwinmaker | 
|  [AWS IoT Wireless](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotwireless.html)  | iotwireless | 
|  [Amazon Interactive Video Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoninteractivevideoservice.html)  | ivs | 
|  [Amazon Interactive Video Service Chat](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoninteractivevideoservicechat.html)  | ivschat | 
|  [Amazon Managed Streaming for Apache Kafka](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmanagedstreamingforapachekafka.html)  | kafka | 
|  [Amazon Managed Streaming for Kafka Connect](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmanagedstreamingforkafkaconnect.html)  | kafkaconnect | 
|  [Amazon Kendra](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkendra.html)  | kendra | 
|  [Amazon Kinesis](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesis.html)  | kinesis | 
|  [Amazon Kinesis Analytics V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonkinesisanalyticsv2.html)  | kinesisanalytics | 
|  [AWS Key Management Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html)  | kms | 
|  [AWS Lambda](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html)  | lambda | 
|  [Amazon Lex](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlexv2.html)  | Lex | 
|  [AWS License Manager Linux Subscriptions Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslicensemanagerlinuxsubscriptionsmanager.html)  | license-manager-linux-subscriptions | 
|  [Amazon Lightsail](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlightsail.html)  | lightsail | 
|  [Amazon CloudWatch Logs](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchlogs.html)  | logs | 
|  [Amazon Lookout for Equipment](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlookoutforequipment.html)  | lookoutequipment | 
|  [Amazon Lookout for Metrics](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlookoutformetrics.html)  | lookoutmetrics | 
|  [Amazon Lookout for Vision](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlookoutforvision.html)  | lookoutvision | 
|  [AWS Mainframe Modernization](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsmainframemodernizationservice.html)  | m2 | 
|  [Amazon Managed Blockchain](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmanagedblockchain.html)  | managedblockchain | 
|  [AWS Elemental MediaConnect](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalmediaconnect.html)  | mediaconnect | 
|  [AWS Elemental MediaConvert](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalmediaconvert.html)  | mediaconvert | 
|  [AWS Elemental MediaLive](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalmedialive.html)  | medialive | 
|  [AWS Elemental MediaStore](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalmediastore.html)  | mediastore | 
|  [AWS Elemental MediaTailor](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselementalmediatailor.html)  | mediatailor | 
|  [Amazon MemoryDB](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmemorydb.html)  | memorydb | 
|  [AWS Application Migration Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsapplicationmigrationservice.html)  | mgn | 
|  [AWS Migration Hub](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsmigrationhub.html)  | mgh | 
|  [AWS Migration Hub 策略建议](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsmigrationhubstrategyrecommendations.html)  | migrationhub-strategy | 
|  [Amazon Pinpoint](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpinpoint.html)  | mobiletargeting | 
|  [Amazon MQ](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonmq.html)  | mq | 
|  [AWS Network Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsnetworkmanager.html)  | networkmanager | 
|  [Amazon Nimble Studio](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonnimblestudio.html)  | nimble | 
|  [AWS HealthOmics](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthomics.html)  | omics | 
|  [AWS OpsWorks](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsopsworks.html)  | opsworks | 
|  [AWS OpsWorks CM](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsopsworksconfigurationmanagement)  | opsworks-cm | 
|  [AWS Outposts](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsoutposts.html)  | outposts | 
|  [AWS Organizations](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsorganizations.html)  | 组织 | 
|  [AWS Panorama](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awspanorama.html)  | panorama | 
|  [AWS 性能详情](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsperformanceinsights.html)  | pi | 
|  [Amazon EventBridge Pipes](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgepipes.html)  | pipes | 
|  [Amazon Polly](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpolly.html)  | polly | 
|  [Amazon Connect Customer Profiles](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonconnectcustomerprofiles.html)  | 配置文件 | 
|  [Amazon QLDB](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonqldb.html)  | qldb | 
|  [AWS Resource Access Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsresourceaccessmanager.html)  | ram | 
|  [AWS 回收站](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrecyclebin.html)  | rbin | 
|  [Amazon Relational Database Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html)  | rds | 
|  [Amazon Redshift](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshift.html)  | redshift | 
|  [Amazon Redshift Data API](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftdataapi.html)  | redshift-data | 
|  [AWS Migration Hub Refactor Spaces](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsmigrationhubrefactorspaces.html)  | refactor-spaces | 
|  [Amazon Rekognition](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrekognition.html)  | rekognition | 
|  [AWS Resilience Hub](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsresiliencehub.html)  | resiliencehub | 
|  [AWS 资源探索器](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsresourceexplorer.html)  | resource-explorer-2 | 
|  [AWS Resource Groups](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsresourcegroups.html)  | resource-groups | 
|  [AWS RoboMaker](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsrobomaker.html)  | robomaker | 
|  [AWS Identity and Access Management Roles Anywhere](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementrolesanywhere.html)  | rolesanywhere | 
|  [Amazon Route 53](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html)  | route53 | 
|  [Amazon Route 53 Recovery 控制](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoverycontrols.html)  | route53-recovery-control-config | 
|  [Amazon Route 53 Recovery 就绪性](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53recoveryreadiness.html)  | route53-recovery-readiness | 
|  [Amazon Route 53 Resolver](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53resolver.html)  | route53resolver | 
|  [AWS CloudWatch RUM](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudwatchrum.html)  | rum | 
|  [Amazon Simple Storage Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)  | S3 | 
|  [Amazon S3 on Outposts](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3onoutposts.html)  | s3-outposts | 
|  [Amazon SageMaker AI 地理空间功能](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemakergeospatialcapabilities.html)  | sagemaker-geospatial | 
|  [Savings Plans](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssavingsplans.html)  | savingsplans | 
|  [Amazon EventBridge Schemas](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgeschemas.html)  | schemas | 
|  [Amazon SimpleDB](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsimpledb.html)  | sdb | 
|  [AWS Secrets Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssecretsmanager.html)  | secretsmanager | 
|  [AWS Security Hub CSPM](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssecurityhub.html)  | securityhub | 
|  [Amazon Security Lake](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsecuritylake.html)  | securitylake | 
|  [AWS Serverless Application Repository](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsserverlessapplicationrepository.html)  | serverlessrepo | 
|  [AWS Service Catalog](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsservicecatalog.html)  | servicecatalog | 
|  [AWS Cloud Map](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudmap.html)  | servicediscovery | 
|  [服务配额](https://docs.aws.amazon.com/service-authorization/latest/reference/list_servicequotas.html)  | servicequotas | 
|  [Amazon Simple Email Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonses.html)  | ses | 
|  [AWS Shield](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsshield.html)  | shield | 
|  [AWS Signer](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssigner.html)  | signer | 
|  [AWS SimSpace Weaver](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssimspaceweaver.html)  | simspaceweaver | 
|  [AWS Server Migration Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsservermigrationservice.html)  | sms | 
|  [Amazon Pinpoint 短信和语音服务](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonpinpointsmsandvoiceservice.html)  | sms-voice | 
|  [AWS Snowball Edge](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssnowball.html)  | snowball | 
|  [Amazon Simple Queue Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html)  | sqs | 
|  [AWS Systems Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanager.html)  | ssm | 
|  [AWS Systems Manager Incident Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerincidentmanager.html)  | ssm-incidents | 
|  [适用于 SAP 的 AWS Systems Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanagerforsap.html)  | ssm-sap | 
|  [AWS Step Functions](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsstepfunctions.html)  | states | 
|  [AWS Security Token Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssecuritytokenservice.html)  | sts | 
|  [Amazon Simple Workflow Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsimpleworkflowservice.html)  | swf | 
|  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoncloudwatchsynthetics.html)  | synthetics | 
|  [AWS Resource Groups Tagging API](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonresourcegrouptaggingapi.html)  | 标签 | 
|  [Amazon Textract](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontextract.html)  | textract | 
|  [Amazon Timestream](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontimestream.html)  | timestream | 
|  [AWS 电信网络生成器](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstelconetworkbuilder.html)  | tnb | 
|  [Amazon Transcribe](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranscribe.html)  | transcribe | 
|  [AWS Transfer Family](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awstransferfamily.html)  | 转移 | 
|  [Amazon Translate](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazontranslate.html)  | translate | 
|  [Amazon Connect Voice ID](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonconnectvoiceid.html)  | voiceid | 
|  [Amazon VPC Lattice](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonvpclattice.html)  | vpc-lattice | 
|  [AWS WAFV2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html)  | wafv2 | 
|  [AWS Well-Architected Tool](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswell-architectedtool.html)  | wellarchitected | 
|  [Amazon Connect Wisdom](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonconnectwisdom.html)  | wisdom | 
|  [Amazon WorkLink](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworklink.html)  | worklink | 
|  [Amazon WorkSpaces](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkspaces.html)  | 工作区 | 
|  [AWS X-Ray](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsx-ray.html)  | xray | 

## 上次访问操作信息的操作
<a name="access_policies_last-accessed-action-last-accessed-supported-actions"></a>

下表列出了可获得上次访问操作信息的操作。

**重要**  
`iam:UpdateAccountName` 操作将于 2026 年 4 月 22 日弃用。2026 年 4 月 22 日之后，只有 `[account:PutAccountName](https://docs.aws.amazon.com/accounts/latest/reference/API_PutAccountName.html)` 权限才能控制账户名称更新访问权限。我们强烈建议更新任何控制账户名称更新的[服务控制策略 (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)，以使用 `account:PutAccountName` 权限。


|  **服务前缀**  |  **操作**  | 
| --- | --- | 
| access-analyzer |  access-analyzer:ApplyArchiveRule access-analyzer:CancelPolicyGeneration access-analyzer:CheckAccessNotGranted access-analyzer:CheckNoNewAccess access-analyzer:CheckNoPublicAccess access-analyzer:CreateAccessPreview access-analyzer:CreateAnalyzer access-analyzer:CreateArchiveRule access-analyzer:DeleteAnalyzer access-analyzer:DeleteArchiveRule access-analyzer:GenerateFindingRecommendation access-analyzer:GetAccessPreview access-analyzer:GetAnalyzedResource access-analyzer:GetAnalyzer access-analyzer:GetArchiveRule access-analyzer:GetFinding access-analyzer:GetFindingRecommendation access-analyzer:GetFindingsStatistics access-analyzer:GetGeneratedPolicy access-analyzer:ListAccessPreviewFindings access-analyzer:ListAccessPreviews access-analyzer:ListAnalyzedResources access-analyzer:ListAnalyzers access-analyzer:ListArchiveRules access-analyzer:ListFindings access-analyzer:ListPolicyGenerations access-analyzer:StartPolicyGeneration access-analyzer:StartResourceScan access-analyzer:UpdateAnalyzer access-analyzer:UpdateArchiveRule access-analyzer:UpdateFindings access-analyzer:ValidatePolicy  | 
| 账户 |  account:AcceptPrimaryEmailUpdate account:DeleteAlternateContact account:DisableRegion account:EnableRegion account:GetAccountInformation account:GetAlternateContact account:GetContactInformation account:GetGovCloudAccountInformation account:GetPrimaryEmail account:GetRegionOptStatus account:ListRegions account:PutAccountName account:PutAlternateContact account:PutContactInformation account:StartPrimaryEmailUpdate  | 
| acm |  acm:DeleteCertificate acm:DescribeCertificate acm:ExportCertificate acm:GetAccountConfiguration acm:GetCertificate acm:ImportCertificate acm:ListCertificates acm:PutAccountConfiguration acm:RenewCertificate acm:RequestCertificate acm:ResendValidationEmail acm:UpdateCertificateOptions  | 
| airflow |  airflow:CreateCliToken airflow:CreateEnvironment airflow:CreateWebLoginToken airflow:DeleteEnvironment airflow:GetEnvironment airflow:ListEnvironments airflow:PublishMetrics airflow:UpdateEnvironment  | 
| amplify |  amplify:CreateApp amplify:CreateBackendEnvironment amplify:CreateBranch amplify:CreateDeployment amplify:CreateDomainAssociation amplify:CreateWebHook amplify:DeleteApp amplify:DeleteBackendEnvironment amplify:DeleteBranch amplify:DeleteDomainAssociation amplify:DeleteJob amplify:DeleteWebHook amplify:GenerateAccessLogs amplify:GetApp amplify:GetArtifactUrl amplify:GetBackendEnvironment amplify:GetBranch amplify:GetDomainAssociation amplify:GetJob amplify:GetWebHook amplify:ListApps amplify:ListArtifacts amplify:ListBackendEnvironments amplify:ListBranches amplify:ListDomainAssociations amplify:ListJobs amplify:ListWebHooks amplify:StartDeployment amplify:StartJob amplify:StopJob amplify:UpdateApp amplify:UpdateBranch amplify:UpdateDomainAssociation amplify:UpdateWebHook  | 
| amplifyuibuilder |  amplifyuibuilder:CreateComponent amplifyuibuilder:CreateForm amplifyuibuilder:CreateTheme amplifyuibuilder:DeleteComponent amplifyuibuilder:DeleteForm amplifyuibuilder:DeleteTheme amplifyuibuilder:ExportComponents amplifyuibuilder:ExportThemes amplifyuibuilder:GetCodegenJob amplifyuibuilder:ListCodegenJobs amplifyuibuilder:ListComponents amplifyuibuilder:ListForms amplifyuibuilder:ListThemes amplifyuibuilder:ResetMetadataFlag amplifyuibuilder:StartCodegenJob amplifyuibuilder:UpdateComponent amplifyuibuilder:UpdateForm amplifyuibuilder:UpdateTheme  | 
| app-integrations |  app-integrations:CreateApplication app-integrations:CreateDataIntegration app-integrations:CreateDataIntegrationAssociation app-integrations:CreateEventIntegration app-integrations:DeleteApplication app-integrations:DeleteDataIntegration app-integrations:DeleteEventIntegration app-integrations:GetApplication app-integrations:GetDataIntegration app-integrations:GetEventIntegration app-integrations:ListApplicationAssociations app-integrations:ListApplications app-integrations:ListDataIntegrationAssociations app-integrations:ListDataIntegrations app-integrations:ListEventIntegrationAssociations app-integrations:ListEventIntegrations app-integrations:UpdateApplication app-integrations:UpdateDataIntegration app-integrations:UpdateDataIntegrationAssociation app-integrations:UpdateEventIntegration  | 
| appconfig |  appconfig:CreateApplication appconfig:CreateConfigurationProfile appconfig:CreateDeploymentStrategy appconfig:CreateEnvironment appconfig:CreateExtension appconfig:CreateExtensionAssociation appconfig:CreateHostedConfigurationVersion appconfig:DeleteApplication appconfig:DeleteConfigurationProfile appconfig:DeleteDeploymentStrategy appconfig:DeleteEnvironment appconfig:DeleteExtension appconfig:DeleteExtensionAssociation appconfig:DeleteHostedConfigurationVersion appconfig:GetAccountSettings appconfig:GetApplication appconfig:GetConfiguration appconfig:GetConfigurationProfile appconfig:GetDeployment appconfig:GetDeploymentStrategy appconfig:GetEnvironment appconfig:GetExtension appconfig:GetExtensionAssociation appconfig:GetHostedConfigurationVersion appconfig:ListApplications appconfig:ListConfigurationProfiles appconfig:ListDeploymentStrategies appconfig:ListDeployments appconfig:ListEnvironments appconfig:ListExtensionAssociations appconfig:ListExtensions appconfig:ListHostedConfigurationVersions appconfig:StartDeployment appconfig:StopDeployment appconfig:UpdateAccountSettings appconfig:UpdateApplication appconfig:UpdateConfigurationProfile appconfig:UpdateDeploymentStrategy appconfig:UpdateEnvironment appconfig:UpdateExtension appconfig:UpdateExtensionAssociation appconfig:ValidateConfiguration  | 
| appflow |  appflow:CancelFlowExecutions appflow:CreateConnectorProfile appflow:CreateFlow appflow:DeleteConnectorProfile appflow:DeleteFlow appflow:DescribeConnector appflow:DescribeConnectorEntity appflow:DescribeConnectorProfiles appflow:DescribeConnectors appflow:DescribeFlow appflow:DescribeFlowExecutionRecords appflow:ListConnectorEntities appflow:ListConnectors appflow:ListFlows appflow:RegisterConnector appflow:ResetConnectorMetadataCache appflow:StartFlow appflow:StopFlow appflow:UnRegisterConnector appflow:UpdateConnectorProfile appflow:UpdateConnectorRegistration appflow:UpdateFlow  | 
| applicationinsights |  applicationinsights:AddWorkload applicationinsights:CreateApplication applicationinsights:CreateComponent applicationinsights:CreateLogPattern applicationinsights:DeleteApplication applicationinsights:DeleteComponent applicationinsights:DeleteLogPattern applicationinsights:DescribeApplication applicationinsights:DescribeComponent applicationinsights:DescribeComponentConfiguration applicationinsights:DescribeComponentConfigurationRecommendation applicationinsights:DescribeLogPattern applicationinsights:DescribeObservation applicationinsights:DescribeProblem applicationinsights:DescribeProblemObservations applicationinsights:DescribeWorkload applicationinsights:ListApplications applicationinsights:ListComponents applicationinsights:ListConfigurationHistory applicationinsights:ListLogPatternSets applicationinsights:ListLogPatterns applicationinsights:ListProblems applicationinsights:ListWorkloads applicationinsights:RemoveWorkload applicationinsights:UpdateApplication applicationinsights:UpdateComponent applicationinsights:UpdateComponentConfiguration applicationinsights:UpdateLogPattern applicationinsights:UpdateWorkload  | 
| appmesh |  appmesh:CreateGatewayRoute appmesh:CreateMesh appmesh:CreateRoute appmesh:CreateVirtualGateway appmesh:CreateVirtualNode appmesh:CreateVirtualRouter appmesh:CreateVirtualService appmesh:DeleteGatewayRoute appmesh:DeleteMesh appmesh:DeleteRoute appmesh:DeleteVirtualGateway appmesh:DeleteVirtualNode appmesh:DeleteVirtualRouter appmesh:DeleteVirtualService appmesh:DescribeGatewayRoute appmesh:DescribeMesh appmesh:DescribeRoute appmesh:DescribeVirtualGateway appmesh:DescribeVirtualNode appmesh:DescribeVirtualRouter appmesh:DescribeVirtualService appmesh:ListGatewayRoutes appmesh:ListMeshes appmesh:ListRoutes appmesh:ListVirtualGateways appmesh:ListVirtualNodes appmesh:ListVirtualRouters appmesh:ListVirtualServices appmesh:StreamAggregatedResources appmesh:UpdateGatewayRoute appmesh:UpdateMesh appmesh:UpdateRoute appmesh:UpdateVirtualGateway appmesh:UpdateVirtualNode appmesh:UpdateVirtualRouter appmesh:UpdateVirtualService  | 
| appstream |  appstream:AssociateAppBlockBuilderAppBlock appstream:AssociateApplicationFleet appstream:AssociateApplicationToEntitlement appstream:AssociateFleet appstream:AssociateSoftwareToImageBuilder appstream:BatchAssociateUserStack appstream:BatchDisassociateUserStack appstream:CopyImage appstream:CreateAppBlock appstream:CreateAppBlockBuilder appstream:CreateAppBlockBuilderStreamingURL appstream:CreateApplication appstream:CreateDirectoryConfig appstream:CreateEntitlement appstream:CreateFleet appstream:CreateImageBuilder appstream:CreateImageBuilderStreamingURL appstream:CreateStack appstream:CreateStreamingURL appstream:CreateThemeForStack appstream:CreateUpdatedImage appstream:CreateUsageReportSubscription appstream:CreateUser appstream:DeleteAppBlock appstream:DeleteAppBlockBuilder appstream:DeleteApplication appstream:DeleteDirectoryConfig appstream:DeleteEntitlement appstream:DeleteFleet appstream:DeleteImage appstream:DeleteImageBuilder appstream:DeleteImagePermissions appstream:DeleteStack appstream:DeleteThemeForStack appstream:DeleteUsageReportSubscription appstream:DeleteUser appstream:DescribeAppBlockBuilderAppBlockAssociations appstream:DescribeAppBlockBuilders appstream:DescribeAppBlocks appstream:DescribeAppLicenseUsage appstream:DescribeApplicationFleetAssociations appstream:DescribeApplications appstream:DescribeDirectoryConfigs appstream:DescribeEntitlements appstream:DescribeFleets appstream:DescribeImageBuilders appstream:DescribeImagePermissions appstream:DescribeImages appstream:DescribeSessions appstream:DescribeStacks appstream:DescribeThemeForStack appstream:DescribeUsageReportSubscriptions appstream:DescribeUserStackAssociations appstream:DescribeUsers appstream:DisableUser appstream:DisassociateAppBlockBuilderAppBlock appstream:DisassociateApplicationFleet appstream:DisassociateApplicationFromEntitlement appstream:DisassociateFleet appstream:DisassociateSoftwareFromImageBuilder appstream:EnableUser appstream:ExpireSession appstream:GetExportImageTask appstream:ListAssociatedFleets appstream:ListAssociatedStacks appstream:ListEntitledApplications appstream:ListExportImageTasks appstream:StartAppBlockBuilder appstream:StartFleet appstream:StartImageBuilder appstream:StartSoftwareDeploymentToImageBuilder appstream:StopAppBlockBuilder appstream:StopFleet appstream:StopImageBuilder appstream:UpdateAppBlockBuilder appstream:UpdateApplication appstream:UpdateDirectoryConfig appstream:UpdateEntitlement appstream:UpdateFleet appstream:UpdateImagePermissions appstream:UpdateStack appstream:UpdateThemeForStack  | 
| appsync |  appsync:AssociateApi appsync:AssociateMergedGraphqlApi appsync:AssociateSourceGraphqlApi appsync:AssociateWebACL appsync:CreateApi appsync:CreateApiCache appsync:CreateApiKey appsync:CreateChannelNamespace appsync:CreateDataSource appsync:CreateDomainName appsync:CreateFunction appsync:CreateGraphqlApi appsync:CreateResolver appsync:CreateType appsync:DeleteApi appsync:DeleteApiCache appsync:DeleteApiKey appsync:DeleteChannelNamespace appsync:DeleteDataSource appsync:DeleteDomainName appsync:DeleteFunction appsync:DeleteGraphqlApi appsync:DeleteResolver appsync:DeleteType appsync:DisassociateApi appsync:DisassociateMergedGraphqlApi appsync:DisassociateSourceGraphqlApi appsync:DisassociateWebACL appsync:EvaluateCode appsync:EvaluateMappingTemplate appsync:FlushApiCache appsync:GetApi appsync:GetApiAssociation appsync:GetApiCache appsync:GetChannelNamespace appsync:GetDataSource appsync:GetDataSourceIntrospection appsync:GetDomainName appsync:GetFunction appsync:GetGraphqlApi appsync:GetGraphqlApiEnvironmentVariables appsync:GetIntrospectionSchema appsync:GetResolver appsync:GetSchemaCreationStatus appsync:GetSourceApiAssociation appsync:GetType appsync:GetWebACLForResource appsync:ListApiKeys appsync:ListApis appsync:ListChannelNamespaces appsync:ListDataSources appsync:ListDomainNames appsync:ListFunctions appsync:ListGraphqlApis appsync:ListResolvers appsync:ListResolversByFunction appsync:ListResourcesForWebACL appsync:ListSourceApiAssociations appsync:ListTypes appsync:ListTypesByAssociation appsync:PutGraphqlApiEnvironmentVariables appsync:StartDataSourceIntrospection appsync:StartSchemaCreation appsync:StartSchemaMerge appsync:UpdateApi appsync:UpdateApiCache appsync:UpdateApiKey appsync:UpdateChannelNamespace appsync:UpdateDataSource appsync:UpdateDomainName appsync:UpdateFunction appsync:UpdateGraphqlApi appsync:UpdateResolver appsync:UpdateSourceApiAssociation appsync:UpdateType  | 
| aps |  aps:CreateAlertManagerDefinition aps:CreateAnomalyDetector aps:CreateLoggingConfiguration aps:CreateQueryLoggingConfiguration aps:CreateRuleGroupsNamespace aps:CreateWorkspace aps:DeleteAlertManagerDefinition aps:DeleteAnomalyDetector aps:DeleteLoggingConfiguration aps:DeleteQueryLoggingConfiguration aps:DeleteResourcePolicy aps:DeleteRuleGroupsNamespace aps:DeleteScraper aps:DeleteScraperLoggingConfiguration aps:DeleteWorkspace aps:DescribeAlertManagerDefinition aps:DescribeAnomalyDetector aps:DescribeLoggingConfiguration aps:DescribeQueryLoggingConfiguration aps:DescribeResourcePolicy aps:DescribeRuleGroupsNamespace aps:DescribeScraper aps:DescribeScraperLoggingConfiguration aps:DescribeWorkspace aps:DescribeWorkspaceConfiguration aps:GetDefaultScraperConfiguration aps:ListAnomalyDetectors aps:ListRuleGroupsNamespaces aps:ListScrapers aps:ListWorkspaces aps:PutAlertManagerDefinition aps:PutAnomalyDetector aps:PutResourcePolicy aps:PutRuleGroupsNamespace aps:UpdateLoggingConfiguration aps:UpdateQueryLoggingConfiguration aps:UpdateScraper aps:UpdateScraperLoggingConfiguration aps:UpdateWorkspaceAlias aps:UpdateWorkspaceConfiguration  | 
| athena |  athena:BatchGetNamedQuery athena:BatchGetPreparedStatement athena:BatchGetQueryExecution athena:CancelCapacityReservation athena:CreateCapacityReservation athena:CreateDataCatalog athena:CreateNamedQuery athena:CreateNotebook athena:CreatePreparedStatement athena:CreatePresignedNotebookUrl athena:CreateWorkGroup athena:DeleteCapacityReservation athena:DeleteDataCatalog athena:DeleteNamedQuery athena:DeleteNotebook athena:DeletePreparedStatement athena:DeleteWorkGroup athena:ExportNotebook athena:GetCalculationExecution athena:GetCalculationExecutionCode athena:GetCalculationExecutionStatus athena:GetCapacityAssignmentConfiguration athena:GetCapacityReservation athena:GetDataCatalog athena:GetDatabase athena:GetNamedQuery athena:GetNotebookMetadata athena:GetPreparedStatement athena:GetQueryExecution athena:GetQueryResults athena:GetQueryResultsStream athena:GetQueryRuntimeStatistics athena:GetResourceDashboard athena:GetSession athena:GetSessionEndpoint athena:GetSessionStatus athena:GetTableMetadata athena:GetWorkGroup athena:ImportNotebook athena:ListApplicationDPUSizes athena:ListCalculationExecutions athena:ListCapacityReservations athena:ListDataCatalogs athena:ListDatabases athena:ListEngineVersions athena:ListExecutors athena:ListNamedQueries athena:ListNotebookMetadata athena:ListNotebookSessions athena:ListPreparedStatements athena:ListQueryExecutions athena:ListSessions athena:ListTableMetadata athena:ListWorkGroups athena:PutCapacityAssignmentConfiguration athena:StartCalculationExecution athena:StartQueryExecution athena:StartSession athena:StopCalculationExecution athena:StopQueryExecution athena:TerminateSession athena:UpdateCapacityReservation athena:UpdateDataCatalog athena:UpdateNamedQuery athena:UpdateNotebook athena:UpdateNotebookMetadata athena:UpdatePreparedStatement athena:UpdateWorkGroup  | 
| auditmanager |  auditmanager:AssociateAssessmentReportEvidenceFolder auditmanager:BatchAssociateAssessmentReportEvidence auditmanager:BatchCreateDelegationByAssessment auditmanager:BatchDeleteDelegationByAssessment auditmanager:BatchDisassociateAssessmentReportEvidence auditmanager:BatchImportEvidenceToAssessmentControl auditmanager:CreateAssessment auditmanager:CreateAssessmentFramework auditmanager:CreateAssessmentReport auditmanager:CreateControl auditmanager:DeleteAssessment auditmanager:DeleteAssessmentFramework auditmanager:DeleteAssessmentFrameworkShare auditmanager:DeleteAssessmentReport auditmanager:DeleteControl auditmanager:DeregisterAccount auditmanager:DeregisterOrganizationAdminAccount auditmanager:DisassociateAssessmentReportEvidenceFolder auditmanager:GetAccountStatus auditmanager:GetAssessment auditmanager:GetAssessmentFramework auditmanager:GetAssessmentReportUrl auditmanager:GetChangeLogs auditmanager:GetControl auditmanager:GetDelegations auditmanager:GetEvidence auditmanager:GetEvidenceByEvidenceFolder auditmanager:GetEvidenceFileUploadUrl auditmanager:GetEvidenceFolder auditmanager:GetEvidenceFoldersByAssessment auditmanager:GetEvidenceFoldersByAssessmentControl auditmanager:GetInsights auditmanager:GetInsightsByAssessment auditmanager:GetOrganizationAdminAccount auditmanager:GetServicesInScope auditmanager:GetSettings auditmanager:ListAssessmentControlInsightsByControlDomain auditmanager:ListAssessmentFrameworkShareRequests auditmanager:ListAssessmentFrameworks auditmanager:ListAssessmentReports auditmanager:ListAssessments auditmanager:ListControlDomainInsights auditmanager:ListControlDomainInsightsByAssessment auditmanager:ListControlInsightsByControlDomain auditmanager:ListControls auditmanager:ListKeywordsForDataSource auditmanager:ListNotifications auditmanager:RegisterAccount auditmanager:RegisterOrganizationAdminAccount auditmanager:StartAssessmentFrameworkShare auditmanager:UpdateAssessment auditmanager:UpdateAssessmentControl auditmanager:UpdateAssessmentControlSetStatus auditmanager:UpdateAssessmentFramework auditmanager:UpdateAssessmentFrameworkShare auditmanager:UpdateAssessmentStatus auditmanager:UpdateControl auditmanager:UpdateSettings auditmanager:ValidateAssessmentReportIntegrity  | 
| 自动扩缩 |  autoscaling:AttachInstances autoscaling:AttachLoadBalancerTargetGroups autoscaling:AttachLoadBalancers autoscaling:AttachTrafficSources autoscaling:BatchDeleteScheduledAction autoscaling:BatchPutScheduledUpdateGroupAction autoscaling:CancelInstanceRefresh autoscaling:CompleteLifecycleAction autoscaling:CreateAutoScalingGroup autoscaling:CreateLaunchConfiguration autoscaling:DeleteAutoScalingGroup autoscaling:DeleteLaunchConfiguration autoscaling:DeleteLifecycleHook autoscaling:DeleteNotificationConfiguration autoscaling:DeletePolicy autoscaling:DeleteScheduledAction autoscaling:DeleteWarmPool autoscaling:DescribeAccountLimits autoscaling:DescribeAdjustmentTypes autoscaling:DescribeAutoScalingGroups autoscaling:DescribeAutoScalingInstances autoscaling:DescribeAutoScalingNotificationTypes autoscaling:DescribeInstanceRefreshes autoscaling:DescribeLaunchConfigurations autoscaling:DescribeLifecycleHookTypes autoscaling:DescribeLifecycleHooks autoscaling:DescribeLoadBalancerTargetGroups autoscaling:DescribeLoadBalancers autoscaling:DescribeMetricCollectionTypes autoscaling:DescribeNotificationConfigurations autoscaling:DescribePolicies autoscaling:DescribeScalingActivities autoscaling:DescribeScalingProcessTypes autoscaling:DescribeScheduledActions autoscaling:DescribeTerminationPolicyTypes autoscaling:DescribeTrafficSources autoscaling:DescribeWarmPool autoscaling:DetachInstances autoscaling:DetachLoadBalancerTargetGroups autoscaling:DetachLoadBalancers autoscaling:DetachTrafficSources autoscaling:DisableMetricsCollection autoscaling:EnableMetricsCollection autoscaling:EnterStandby autoscaling:ExecutePolicy autoscaling:ExitStandby autoscaling:GetPredictiveScalingForecast autoscaling:PutLifecycleHook autoscaling:PutNotificationConfiguration autoscaling:PutScalingPolicy autoscaling:PutScheduledUpdateGroupAction autoscaling:PutWarmPool autoscaling:RecordLifecycleActionHeartbeat autoscaling:ResumeProcesses autoscaling:RollbackInstanceRefresh autoscaling:SetDesiredCapacity autoscaling:SetInstanceHealth autoscaling:SetInstanceProtection autoscaling:StartInstanceRefresh autoscaling:SuspendProcesses autoscaling:TerminateInstanceInAutoScalingGroup autoscaling:UpdateAutoScalingGroup  | 
| aws-marketplace |  aws-marketplace:GetEntitlements  | 
| 备份 |  backup:CancelLegalHold backup:CreateBackupPlan backup:CreateBackupSelection backup:CreateBackupVault backup:CreateFramework backup:CreateLegalHold backup:CreateLogicallyAirGappedBackupVault backup:CreateReportPlan backup:CreateRestoreAccessBackupVault backup:CreateRestoreTestingPlan backup:CreateRestoreTestingSelection backup:CreateTieringConfiguration backup:DeleteBackupPlan backup:DeleteBackupSelection backup:DeleteBackupVault backup:DeleteBackupVaultAccessPolicy backup:DeleteBackupVaultLockConfiguration backup:DeleteBackupVaultNotifications backup:DeleteFramework backup:DeleteRecoveryPoint backup:DeleteReportPlan backup:DeleteRestoreTestingPlan backup:DeleteRestoreTestingSelection backup:DeleteTieringConfiguration backup:DescribeBackupJob backup:DescribeBackupVault backup:DescribeCopyJob backup:DescribeFramework backup:DescribeGlobalSettings backup:DescribeProtectedResource backup:DescribeRecoveryPoint backup:DescribeRegionSettings backup:DescribeReportJob backup:DescribeReportPlan backup:DescribeRestoreJob backup:DescribeScanJob backup:DisassociateRecoveryPoint backup:DisassociateRecoveryPointFromParent backup:ExportBackupPlanTemplate backup:GetBackupPlan backup:GetBackupPlanFromJSON backup:GetBackupPlanFromTemplate backup:GetBackupSelection backup:GetBackupVaultAccessPolicy backup:GetBackupVaultNotifications backup:GetLegalHold backup:GetRecoveryPointRestoreMetadata backup:GetRestoreJobMetadata backup:GetRestoreTestingInferredMetadata backup:GetRestoreTestingPlan backup:GetRestoreTestingSelection backup:GetSupportedResourceTypes backup:GetTieringConfiguration backup:ListBackupJobSummaries backup:ListBackupJobs backup:ListBackupPlanTemplates backup:ListBackupPlanVersions backup:ListBackupPlans backup:ListBackupSelections backup:ListBackupVaults backup:ListCopyJobSummaries backup:ListCopyJobs backup:ListFrameworks backup:ListIndexedRecoveryPoints backup:ListLegalHolds backup:ListProtectedResources backup:ListRecoveryPointsByBackupVault backup:ListRecoveryPointsByLegalHold backup:ListRecoveryPointsByResource backup:ListReportJobs backup:ListReportPlans backup:ListRestoreAccessBackupVaults backup:ListRestoreJobSummaries backup:ListRestoreJobs backup:ListRestoreJobsByProtectedResource backup:ListRestoreTestingPlans backup:ListRestoreTestingSelections backup:ListScanJobSummaries backup:ListScanJobs backup:ListTieringConfigurations backup:PutBackupVaultAccessPolicy backup:PutBackupVaultLockConfiguration backup:PutBackupVaultNotifications backup:PutRestoreValidationResult backup:StartBackupJob backup:StartCopyJob backup:StartReportJob backup:StartRestoreJob backup:StopBackupJob backup:UpdateBackupPlan backup:UpdateFramework backup:UpdateGlobalSettings backup:UpdateRecoveryPointLifecycle backup:UpdateRegionSettings backup:UpdateReportPlan backup:UpdateRestoreTestingPlan backup:UpdateRestoreTestingSelection backup:UpdateTieringConfiguration  | 
| 批处理 |  batch:CancelJob batch:CreateComputeEnvironment batch:CreateConsumableResource batch:CreateJobQueue batch:CreateSchedulingPolicy batch:CreateServiceEnvironment batch:DeleteComputeEnvironment batch:DeleteConsumableResource batch:DeleteJobQueue batch:DeleteSchedulingPolicy batch:DeleteServiceEnvironment batch:DeregisterJobDefinition batch:DescribeComputeEnvironments batch:DescribeConsumableResource batch:DescribeJobDefinitions batch:DescribeJobQueues batch:DescribeJobs batch:DescribeSchedulingPolicies batch:DescribeServiceEnvironments batch:DescribeServiceJob batch:GetJobQueueSnapshot batch:ListConsumableResources batch:ListJobs batch:ListJobsByConsumableResource batch:ListSchedulingPolicies batch:ListServiceJobs batch:RegisterJobDefinition batch:SubmitJob batch:SubmitServiceJob batch:TerminateJob batch:TerminateServiceJob batch:UpdateComputeEnvironment batch:UpdateConsumableResource batch:UpdateJobQueue batch:UpdateSchedulingPolicy batch:UpdateServiceEnvironment  | 
| Braket |  braket:CancelJob braket:CancelQuantumTask braket:CreateJob braket:CreateQuantumTask braket:CreateSpendingLimit braket:GetDevice braket:GetJob braket:GetQuantumTask braket:SearchDevices braket:SearchJobs braket:SearchQuantumTasks braket:SearchSpendingLimits  | 
| 预算 |  budgets:CreateBudgetAction budgets:DeleteBudgetAction budgets:DescribeBudgetAction budgets:DescribeBudgetActionHistories budgets:DescribeBudgetActionsForAccount budgets:DescribeBudgetActionsForBudget budgets:ExecuteBudgetAction budgets:ModifyBudget budgets:UpdateBudgetAction budgets:ViewBudget  | 
| cloud9 |  cloud9:CreateEnvironmentEC2 cloud9:CreateEnvironmentMembership cloud9:DeleteEnvironment cloud9:DeleteEnvironmentMembership cloud9:DescribeEnvironmentMemberships cloud9:DescribeEnvironmentStatus cloud9:DescribeEnvironments cloud9:ListEnvironments cloud9:UpdateEnvironment cloud9:UpdateEnvironmentMembership  | 
| cloudformation |  cloudformation:BatchDescribeTypeConfigurations cloudformation:CancelUpdateStack cloudformation:ContinueUpdateRollback cloudformation:CreateChangeSet cloudformation:CreateGeneratedTemplate cloudformation:CreateStack cloudformation:CreateStackInstances cloudformation:CreateStackSet cloudformation:DeactivateType cloudformation:DeleteChangeSet cloudformation:DeleteGeneratedTemplate cloudformation:DeleteStack cloudformation:DeleteStackInstances cloudformation:DeleteStackSet cloudformation:DeregisterType cloudformation:DescribeAccountLimits cloudformation:DescribeChangeSet cloudformation:DescribeChangeSetHooks cloudformation:DescribeEvents cloudformation:DescribeGeneratedTemplate cloudformation:DescribeOrganizationsAccess cloudformation:DescribePublisher cloudformation:DescribeResourceScan cloudformation:DescribeStackDriftDetectionStatus cloudformation:DescribeStackEvents cloudformation:DescribeStackInstance cloudformation:DescribeStackResource cloudformation:DescribeStackResourceDrifts cloudformation:DescribeStackResources cloudformation:DescribeStackSet cloudformation:DescribeStackSetOperation cloudformation:DescribeStacks cloudformation:DescribeType cloudformation:DescribeTypeRegistration cloudformation:DetectStackDrift cloudformation:DetectStackResourceDrift cloudformation:DetectStackSetDrift cloudformation:EstimateTemplateCost cloudformation:ExecuteChangeSet cloudformation:GetGeneratedTemplate cloudformation:GetHookResult cloudformation:GetStackPolicy cloudformation:GetTemplate cloudformation:GetTemplateSummary cloudformation:ImportStacksToStackSet cloudformation:ListChangeSets cloudformation:ListExports cloudformation:ListGeneratedTemplates cloudformation:ListHookResults cloudformation:ListImports cloudformation:ListResourceScanRelatedResources cloudformation:ListResourceScanResources cloudformation:ListResourceScans cloudformation:ListStackInstanceResourceDrifts cloudformation:ListStackInstances cloudformation:ListStackRefactors cloudformation:ListStackResources cloudformation:ListStackSetAutoDeploymentTargets cloudformation:ListStackSetOperationResults cloudformation:ListStackSetOperations cloudformation:ListStackSets cloudformation:ListTypeRegistrations cloudformation:ListTypeVersions cloudformation:ListTypes cloudformation:PublishType cloudformation:RecordHandlerProgress cloudformation:RegisterPublisher cloudformation:RegisterType cloudformation:RollbackStack cloudformation:SetStackPolicy cloudformation:SetTypeConfiguration cloudformation:SetTypeDefaultVersion cloudformation:SignalResource cloudformation:StartResourceScan cloudformation:StopStackSetOperation cloudformation:TestType cloudformation:UpdateGeneratedTemplate cloudformation:UpdateStack cloudformation:UpdateStackInstances cloudformation:UpdateStackSet cloudformation:UpdateTerminationProtection cloudformation:ValidateTemplate  | 
| cloudfront |  cloudfront:AssociateAlias cloudfront:AssociateDistributionTenantWebACL cloudfront:AssociateDistributionWebACL cloudfront:CreateCachePolicy cloudfront:CreateCloudFrontOriginAccessIdentity cloudfront:CreateConnectionFunction cloudfront:CreateContinuousDeploymentPolicy cloudfront:CreateDistributionTenant cloudfront:CreateFieldLevelEncryptionConfig cloudfront:CreateFieldLevelEncryptionProfile cloudfront:CreateFunction cloudfront:CreateInvalidation cloudfront:CreateKeyGroup cloudfront:CreateKeyValueStore cloudfront:CreateMonitoringSubscription cloudfront:CreateOriginAccessControl cloudfront:CreateOriginRequestPolicy cloudfront:CreatePublicKey cloudfront:CreateRealtimeLogConfig cloudfront:CreateResponseHeadersPolicy cloudfront:CreateTrustStore cloudfront:DeleteAnycastIpList cloudfront:DeleteCachePolicy cloudfront:DeleteCloudFrontOriginAccessIdentity cloudfront:DeleteConnectionFunction cloudfront:DeleteConnectionGroup cloudfront:DeleteContinuousDeploymentPolicy cloudfront:DeleteDistribution cloudfront:DeleteDistributionTenant cloudfront:DeleteFieldLevelEncryptionConfig cloudfront:DeleteFieldLevelEncryptionProfile cloudfront:DeleteFunction cloudfront:DeleteKeyGroup cloudfront:DeleteKeyValueStore cloudfront:DeleteMonitoringSubscription cloudfront:DeleteOriginAccessControl cloudfront:DeleteOriginRequestPolicy cloudfront:DeletePublicKey cloudfront:DeleteRealtimeLogConfig cloudfront:DeleteResponseHeadersPolicy cloudfront:DeleteStreamingDistribution cloudfront:DeleteTrustStore cloudfront:DeleteVpcOrigin cloudfront:DescribeFunction cloudfront:DescribeKeyValueStore cloudfront:DisassociateDistributionTenantWebACL cloudfront:DisassociateDistributionWebACL cloudfront:GetAnycastIpList cloudfront:GetCachePolicy cloudfront:GetCachePolicyConfig cloudfront:GetCloudFrontOriginAccessIdentity cloudfront:GetCloudFrontOriginAccessIdentityConfig cloudfront:GetContinuousDeploymentPolicy cloudfront:GetContinuousDeploymentPolicyConfig cloudfront:GetDistributionConfig cloudfront:GetFieldLevelEncryption cloudfront:GetFieldLevelEncryptionConfig cloudfront:GetFieldLevelEncryptionProfile cloudfront:GetFieldLevelEncryptionProfileConfig cloudfront:GetFunction cloudfront:GetInvalidation cloudfront:GetInvalidationForDistributionTenant cloudfront:GetKeyGroup cloudfront:GetKeyGroupConfig cloudfront:GetMonitoringSubscription cloudfront:GetOriginAccessControl cloudfront:GetOriginAccessControlConfig cloudfront:GetOriginRequestPolicy cloudfront:GetOriginRequestPolicyConfig cloudfront:GetPublicKey cloudfront:GetPublicKeyConfig cloudfront:GetRealtimeLogConfig cloudfront:GetResponseHeadersPolicy cloudfront:GetResponseHeadersPolicyConfig cloudfront:GetStreamingDistribution cloudfront:GetStreamingDistributionConfig cloudfront:GetVpcOrigin cloudfront:ListAnycastIpLists cloudfront:ListCachePolicies cloudfront:ListCloudFrontOriginAccessIdentities cloudfront:ListConflictingAliases cloudfront:ListConnectionFunctions cloudfront:ListConnectionGroups cloudfront:ListContinuousDeploymentPolicies cloudfront:ListDistributionTenants cloudfront:ListDistributionTenantsByCustomization cloudfront:ListDistributions cloudfront:ListDistributionsByAnycastIpListId cloudfront:ListDistributionsByCachePolicyId cloudfront:ListDistributionsByConnectionMode cloudfront:ListDistributionsByKeyGroup cloudfront:ListDistributionsByOriginRequestPolicyId cloudfront:ListDistributionsByRealtimeLogConfig cloudfront:ListDistributionsByResponseHeadersPolicyId cloudfront:ListDistributionsByVpcOriginId cloudfront:ListDistributionsByWebACLId cloudfront:ListFieldLevelEncryptionConfigs cloudfront:ListFieldLevelEncryptionProfiles cloudfront:ListFunctions cloudfront:ListInvalidations cloudfront:ListInvalidationsForDistributionTenant cloudfront:ListKeyGroups cloudfront:ListKeyValueStores cloudfront:ListOriginAccessControls cloudfront:ListOriginRequestPolicies cloudfront:ListPublicKeys cloudfront:ListRealtimeLogConfigs cloudfront:ListResponseHeadersPolicies cloudfront:ListStreamingDistributions cloudfront:ListTrustStores cloudfront:PublishConnectionFunction cloudfront:PublishFunction cloudfront:TestConnectionFunction cloudfront:TestFunction cloudfront:UpdateAnycastIpList cloudfront:UpdateCachePolicy cloudfront:UpdateCloudFrontOriginAccessIdentity cloudfront:UpdateConnectionFunction cloudfront:UpdateConnectionGroup cloudfront:UpdateContinuousDeploymentPolicy cloudfront:UpdateDistribution cloudfront:UpdateDistributionTenant cloudfront:UpdateFieldLevelEncryptionConfig cloudfront:UpdateFieldLevelEncryptionProfile cloudfront:UpdateFunction cloudfront:UpdateKeyGroup cloudfront:UpdateKeyValueStore cloudfront:UpdateOriginAccessControl cloudfront:UpdateOriginRequestPolicy cloudfront:UpdatePublicKey cloudfront:UpdateRealtimeLogConfig cloudfront:UpdateResponseHeadersPolicy cloudfront:UpdateTrustStore  | 
| cloudhsm |  cloudhsm:CreateHsm cloudhsm:DeleteBackup cloudhsm:DeleteHsm cloudhsm:DeleteResourcePolicy cloudhsm:DescribeBackups cloudhsm:DescribeClusters cloudhsm:GetResourcePolicy cloudhsm:InitializeCluster cloudhsm:ModifyBackupAttributes cloudhsm:ModifyCluster cloudhsm:PutResourcePolicy cloudhsm:RestoreBackup  | 
| cloudsearch |  cloudsearch:BuildSuggesters cloudsearch:CreateDomain cloudsearch:DefineAnalysisScheme cloudsearch:DefineExpression cloudsearch:DefineIndexField cloudsearch:DefineSuggester cloudsearch:DeleteAnalysisScheme cloudsearch:DeleteDomain cloudsearch:DeleteExpression cloudsearch:DeleteIndexField cloudsearch:DeleteSuggester cloudsearch:DescribeAnalysisSchemes cloudsearch:DescribeAvailabilityOptions cloudsearch:DescribeDomainEndpointOptions cloudsearch:DescribeDomains cloudsearch:DescribeExpressions cloudsearch:DescribeIndexFields cloudsearch:DescribeScalingParameters cloudsearch:DescribeServiceAccessPolicies cloudsearch:DescribeSuggesters cloudsearch:IndexDocuments cloudsearch:ListDomainNames cloudsearch:UpdateAvailabilityOptions cloudsearch:UpdateDomainEndpointOptions cloudsearch:UpdateScalingParameters cloudsearch:UpdateServiceAccessPolicies  | 
| cloudtrail |  cloudtrail:CancelQuery cloudtrail:CreateChannel cloudtrail:CreateDashboard cloudtrail:CreateEventDataStore cloudtrail:CreateTrail cloudtrail:DeleteChannel cloudtrail:DeleteDashboard cloudtrail:DeleteEventDataStore cloudtrail:DeleteResourcePolicy cloudtrail:DeleteTrail cloudtrail:DeregisterOrganizationDelegatedAdmin cloudtrail:DescribeQuery cloudtrail:DescribeTrails cloudtrail:DisableFederation cloudtrail:GenerateQuery cloudtrail:GetChannel cloudtrail:GetDashboard cloudtrail:GetEventConfiguration cloudtrail:GetEventDataStore cloudtrail:GetEventDataStoreData cloudtrail:GetEventSelectors cloudtrail:GetImport cloudtrail:GetInsightSelectors cloudtrail:GetResourcePolicy cloudtrail:GetTrail cloudtrail:GetTrailStatus cloudtrail:ListChannels cloudtrail:ListDashboards cloudtrail:ListEventDataStores cloudtrail:ListImportFailures cloudtrail:ListImports cloudtrail:ListInsightsData cloudtrail:ListPublicKeys cloudtrail:ListQueries cloudtrail:ListTrails cloudtrail:LookupEvents cloudtrail:PutEventConfiguration cloudtrail:PutEventSelectors cloudtrail:PutInsightSelectors cloudtrail:PutResourcePolicy cloudtrail:RegisterOrganizationDelegatedAdmin cloudtrail:RestoreEventDataStore cloudtrail:SearchSampleQueries cloudtrail:StartEventDataStoreIngestion cloudtrail:StartImport cloudtrail:StartLogging cloudtrail:StartQuery cloudtrail:StopEventDataStoreIngestion cloudtrail:StopImport cloudtrail:StopLogging cloudtrail:UpdateChannel cloudtrail:UpdateDashboard cloudtrail:UpdateEventDataStore cloudtrail:UpdateTrail  | 
| cloudwatch |  cloudwatch:DeleteAlarms cloudwatch:DeleteAnomalyDetector cloudwatch:DeleteDashboards cloudwatch:DeleteInsightRules cloudwatch:DeleteMetricStream cloudwatch:DescribeAlarmHistory cloudwatch:DescribeAlarms cloudwatch:DescribeAlarmsForMetric cloudwatch:DescribeAnomalyDetectors cloudwatch:DescribeInsightRules cloudwatch:DisableAlarmActions cloudwatch:DisableInsightRules cloudwatch:EnableAlarmActions cloudwatch:EnableInsightRules cloudwatch:GetDashboard cloudwatch:GetInsightRuleReport cloudwatch:GetMetricStatistics cloudwatch:GetMetricStream cloudwatch:ListDashboards cloudwatch:ListManagedInsightRules cloudwatch:ListMetricStreams cloudwatch:PutAnomalyDetector cloudwatch:PutCompositeAlarm cloudwatch:PutDashboard cloudwatch:PutInsightRule cloudwatch:PutManagedInsightRules cloudwatch:PutMetricAlarm cloudwatch:PutMetricStream cloudwatch:SetAlarmState cloudwatch:StartMetricStreams cloudwatch:StopMetricStreams  | 
| codeartifact |  codeartifact:AssociateExternalConnection codeartifact:CopyPackageVersions codeartifact:CreateDomain codeartifact:CreateRepository codeartifact:DeleteDomain codeartifact:DeleteDomainPermissionsPolicy codeartifact:DeletePackage codeartifact:DeletePackageVersions codeartifact:DeleteRepository codeartifact:DeleteRepositoryPermissionsPolicy codeartifact:DescribeDomain codeartifact:DescribePackage codeartifact:DescribePackageVersion codeartifact:DescribeRepository codeartifact:DisassociateExternalConnection codeartifact:DisposePackageVersions codeartifact:GetAssociatedPackageGroup codeartifact:GetAuthorizationToken codeartifact:GetDomainPermissionsPolicy codeartifact:GetPackageVersionAsset codeartifact:GetPackageVersionReadme codeartifact:GetRepositoryEndpoint codeartifact:GetRepositoryPermissionsPolicy codeartifact:ListDomains codeartifact:ListPackageGroups codeartifact:ListPackageVersionAssets codeartifact:ListPackageVersionDependencies codeartifact:ListPackageVersions codeartifact:ListPackages codeartifact:ListRepositories codeartifact:ListRepositoriesInDomain codeartifact:PublishPackageVersion codeartifact:PutDomainPermissionsPolicy codeartifact:PutPackageMetadata codeartifact:PutPackageOriginConfiguration codeartifact:PutRepositoryPermissionsPolicy codeartifact:ReadFromRepository codeartifact:UpdatePackageVersionsStatus codeartifact:UpdateRepository  | 
| codedeploy |  codedeploy:BatchGetApplicationRevisions codedeploy:BatchGetApplications codedeploy:BatchGetDeploymentGroups codedeploy:BatchGetDeploymentInstances codedeploy:BatchGetDeploymentTargets codedeploy:BatchGetDeployments codedeploy:BatchGetOnPremisesInstances codedeploy:ContinueDeployment codedeploy:CreateApplication codedeploy:CreateDeployment codedeploy:CreateDeploymentConfig codedeploy:CreateDeploymentGroup codedeploy:DeleteApplication codedeploy:DeleteDeploymentConfig codedeploy:DeleteDeploymentGroup codedeploy:DeleteGitHubAccountToken codedeploy:DeleteResourcesByExternalId codedeploy:DeregisterOnPremisesInstance codedeploy:GetApplication codedeploy:GetApplicationRevision codedeploy:GetDeployment codedeploy:GetDeploymentConfig codedeploy:GetDeploymentGroup codedeploy:GetDeploymentInstance codedeploy:GetDeploymentTarget codedeploy:GetOnPremisesInstance codedeploy:ListApplicationRevisions codedeploy:ListApplications codedeploy:ListDeploymentConfigs codedeploy:ListDeploymentGroups codedeploy:ListDeploymentInstances codedeploy:ListDeploymentTargets codedeploy:ListDeployments codedeploy:ListGitHubAccountTokenNames codedeploy:ListOnPremisesInstances codedeploy:PutLifecycleEventHookExecutionStatus codedeploy:RegisterApplicationRevision codedeploy:RegisterOnPremisesInstance codedeploy:SkipWaitTimeForInstanceTermination codedeploy:StopDeployment codedeploy:UpdateApplication codedeploy:UpdateDeploymentGroup  | 
| codeguru-profiler |  codeguru-profiler:AddNotificationChannels codeguru-profiler:BatchGetFrameMetricData codeguru-profiler:CreateProfilingGroup codeguru-profiler:DeleteProfilingGroup codeguru-profiler:DescribeProfilingGroup codeguru-profiler:GetFindingsReportAccountSummary codeguru-profiler:GetNotificationConfiguration codeguru-profiler:GetPolicy codeguru-profiler:GetProfile codeguru-profiler:GetRecommendations codeguru-profiler:ListFindingsReports codeguru-profiler:ListProfileTimes codeguru-profiler:ListProfilingGroups codeguru-profiler:PutPermission codeguru-profiler:RemoveNotificationChannel codeguru-profiler:RemovePermission codeguru-profiler:SubmitFeedback codeguru-profiler:UpdateProfilingGroup  | 
| codeguru-reviewer |  codeguru-reviewer:AssociateRepository codeguru-reviewer:CreateCodeReview codeguru-reviewer:DescribeCodeReview codeguru-reviewer:DescribeRecommendationFeedback codeguru-reviewer:DescribeRepositoryAssociation codeguru-reviewer:DisassociateRepository codeguru-reviewer:ListCodeReviews codeguru-reviewer:ListRecommendationFeedback codeguru-reviewer:ListRecommendations codeguru-reviewer:ListRepositoryAssociations codeguru-reviewer:PutRecommendationFeedback  | 
| codepipeline |  codepipeline:AcknowledgeJob codepipeline:AcknowledgeThirdPartyJob codepipeline:CreateCustomActionType codepipeline:CreatePipeline codepipeline:DeleteCustomActionType codepipeline:DeletePipeline codepipeline:DeleteWebhook codepipeline:DeregisterWebhookWithThirdParty codepipeline:GetActionType codepipeline:GetJobDetails codepipeline:GetPipeline codepipeline:GetPipelineExecution codepipeline:GetPipelineState codepipeline:GetThirdPartyJobDetails codepipeline:ListActionExecutions codepipeline:ListActionTypes codepipeline:ListPipelineExecutions codepipeline:ListPipelines codepipeline:ListRuleExecutions codepipeline:ListRuleTypes codepipeline:ListWebhooks codepipeline:OverrideStageCondition codepipeline:PollForJobs codepipeline:PollForThirdPartyJobs codepipeline:PutActionRevision codepipeline:PutApprovalResult codepipeline:PutJobFailureResult codepipeline:PutJobSuccessResult codepipeline:PutThirdPartyJobFailureResult codepipeline:PutThirdPartyJobSuccessResult codepipeline:PutWebhook codepipeline:RegisterWebhookWithThirdParty codepipeline:RollbackStage codepipeline:StartPipelineExecution codepipeline:StopPipelineExecution codepipeline:UpdateActionType codepipeline:UpdatePipeline  | 
| codestar |  codestar:AssociateTeamMember codestar:CreateProject codestar:CreateUserProfile codestar:DeleteProject codestar:DeleteUserProfile codestar:DescribeProject codestar:DescribeUserProfile codestar:DisassociateTeamMember codestar:ListProjects codestar:ListResources codestar:ListTeamMembers codestar:ListUserProfiles codestar:UpdateProject codestar:UpdateTeamMember codestar:UpdateUserProfile  | 
| codestar-notifications |  codestar-notifications:CreateNotificationRule codestar-notifications:DeleteNotificationRule codestar-notifications:DeleteTarget codestar-notifications:DescribeNotificationRule codestar-notifications:ListEventTypes codestar-notifications:ListNotificationRules codestar-notifications:ListTargets codestar-notifications:Subscribe codestar-notifications:Unsubscribe codestar-notifications:UpdateNotificationRule  | 
| cognito-identity |  cognito-identity:CreateIdentityPool cognito-identity:DeleteIdentities cognito-identity:DeleteIdentityPool cognito-identity:DescribeIdentity cognito-identity:DescribeIdentityPool cognito-identity:GetIdentityPoolRoles cognito-identity:ListIdentities cognito-identity:ListIdentityPools cognito-identity:LookupDeveloperIdentity cognito-identity:MergeDeveloperIdentities cognito-identity:SetIdentityPoolRoles cognito-identity:UnlinkDeveloperIdentity cognito-identity:UpdateIdentityPool  | 
| cognito-idp |  cognito-idp:AddCustomAttributes cognito-idp:AdminAddUserToGroup cognito-idp:AdminConfirmSignUp cognito-idp:AdminCreateUser cognito-idp:AdminDeleteUser cognito-idp:AdminDeleteUserAttributes cognito-idp:AdminDisableProviderForUser cognito-idp:AdminDisableUser cognito-idp:AdminEnableUser cognito-idp:AdminForgetDevice cognito-idp:AdminGetDevice cognito-idp:AdminGetUser cognito-idp:AdminInitiateAuth cognito-idp:AdminLinkProviderForUser cognito-idp:AdminListDevices cognito-idp:AdminListGroupsForUser cognito-idp:AdminListUserAuthEvents cognito-idp:AdminRemoveUserFromGroup cognito-idp:AdminResetUserPassword cognito-idp:AdminRespondToAuthChallenge cognito-idp:AdminSetUserMFAPreference cognito-idp:AdminSetUserPassword cognito-idp:AdminSetUserSettings cognito-idp:AdminUpdateAuthEventFeedback cognito-idp:AdminUpdateDeviceStatus cognito-idp:AdminUpdateUserAttributes cognito-idp:AdminUserGlobalSignOut cognito-idp:AssociateSoftwareToken cognito-idp:ChangePassword cognito-idp:ConfirmDevice cognito-idp:ConfirmForgotPassword cognito-idp:ConfirmSignUp cognito-idp:CreateGroup cognito-idp:CreateIdentityProvider cognito-idp:CreateManagedLoginBranding cognito-idp:CreateResourceServer cognito-idp:CreateTerms cognito-idp:CreateUserImportJob cognito-idp:CreateUserPool cognito-idp:CreateUserPoolClient cognito-idp:CreateUserPoolDomain cognito-idp:DeleteGroup cognito-idp:DeleteIdentityProvider cognito-idp:DeleteManagedLoginBranding cognito-idp:DeleteResourceServer cognito-idp:DeleteTerms cognito-idp:DeleteUser cognito-idp:DeleteUserAttributes cognito-idp:DeleteUserPool cognito-idp:DeleteUserPoolClient cognito-idp:DeleteUserPoolDomain cognito-idp:DescribeIdentityProvider cognito-idp:DescribeManagedLoginBranding cognito-idp:DescribeManagedLoginBrandingByClient cognito-idp:DescribeResourceServer cognito-idp:DescribeRiskConfiguration cognito-idp:DescribeTerms cognito-idp:DescribeUserImportJob cognito-idp:DescribeUserPool cognito-idp:DescribeUserPoolClient cognito-idp:DescribeUserPoolDomain cognito-idp:ForgetDevice cognito-idp:ForgotPassword cognito-idp:GetCSVHeader cognito-idp:GetDevice cognito-idp:GetGroup cognito-idp:GetIdentityProviderByIdentifier cognito-idp:GetLogDeliveryConfiguration cognito-idp:GetSigningCertificate cognito-idp:GetUICustomization cognito-idp:GetUser cognito-idp:GetUserAttributeVerificationCode cognito-idp:GetUserPoolMfaConfig cognito-idp:GlobalSignOut cognito-idp:InitiateAuth cognito-idp:ListDevices cognito-idp:ListGroups cognito-idp:ListIdentityProviders cognito-idp:ListResourceServers cognito-idp:ListTerms cognito-idp:ListUserImportJobs cognito-idp:ListUserPoolClients cognito-idp:ListUserPools cognito-idp:ListUsers cognito-idp:ListUsersInGroup cognito-idp:ResendConfirmationCode cognito-idp:RespondToAuthChallenge cognito-idp:RevokeToken cognito-idp:SetLogDeliveryConfiguration cognito-idp:SetRiskConfiguration cognito-idp:SetUICustomization cognito-idp:SetUserMFAPreference cognito-idp:SetUserPoolMfaConfig cognito-idp:SetUserSettings cognito-idp:SignUp cognito-idp:StartUserImportJob cognito-idp:StopUserImportJob cognito-idp:UpdateAuthEventFeedback cognito-idp:UpdateDeviceStatus cognito-idp:UpdateGroup cognito-idp:UpdateIdentityProvider cognito-idp:UpdateResourceServer cognito-idp:UpdateTerms cognito-idp:UpdateUserAttributes cognito-idp:UpdateUserPool cognito-idp:UpdateUserPoolClient cognito-idp:UpdateUserPoolDomain cognito-idp:VerifySoftwareToken cognito-idp:VerifyUserAttribute  | 
| cognito-sync |  cognito-sync:BulkPublish cognito-sync:DeleteDataset cognito-sync:DescribeDataset cognito-sync:DescribeIdentityPoolUsage cognito-sync:DescribeIdentityUsage cognito-sync:GetBulkPublishDetails cognito-sync:GetCognitoEvents cognito-sync:GetIdentityPoolConfiguration cognito-sync:ListDatasets cognito-sync:ListIdentityPoolUsage cognito-sync:ListRecords cognito-sync:RegisterDevice cognito-sync:SetCognitoEvents cognito-sync:SetIdentityPoolConfiguration cognito-sync:SubscribeToDataset cognito-sync:UnsubscribeFromDataset cognito-sync:UpdateRecords  | 
| comprehendmedical |  comprehendmedical:DescribeEntitiesDetectionV2Job comprehendmedical:DescribeICD10CMInferenceJob comprehendmedical:DescribePHIDetectionJob comprehendmedical:DescribeRxNormInferenceJob comprehendmedical:DescribeSNOMEDCTInferenceJob comprehendmedical:DetectEntitiesV2 comprehendmedical:DetectPHI comprehendmedical:InferICD10CM comprehendmedical:InferRxNorm comprehendmedical:InferSNOMEDCT comprehendmedical:ListEntitiesDetectionV2Jobs comprehendmedical:ListICD10CMInferenceJobs comprehendmedical:ListPHIDetectionJobs comprehendmedical:ListRxNormInferenceJobs comprehendmedical:ListSNOMEDCTInferenceJobs comprehendmedical:StartEntitiesDetectionV2Job comprehendmedical:StartICD10CMInferenceJob comprehendmedical:StartPHIDetectionJob comprehendmedical:StartRxNormInferenceJob comprehendmedical:StartSNOMEDCTInferenceJob comprehendmedical:StopEntitiesDetectionV2Job comprehendmedical:StopICD10CMInferenceJob comprehendmedical:StopPHIDetectionJob comprehendmedical:StopRxNormInferenceJob comprehendmedical:StopSNOMEDCTInferenceJob  | 
| compute-optimizer |  compute-optimizer:DeleteRecommendationPreferences compute-optimizer:DescribeRecommendationExportJobs compute-optimizer:ExportAutoScalingGroupRecommendations compute-optimizer:ExportEBSVolumeRecommendations compute-optimizer:ExportEC2InstanceRecommendations compute-optimizer:ExportECSServiceRecommendations compute-optimizer:ExportIdleRecommendations compute-optimizer:ExportLambdaFunctionRecommendations compute-optimizer:ExportLicenseRecommendations compute-optimizer:ExportRDSDatabaseRecommendations compute-optimizer:GetEC2RecommendationProjectedMetrics compute-optimizer:GetECSServiceRecommendationProjectedMetrics compute-optimizer:GetEffectiveRecommendationPreferences compute-optimizer:GetEnrollmentStatus compute-optimizer:GetEnrollmentStatusesForOrganization compute-optimizer:GetRDSDatabaseRecommendationProjectedMetrics compute-optimizer:GetRecommendationPreferences compute-optimizer:GetRecommendationSummaries compute-optimizer:PutRecommendationPreferences compute-optimizer:UpdateEnrollmentStatus  | 
| config |  config:BatchGetResourceConfig config:DeleteAggregationAuthorization config:DeleteConfigRule config:DeleteConfigurationAggregator config:DeleteConfigurationRecorder config:DeleteConformancePack config:DeleteDeliveryChannel config:DeleteEvaluationResults config:DeleteOrganizationConfigRule config:DeleteOrganizationConformancePack config:DeletePendingAggregationRequest config:DeleteRemediationConfiguration config:DeleteRemediationExceptions config:DeleteResourceConfig config:DeleteRetentionConfiguration config:DeleteStoredQuery config:DeliverConfigSnapshot config:DescribeAggregateComplianceByConfigRules config:DescribeAggregateComplianceByConformancePacks config:DescribeAggregationAuthorizations config:DescribeComplianceByConfigRule config:DescribeComplianceByResource config:DescribeConfigRuleEvaluationStatus config:DescribeConfigRules config:DescribeConfigurationAggregatorSourcesStatus config:DescribeConfigurationAggregators config:DescribeConfigurationRecorderStatus config:DescribeConfigurationRecorders config:DescribeConformancePackCompliance config:DescribeConformancePackStatus config:DescribeConformancePacks config:DescribeDeliveryChannelStatus config:DescribeDeliveryChannels config:DescribeOrganizationConfigRuleStatuses config:DescribeOrganizationConfigRules config:DescribeOrganizationConformancePackStatuses config:DescribeOrganizationConformancePacks config:DescribePendingAggregationRequests config:DescribeRemediationConfigurations config:DescribeRemediationExceptions config:DescribeRemediationExecutionStatus config:DescribeRetentionConfigurations config:GetComplianceDetailsByConfigRule config:GetComplianceDetailsByResource config:GetComplianceSummaryByConfigRule config:GetComplianceSummaryByResourceType config:GetConformancePackComplianceDetails config:GetConformancePackComplianceSummary config:GetCustomRulePolicy config:GetDiscoveredResourceCounts config:GetOrganizationConfigRuleDetailedStatus config:GetOrganizationConformancePackDetailedStatus config:GetOrganizationCustomRulePolicy config:GetResourceConfigHistory config:GetResourceEvaluationSummary config:GetStoredQuery config:ListConfigurationRecorders config:ListConformancePackComplianceScores config:ListDiscoveredResources config:ListResourceEvaluations config:ListStoredQueries config:PutConfigRule config:PutConfigurationAggregator config:PutConfigurationRecorder config:PutConformancePack config:PutDeliveryChannel config:PutEvaluations config:PutExternalEvaluation config:PutOrganizationConfigRule config:PutOrganizationConformancePack config:PutRemediationConfigurations config:PutRemediationExceptions config:PutResourceConfig config:PutRetentionConfiguration config:PutStoredQuery config:SelectResourceConfig config:StartConfigRulesEvaluation config:StartConfigurationRecorder config:StartRemediationExecution config:StartResourceEvaluation config:StopConfigurationRecorder  | 
| connect |  connect:ActivateEvaluationForm connect:AssociateAnalyticsDataSet connect:AssociateApprovedOrigin connect:AssociateBot connect:AssociateContactWithUser connect:AssociateDefaultVocabulary connect:AssociateEmailAddressAlias connect:AssociateFlow connect:AssociateInstanceStorageConfig connect:AssociateLambdaFunction connect:AssociateLexBot connect:AssociatePhoneNumberContactFlow connect:AssociateQueueQuickConnects connect:AssociateRoutingProfileQueues connect:AssociateSecurityKey connect:AssociateUserProficiencies connect:BatchAssociateAnalyticsDataSet connect:BatchCreateDataTableValue connect:BatchDeleteDataTableValue connect:BatchDescribeDataTableValue connect:BatchDisassociateAnalyticsDataSet connect:BatchGetFlowAssociation connect:BatchPutContact connect:BatchUpdateDataTableValue connect:ClaimPhoneNumber connect:CreateAgentStatus connect:CreateContact connect:CreateContactFlow connect:CreateContactFlowModule connect:CreateContactFlowModuleAlias connect:CreateContactFlowModuleVersion connect:CreateContactFlowVersion connect:CreateDataTable connect:CreateDataTableAttribute connect:CreateEmailAddress connect:CreateEvaluationForm connect:CreateHoursOfOperation connect:CreateInstance connect:CreateIntegrationAssociation connect:CreateParticipant connect:CreatePersistentContactAssociation connect:CreatePredefinedAttribute connect:CreatePrompt connect:CreatePushNotificationRegistration connect:CreateQueue connect:CreateQuickConnect connect:CreateRoutingProfile connect:CreateRule connect:CreateSecurityProfile connect:CreateTaskTemplate connect:CreateTrafficDistributionGroup connect:CreateUseCase connect:CreateUser connect:CreateUserHierarchyGroup connect:CreateView connect:CreateViewVersion connect:CreateVocabulary connect:CreateWorkspace connect:DeactivateEvaluationForm connect:DeleteContactEvaluation connect:DeleteContactFlow connect:DeleteContactFlowModule connect:DeleteContactFlowModuleAlias connect:DeleteContactFlowModuleVersion connect:DeleteContactFlowVersion connect:DeleteDataTable connect:DeleteDataTableAttribute connect:DeleteEmailAddress connect:DeleteEvaluationForm connect:DeleteHoursOfOperation connect:DeleteHoursOfOperationOverride connect:DeleteInstance connect:DeleteIntegrationAssociation connect:DeletePredefinedAttribute connect:DeletePrompt connect:DeletePushNotificationRegistration connect:DeleteQueue connect:DeleteQuickConnect connect:DeleteRoutingProfile connect:DeleteRule connect:DeleteSecurityProfile connect:DeleteTaskTemplate connect:DeleteTrafficDistributionGroup connect:DeleteUseCase connect:DeleteUser connect:DeleteUserHierarchyGroup connect:DeleteView connect:DeleteVocabulary connect:DeleteWorkspace connect:DeleteWorkspaceMedia connect:DescribeAuthenticationProfile connect:DescribeContactFlowModuleAlias connect:DescribeDataTableAttribute connect:DescribeHoursOfOperationOverride connect:DescribeInstanceAttribute connect:DescribeInstanceStorageConfig connect:DescribePhoneNumber connect:DescribeRule connect:DescribeTrafficDistributionGroup connect:DescribeUserHierarchyStructure connect:DescribeVocabulary connect:DisassociateAnalyticsDataSet connect:DisassociateApprovedOrigin connect:DisassociateBot connect:DisassociateEmailAddressAlias connect:DisassociateFlow connect:DisassociateInstanceStorageConfig connect:DisassociateLambdaFunction connect:DisassociateLexBot connect:DisassociatePhoneNumberContactFlow connect:DisassociateQueueQuickConnects connect:DisassociateRoutingProfileQueues connect:DisassociateSecurityKey connect:DisassociateUserProficiencies connect:DismissUserContact connect:EvaluateDataTableValues connect:GetContactAttributes connect:GetContactMetrics connect:GetCurrentMetricData connect:GetCurrentUserData connect:GetEffectiveHoursOfOperations connect:GetFederationToken connect:GetFlowAssociation connect:GetMetricData connect:GetMetricDataV2 connect:GetPromptFile connect:GetTaskTemplate connect:GetTrafficDistribution connect:ImportPhoneNumber connect:ImportWorkspaceMedia connect:ListAnalyticsDataAssociations connect:ListAnalyticsDataLakeDataSets connect:ListApprovedOrigins connect:ListAssociatedContacts connect:ListAuthenticationProfiles connect:ListBots connect:ListContactEvaluations connect:ListContactFlowModuleAliases connect:ListContactFlowModuleVersions connect:ListContactFlowModules connect:ListContactFlowVersions connect:ListContactFlows connect:ListContactReferences connect:ListDataTableAttributes connect:ListDataTablePrimaryValues connect:ListDataTableValues connect:ListDataTables connect:ListDefaultVocabularies connect:ListEvaluationFormVersions connect:ListEvaluationForms connect:ListFlowAssociations connect:ListHoursOfOperations connect:ListInstanceAttributes connect:ListInstanceStorageConfigs connect:ListIntegrationAssociations connect:ListLambdaFunctions connect:ListLexBots connect:ListPhoneNumbers connect:ListPhoneNumbersV2 connect:ListPredefinedAttributes connect:ListPrompts connect:ListQueueQuickConnects connect:ListQueues connect:ListQuickConnects connect:ListRealtimeContactAnalysisSegmentsV2 connect:ListRoutingProfileManualAssignmentQueues connect:ListRoutingProfileQueues connect:ListRoutingProfiles connect:ListRules connect:ListSecurityKeys connect:ListSecurityProfileApplications connect:ListSecurityProfileFlowModules connect:ListSecurityProfilePermissions connect:ListSecurityProfiles connect:ListTaskTemplates connect:ListTrafficDistributionGroups connect:ListUseCases connect:ListUserHierarchyGroups connect:ListUsers connect:ListViewVersions connect:ListViews connect:ListWorkspaceMedia connect:ListWorkspacePages connect:ListWorkspaces connect:MonitorContact connect:PauseContact connect:PutUserStatus connect:ReleasePhoneNumber connect:ReplicateInstance connect:ResumeContact connect:ResumeContactRecording connect:SearchAgentStatuses connect:SearchAvailablePhoneNumbers connect:SearchContactEvaluations connect:SearchContactFlowModules connect:SearchContactFlows connect:SearchContacts connect:SearchDataTables connect:SearchEmailAddresses connect:SearchEvaluationForms connect:SearchHoursOfOperations connect:SearchPredefinedAttributes connect:SearchPrompts connect:SearchQueues connect:SearchQuickConnects connect:SearchRoutingProfiles connect:SearchSecurityProfiles connect:SearchUserHierarchyGroups connect:SearchViews connect:SearchVocabularies connect:SearchWorkspaceAssociations connect:SearchWorkspaces connect:SendChatIntegrationEvent connect:SendOutboundEmail connect:StartChatContact connect:StartContactEvaluation connect:StartContactMediaProcessing connect:StartContactRecording connect:StartContactStreaming connect:StartEmailContact connect:StartOutboundChatContact connect:StartOutboundEmailContact connect:StartOutboundVoiceContact connect:StartScreenSharing connect:StartTaskContact connect:StartWebRTCContact connect:StopContact connect:StopContactMediaProcessing connect:StopContactRecording connect:StopContactStreaming connect:SubmitContactEvaluation connect:SuspendContactRecording connect:TransferContact connect:UpdateAgentStatus connect:UpdateAuthenticationProfile connect:UpdateContact connect:UpdateContactAttributes connect:UpdateContactEvaluation connect:UpdateContactFlowContent connect:UpdateContactFlowMetadata connect:UpdateContactFlowModuleAlias connect:UpdateContactFlowModuleContent connect:UpdateContactFlowModuleMetadata connect:UpdateContactFlowName connect:UpdateContactRoutingData connect:UpdateContactSchedule connect:UpdateDataTableAttribute connect:UpdateDataTableMetadata connect:UpdateDataTablePrimaryValues connect:UpdateEmailAddressMetadata connect:UpdateEvaluationForm connect:UpdateHoursOfOperation connect:UpdateHoursOfOperationOverride connect:UpdateInstanceAttribute connect:UpdateInstanceStorageConfig connect:UpdateParticipantAuthentication connect:UpdateParticipantRoleConfig connect:UpdatePhoneNumber connect:UpdatePhoneNumberMetadata connect:UpdatePredefinedAttribute connect:UpdatePrompt connect:UpdateQueueHoursOfOperation connect:UpdateQueueMaxContacts connect:UpdateQueueName connect:UpdateQueueOutboundCallerConfig connect:UpdateQueueOutboundEmailConfig connect:UpdateQueueStatus connect:UpdateQuickConnectConfig connect:UpdateQuickConnectName connect:UpdateRoutingProfileAgentAvailabilityTimer connect:UpdateRoutingProfileConcurrency connect:UpdateRoutingProfileDefaultOutboundQueue connect:UpdateRoutingProfileName connect:UpdateRoutingProfileQueues connect:UpdateRule connect:UpdateSecurityProfile connect:UpdateTaskTemplate connect:UpdateTrafficDistribution connect:UpdateUserHierarchy connect:UpdateUserHierarchyGroupName connect:UpdateUserHierarchyStructure connect:UpdateUserIdentityInfo connect:UpdateUserPhoneConfig connect:UpdateUserProficiencies connect:UpdateUserRoutingProfile connect:UpdateUserSecurityProfiles connect:UpdateViewContent connect:UpdateViewMetadata connect:UpdateWorkspaceMetadata connect:UpdateWorkspaceTheme connect:UpdateWorkspaceVisibility  | 
| cur |  cur:DeleteReportDefinition cur:DescribeReportDefinitions cur:ModifyReportDefinition cur:PutReportDefinition  | 
| databrew |  databrew:BatchDeleteRecipeVersion databrew:CreateDataset databrew:CreateProfileJob databrew:CreateProject databrew:CreateRecipe databrew:CreateRecipeJob databrew:CreateRuleset databrew:CreateSchedule databrew:DeleteDataset databrew:DeleteJob databrew:DeleteProject databrew:DeleteRecipeVersion databrew:DeleteRuleset databrew:DeleteSchedule databrew:DescribeDataset databrew:DescribeJob databrew:DescribeJobRun databrew:DescribeProject databrew:DescribeRecipe databrew:DescribeRuleset databrew:DescribeSchedule databrew:ListDatasets databrew:ListJobRuns databrew:ListJobs databrew:ListProjects databrew:ListRecipeVersions databrew:ListRecipes databrew:ListRulesets databrew:ListSchedules databrew:PublishRecipe databrew:SendProjectSessionAction databrew:StartJobRun databrew:StartProjectSession databrew:StopJobRun databrew:UpdateDataset databrew:UpdateProfileJob databrew:UpdateProject databrew:UpdateRecipe databrew:UpdateRecipeJob databrew:UpdateRuleset databrew:UpdateSchedule  | 
| dataexchange |  dataexchange:AcceptDataGrant dataexchange:CancelJob dataexchange:CreateDataGrant dataexchange:CreateDataSet dataexchange:CreateEventAction dataexchange:CreateJob dataexchange:CreateRevision dataexchange:DeleteAsset dataexchange:DeleteDataGrant dataexchange:DeleteEventAction dataexchange:DeleteRevision dataexchange:GetDataGrant dataexchange:GetEventAction dataexchange:GetJob dataexchange:GetReceivedDataGrant dataexchange:ListDataGrants dataexchange:ListDataSetRevisions dataexchange:ListDataSets dataexchange:ListEventActions dataexchange:ListJobs dataexchange:ListReceivedDataGrants dataexchange:ListRevisionAssets dataexchange:RevokeRevision dataexchange:SendDataSetNotification dataexchange:StartJob dataexchange:UpdateAsset dataexchange:UpdateDataSet dataexchange:UpdateEventAction dataexchange:UpdateRevision  | 
| datapipeline |  datapipeline:ActivatePipeline datapipeline:CreatePipeline datapipeline:DeactivatePipeline datapipeline:DeletePipeline datapipeline:DescribeObjects datapipeline:DescribePipelines datapipeline:EvaluateExpression datapipeline:GetPipelineDefinition datapipeline:ListPipelines datapipeline:PollForTask datapipeline:PutPipelineDefinition datapipeline:QueryObjects datapipeline:ReportTaskProgress datapipeline:ReportTaskRunnerHeartbeat datapipeline:SetStatus datapipeline:SetTaskStatus datapipeline:ValidatePipelineDefinition  | 
| dax |  dax:CreateCluster dax:DecreaseReplicationFactor dax:DeleteCluster dax:DeleteParameterGroup dax:DeleteSubnetGroup dax:DescribeClusters dax:DescribeDefaultParameters dax:DescribeEvents dax:DescribeParameterGroups dax:DescribeParameters dax:DescribeSubnetGroups dax:IncreaseReplicationFactor dax:RebootNode dax:UpdateCluster dax:UpdateParameterGroup dax:UpdateSubnetGroup  | 
| devicefarm |  devicefarm:CreateDevicePool devicefarm:CreateInstanceProfile devicefarm:CreateNetworkProfile devicefarm:CreateProject devicefarm:CreateRemoteAccessSession devicefarm:CreateTestGridProject devicefarm:CreateTestGridUrl devicefarm:CreateUpload devicefarm:CreateVPCEConfiguration devicefarm:DeleteDevicePool devicefarm:DeleteInstanceProfile devicefarm:DeleteNetworkProfile devicefarm:DeleteProject devicefarm:DeleteRemoteAccessSession devicefarm:DeleteRun devicefarm:DeleteTestGridProject devicefarm:DeleteUpload devicefarm:DeleteVPCEConfiguration devicefarm:GetAccountSettings devicefarm:GetDevice devicefarm:GetDeviceInstance devicefarm:GetDevicePool devicefarm:GetDevicePoolCompatibility devicefarm:GetInstanceProfile devicefarm:GetJob devicefarm:GetNetworkProfile devicefarm:GetOfferingStatus devicefarm:GetProject devicefarm:GetRemoteAccessSession devicefarm:GetRun devicefarm:GetSuite devicefarm:GetTest devicefarm:GetTestGridProject devicefarm:GetTestGridSession devicefarm:GetUpload devicefarm:GetVPCEConfiguration devicefarm:ListArtifacts devicefarm:ListDeviceInstances devicefarm:ListDevicePools devicefarm:ListDevices devicefarm:ListInstanceProfiles devicefarm:ListJobs devicefarm:ListNetworkProfiles devicefarm:ListOfferingPromotions devicefarm:ListOfferingTransactions devicefarm:ListOfferings devicefarm:ListProjects devicefarm:ListRemoteAccessSessions devicefarm:ListRuns devicefarm:ListSamples devicefarm:ListSuites devicefarm:ListTestGridProjects devicefarm:ListTestGridSessionActions devicefarm:ListTestGridSessionArtifacts devicefarm:ListTestGridSessions devicefarm:ListTests devicefarm:ListUniqueProblems devicefarm:ListUploads devicefarm:ListVPCEConfigurations devicefarm:PurchaseOffering devicefarm:RenewOffering devicefarm:ScheduleRun devicefarm:StopJob devicefarm:StopRemoteAccessSession devicefarm:StopRun devicefarm:UpdateDeviceInstance devicefarm:UpdateDevicePool devicefarm:UpdateInstanceProfile devicefarm:UpdateNetworkProfile devicefarm:UpdateProject devicefarm:UpdateTestGridProject devicefarm:UpdateUpload devicefarm:UpdateVPCEConfiguration  | 
| devops-guru |  devops-guru:AddNotificationChannel devops-guru:DeleteInsight devops-guru:DescribeAccountHealth devops-guru:DescribeAccountOverview devops-guru:DescribeAnomaly devops-guru:DescribeEventSourcesConfig devops-guru:DescribeFeedback devops-guru:DescribeInsight devops-guru:DescribeOrganizationHealth devops-guru:DescribeOrganizationOverview devops-guru:DescribeOrganizationResourceCollectionHealth devops-guru:DescribeResourceCollectionHealth devops-guru:DescribeServiceIntegration devops-guru:GetCostEstimation devops-guru:GetResourceCollection devops-guru:ListAnomaliesForInsight devops-guru:ListAnomalousLogGroups devops-guru:ListEvents devops-guru:ListInsights devops-guru:ListMonitoredResources devops-guru:ListNotificationChannels devops-guru:ListOrganizationInsights devops-guru:ListRecommendations devops-guru:PutFeedback devops-guru:RemoveNotificationChannel devops-guru:SearchInsights devops-guru:SearchOrganizationInsights devops-guru:StartCostEstimation devops-guru:UpdateEventSourcesConfig devops-guru:UpdateResourceCollection devops-guru:UpdateServiceIntegration  | 
| directconnect |  directconnect:AcceptDirectConnectGatewayAssociationProposal directconnect:AllocateConnectionOnInterconnect directconnect:AllocateHostedConnection directconnect:AllocatePrivateVirtualInterface directconnect:AllocatePublicVirtualInterface directconnect:AllocateTransitVirtualInterface directconnect:AssociateConnectionWithLag directconnect:AssociateHostedConnection directconnect:AssociateMacSecKey directconnect:AssociateVirtualInterface directconnect:ConfirmConnection directconnect:ConfirmCustomerAgreement directconnect:ConfirmPrivateVirtualInterface directconnect:ConfirmPublicVirtualInterface directconnect:ConfirmTransitVirtualInterface directconnect:CreateBGPPeer directconnect:CreateConnection directconnect:CreateDirectConnectGateway directconnect:CreateDirectConnectGatewayAssociation directconnect:CreateDirectConnectGatewayAssociationProposal directconnect:CreateInterconnect directconnect:CreateLag directconnect:CreatePrivateVirtualInterface directconnect:CreatePublicVirtualInterface directconnect:CreateTransitVirtualInterface directconnect:DeleteBGPPeer directconnect:DeleteConnection directconnect:DeleteDirectConnectGateway directconnect:DeleteDirectConnectGatewayAssociation directconnect:DeleteDirectConnectGatewayAssociationProposal directconnect:DeleteInterconnect directconnect:DeleteLag directconnect:DeleteVirtualInterface directconnect:DescribeConnectionLoa directconnect:DescribeConnections directconnect:DescribeConnectionsOnInterconnect directconnect:DescribeCustomerMetadata directconnect:DescribeDirectConnectGatewayAssociationProposals directconnect:DescribeDirectConnectGatewayAssociations directconnect:DescribeDirectConnectGatewayAttachments directconnect:DescribeDirectConnectGateways directconnect:DescribeHostedConnections directconnect:DescribeInterconnectLoa directconnect:DescribeInterconnects directconnect:DescribeLags directconnect:DescribeLoa directconnect:DescribeLocations directconnect:DescribeRouterConfiguration directconnect:DescribeVirtualGateways directconnect:DescribeVirtualInterfaces directconnect:DisassociateConnectionFromLag directconnect:DisassociateMacSecKey directconnect:ListVirtualInterfaceTestHistory directconnect:StartBgpFailoverTest directconnect:StopBgpFailoverTest directconnect:UpdateConnection directconnect:UpdateDirectConnectGateway directconnect:UpdateDirectConnectGatewayAssociation directconnect:UpdateLag directconnect:UpdateVirtualInterfaceAttributes  | 
| dlm |  dlm:CreateLifecyclePolicy dlm:DeleteLifecyclePolicy dlm:GetLifecyclePolicies dlm:GetLifecyclePolicy dlm:UpdateLifecyclePolicy  | 
| dms |  dms:ApplyPendingMaintenanceAction dms:AssociateExtensionPack dms:BatchStartRecommendations dms:CancelMetadataModelCreation dms:CancelReplicationTaskAssessmentRun dms:CreateDataProvider dms:CreateEndpoint dms:CreateEventSubscription dms:CreateInstanceProfile dms:CreateMigrationProject dms:CreateReplicationConfig dms:CreateReplicationInstance dms:CreateReplicationSubnetGroup dms:CreateReplicationTask dms:DeleteCertificate dms:DeleteConnection dms:DeleteDataMigration dms:DeleteDataProvider dms:DeleteEndpoint dms:DeleteEventSubscription dms:DeleteFleetAdvisorCollector dms:DeleteFleetAdvisorDatabases dms:DeleteInstanceProfile dms:DeleteMigrationProject dms:DeleteReplicationConfig dms:DeleteReplicationInstance dms:DeleteReplicationSubnetGroup dms:DeleteReplicationTask dms:DeleteReplicationTaskAssessmentRun dms:DescribeAccountAttributes dms:DescribeApplicableIndividualAssessments dms:DescribeCertificates dms:DescribeConnections dms:DescribeDataMigrations dms:DescribeEndpointSettings dms:DescribeEndpointTypes dms:DescribeEndpoints dms:DescribeEngineVersions dms:DescribeEventCategories dms:DescribeEventSubscriptions dms:DescribeEvents dms:DescribeFleetAdvisorCollectors dms:DescribeFleetAdvisorDatabases dms:DescribeFleetAdvisorLsaAnalysis dms:DescribeFleetAdvisorSchemaObjectSummary dms:DescribeFleetAdvisorSchemas dms:DescribeMetadataModel dms:DescribeMetadataModelChildren dms:DescribeMetadataModelCreations dms:DescribeMetadataModelImports dms:DescribeOrderableReplicationInstances dms:DescribePendingMaintenanceActions dms:DescribeRecommendationLimitations dms:DescribeRecommendations dms:DescribeRefreshSchemasStatus dms:DescribeReplicationConfigs dms:DescribeReplicationInstanceTaskLogs dms:DescribeReplicationInstances dms:DescribeReplicationSubnetGroups dms:DescribeReplicationTableStatistics dms:DescribeReplicationTaskAssessmentResults dms:DescribeReplicationTaskAssessmentRuns dms:DescribeReplicationTaskIndividualAssessments dms:DescribeReplicationTasks dms:DescribeReplications dms:DescribeSchemas dms:DescribeTableStatistics dms:ExportMetadataModelAssessment dms:ImportCertificate dms:ListDataProviders dms:ListExtensionPacks dms:ListInstanceProfiles dms:ListMetadataModelAssessments dms:ListMetadataModelConversions dms:ListMetadataModelExports dms:ListMigrationProjects dms:ModifyDataMigration dms:ModifyEndpoint dms:ModifyEventSubscription dms:ModifyReplicationConfig dms:ModifyReplicationInstance dms:ModifyReplicationSubnetGroup dms:ModifyReplicationTask dms:MoveReplicationTask dms:RebootReplicationInstance dms:RefreshSchemas dms:ReloadReplicationTables dms:ReloadTables dms:RunFleetAdvisorLsaAnalysis dms:StartMetadataModelAssessment dms:StartMetadataModelConversion dms:StartMetadataModelCreation dms:StartMetadataModelExportAsScripts dms:StartMetadataModelExportToTarget dms:StartRecommendations dms:StartReplication dms:StartReplicationTask dms:StartReplicationTaskAssessment dms:StopDataMigration dms:StopReplicationTask dms:TestConnection dms:UpdateConversionConfiguration dms:UpdateDataProvider dms:UpdateInstanceProfile dms:UpdateMigrationProject dms:UpdateSubscriptionsToEventBridge  | 
| docdb-elastic |  docdb-elastic:ApplyPendingMaintenanceAction docdb-elastic:CopyClusterSnapshot docdb-elastic:DeleteCluster docdb-elastic:DeleteClusterSnapshot docdb-elastic:GetCluster docdb-elastic:GetClusterSnapshot docdb-elastic:GetPendingMaintenanceAction docdb-elastic:ListClusterSnapshots docdb-elastic:ListClusters docdb-elastic:ListPendingMaintenanceActions docdb-elastic:RestoreClusterFromSnapshot docdb-elastic:StartCluster docdb-elastic:StopCluster docdb-elastic:UpdateCluster  | 
| dynamodb |  dynamodb:AssociateTableReplica dynamodb:CreateBackup dynamodb:CreateGlobalTable dynamodb:CreateTable dynamodb:DeleteBackup dynamodb:DeleteTable dynamodb:DescribeBackup dynamodb:DescribeContinuousBackups dynamodb:DescribeContributorInsights dynamodb:DescribeEndpoints dynamodb:DescribeExport dynamodb:DescribeGlobalTable dynamodb:DescribeGlobalTableSettings dynamodb:DescribeImport dynamodb:DescribeKinesisStreamingDestination dynamodb:DescribeLimits dynamodb:DescribeStream dynamodb:DescribeTable dynamodb:DescribeTableReplicaAutoScaling dynamodb:DescribeTimeToLive dynamodb:DisableKinesisStreamingDestination dynamodb:EnableKinesisStreamingDestination dynamodb:ExportTableToPointInTime dynamodb:GetResourcePolicy dynamodb:ImportTable dynamodb:ListBackups dynamodb:ListContributorInsights dynamodb:ListExports dynamodb:ListGlobalTables dynamodb:ListImports dynamodb:ListStreams dynamodb:ListTables dynamodb:ReadDataForReplication dynamodb:ReplicateSettings dynamodb:RestoreTableFromBackup dynamodb:RestoreTableToPointInTime dynamodb:UpdateContinuousBackups dynamodb:UpdateContributorInsights dynamodb:UpdateGlobalTable dynamodb:UpdateGlobalTableSettings dynamodb:UpdateKinesisStreamingDestination dynamodb:UpdateTable dynamodb:UpdateTableReplicaAutoScaling dynamodb:UpdateTimeToLive dynamodb:WriteDataForReplication  | 
| ebs |  ebs:CompleteSnapshot ebs:StartSnapshot  | 
| ec2 |  ec2:AcceptAddressTransfer ec2:AcceptCapacityReservationBillingOwnership ec2:AcceptReservedInstancesExchangeQuote ec2:AcceptTransitGatewayMulticastDomainAssociations ec2:AcceptTransitGatewayPeeringAttachment ec2:AcceptTransitGatewayVpcAttachment ec2:AcceptVpcEndpointConnections ec2:AcceptVpcPeeringConnection ec2:AdvertiseByoipCidr ec2:AllocateAddress ec2:AllocateHosts ec2:AllocateIpamPoolCidr ec2:ApplySecurityGroupsToClientVpnTargetNetwork ec2:AssignIpv6Addresses ec2:AssignPrivateIpAddresses ec2:AssignPrivateNatGatewayAddress ec2:AssociateAddress ec2:AssociateCapacityReservationBillingOwner ec2:AssociateClientVpnTargetNetwork ec2:AssociateDhcpOptions ec2:AssociateEnclaveCertificateIamRole ec2:AssociateIamInstanceProfile ec2:AssociateInstanceEventWindow ec2:AssociateIpamByoasn ec2:AssociateIpamResourceDiscovery ec2:AssociateNatGatewayAddress ec2:AssociateRouteServer ec2:AssociateRouteTable ec2:AssociateSecurityGroupVpc ec2:AssociateSubnetCidrBlock ec2:AssociateTransitGatewayMulticastDomain ec2:AssociateTransitGatewayPolicyTable ec2:AssociateTransitGatewayRouteTable ec2:AssociateTrunkInterface ec2:AssociateVpcCidrBlock ec2:AttachClassicLinkVpc ec2:AttachInternetGateway ec2:AttachNetworkInterface ec2:AttachVerifiedAccessTrustProvider ec2:AttachVolume ec2:AttachVpnGateway ec2:AuthorizeClientVpnIngress ec2:AuthorizeSecurityGroupEgress ec2:AuthorizeSecurityGroupIngress ec2:BundleInstance ec2:CancelBundleTask ec2:CancelCapacityReservation ec2:CancelCapacityReservationFleets ec2:CancelConversionTask ec2:CancelDeclarativePoliciesReport ec2:CancelExportTask ec2:CancelImageLaunchPermission ec2:CancelImportTask ec2:CancelReservedInstancesListing ec2:CancelSpotFleetRequests ec2:CancelSpotInstanceRequests ec2:ConfirmProductInstance ec2:CopyFpgaImage ec2:CopyImage ec2:CopySnapshot ec2:CopyVolumes ec2:CreateCapacityManagerDataExport ec2:CreateCapacityReservation ec2:CreateCapacityReservationBySplitting ec2:CreateCapacityReservationFleet ec2:CreateCarrierGateway ec2:CreateClientVpnEndpoint ec2:CreateClientVpnRoute ec2:CreateCoipCidr ec2:CreateCoipPool ec2:CreateCustomerGateway ec2:CreateDefaultSubnet ec2:CreateDefaultVpc ec2:CreateDelegateMacVolumeOwnershipTask ec2:CreateDhcpOptions ec2:CreateEgressOnlyInternetGateway ec2:CreateFleet ec2:CreateFlowLogs ec2:CreateFpgaImage ec2:CreateImage ec2:CreateImageUsageReport ec2:CreateInstanceConnectEndpoint ec2:CreateInstanceEventWindow ec2:CreateInstanceExportTask ec2:CreateInternetGateway ec2:CreateInterruptibleCapacityReservationAllocation ec2:CreateIpam ec2:CreateIpamExternalResourceVerificationToken ec2:CreateIpamPolicy ec2:CreateIpamPool ec2:CreateIpamPrefixListResolver ec2:CreateIpamPrefixListResolverTarget ec2:CreateIpamResourceDiscovery ec2:CreateIpamScope ec2:CreateKeyPair ec2:CreateLaunchTemplateVersion ec2:CreateLocalGatewayRoute ec2:CreateLocalGatewayRouteTable ec2:CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation ec2:CreateLocalGatewayRouteTableVpcAssociation ec2:CreateLocalGatewayVirtualInterface ec2:CreateLocalGatewayVirtualInterfaceGroup ec2:CreateMacSystemIntegrityProtectionModificationTask ec2:CreateManagedPrefixList ec2:CreateNatGateway ec2:CreateNetworkAcl ec2:CreateNetworkAclEntry ec2:CreateNetworkInsightsAccessScope ec2:CreateNetworkInsightsPath ec2:CreateNetworkInterface ec2:CreateNetworkInterfacePermission ec2:CreatePlacementGroup ec2:CreatePublicIpv4Pool ec2:CreateReplaceRootVolumeTask ec2:CreateReservedInstancesListing ec2:CreateRestoreImageTask ec2:CreateRoute ec2:CreateRouteServer ec2:CreateRouteServerEndpoint ec2:CreateRouteServerPeer ec2:CreateRouteTable ec2:CreateSecurityGroup ec2:CreateSnapshots ec2:CreateSpotDatafeedSubscription ec2:CreateStoreImageTask ec2:CreateSubnet ec2:CreateSubnetCidrReservation ec2:CreateTrafficMirrorFilter ec2:CreateTrafficMirrorFilterRule ec2:CreateTrafficMirrorSession ec2:CreateTrafficMirrorTarget ec2:CreateTransitGateway ec2:CreateTransitGatewayConnect ec2:CreateTransitGatewayConnectPeer ec2:CreateTransitGatewayMeteringPolicy ec2:CreateTransitGatewayMeteringPolicyEntry ec2:CreateTransitGatewayMulticastDomain ec2:CreateTransitGatewayPeeringAttachment ec2:CreateTransitGatewayPolicyTable ec2:CreateTransitGatewayPrefixListReference ec2:CreateTransitGatewayRoute ec2:CreateTransitGatewayRouteTable ec2:CreateTransitGatewayRouteTableAnnouncement ec2:CreateTransitGatewayVpcAttachment ec2:CreateVerifiedAccessEndpoint ec2:CreateVerifiedAccessGroup ec2:CreateVerifiedAccessInstance ec2:CreateVerifiedAccessTrustProvider ec2:CreateVolume ec2:CreateVpc ec2:CreateVpcBlockPublicAccessExclusion ec2:CreateVpcEncryptionControl ec2:CreateVpcEndpoint ec2:CreateVpcEndpointConnectionNotification ec2:CreateVpcEndpointServiceConfiguration ec2:CreateVpcPeeringConnection ec2:CreateVpnConcentrator ec2:CreateVpnConnection ec2:CreateVpnConnectionRoute ec2:CreateVpnGateway ec2:DeleteCapacityManagerDataExport ec2:DeleteCarrierGateway ec2:DeleteClientVpnEndpoint ec2:DeleteClientVpnRoute ec2:DeleteCoipCidr ec2:DeleteCoipPool ec2:DeleteCustomerGateway ec2:DeleteDhcpOptions ec2:DeleteEgressOnlyInternetGateway ec2:DeleteFleets ec2:DeleteFlowLogs ec2:DeleteFpgaImage ec2:DeleteImageUsageReport ec2:DeleteInstanceConnectEndpoint ec2:DeleteInstanceEventWindow ec2:DeleteInternetGateway ec2:DeleteIpam ec2:DeleteIpamExternalResourceVerificationToken ec2:DeleteIpamPolicy ec2:DeleteIpamPool ec2:DeleteIpamPrefixListResolver ec2:DeleteIpamPrefixListResolverTarget ec2:DeleteIpamResourceDiscovery ec2:DeleteIpamScope ec2:DeleteKeyPair ec2:DeleteLaunchTemplate ec2:DeleteLaunchTemplateVersions ec2:DeleteLocalGatewayRoute ec2:DeleteLocalGatewayRouteTable ec2:DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation ec2:DeleteLocalGatewayRouteTableVpcAssociation ec2:DeleteLocalGatewayVirtualInterface ec2:DeleteLocalGatewayVirtualInterfaceGroup ec2:DeleteManagedPrefixList ec2:DeleteNatGateway ec2:DeleteNetworkAcl ec2:DeleteNetworkAclEntry ec2:DeleteNetworkInsightsAccessScope ec2:DeleteNetworkInsightsAccessScopeAnalysis ec2:DeleteNetworkInsightsAnalysis ec2:DeleteNetworkInsightsPath ec2:DeleteNetworkInterface ec2:DeleteNetworkInterfacePermission ec2:DeletePlacementGroup ec2:DeletePublicIpv4Pool ec2:DeleteQueuedReservedInstances ec2:DeleteRoute ec2:DeleteRouteServer ec2:DeleteRouteServerEndpoint ec2:DeleteRouteServerPeer ec2:DeleteRouteTable ec2:DeleteSecurityGroup ec2:DeleteSpotDatafeedSubscription ec2:DeleteSubnet ec2:DeleteSubnetCidrReservation ec2:DeleteTrafficMirrorFilter ec2:DeleteTrafficMirrorFilterRule ec2:DeleteTrafficMirrorSession ec2:DeleteTrafficMirrorTarget ec2:DeleteTransitGateway ec2:DeleteTransitGatewayConnect ec2:DeleteTransitGatewayConnectPeer ec2:DeleteTransitGatewayMeteringPolicy ec2:DeleteTransitGatewayMeteringPolicyEntry ec2:DeleteTransitGatewayMulticastDomain ec2:DeleteTransitGatewayPeeringAttachment ec2:DeleteTransitGatewayPolicyTable ec2:DeleteTransitGatewayPrefixListReference ec2:DeleteTransitGatewayRoute ec2:DeleteTransitGatewayRouteTable ec2:DeleteTransitGatewayRouteTableAnnouncement ec2:DeleteTransitGatewayVpcAttachment ec2:DeleteVerifiedAccessEndpoint ec2:DeleteVerifiedAccessGroup ec2:DeleteVerifiedAccessInstance ec2:DeleteVerifiedAccessTrustProvider ec2:DeleteVolume ec2:DeleteVpc ec2:DeleteVpcBlockPublicAccessExclusion ec2:DeleteVpcEncryptionControl ec2:DeleteVpcEndpointConnectionNotifications ec2:DeleteVpcEndpointServiceConfigurations ec2:DeleteVpcEndpoints ec2:DeleteVpcPeeringConnection ec2:DeleteVpnConcentrator ec2:DeleteVpnConnection ec2:DeleteVpnConnectionRoute ec2:DeleteVpnGateway ec2:DeprovisionByoipCidr ec2:DeprovisionIpamByoasn ec2:DeprovisionIpamPoolCidr ec2:DeprovisionPublicIpv4PoolCidr ec2:DeregisterImage ec2:DeregisterInstanceEventNotificationAttributes ec2:DeregisterTransitGatewayMulticastGroupMembers ec2:DeregisterTransitGatewayMulticastGroupSources ec2:DescribeAccountAttributes ec2:DescribeAddressTransfers ec2:DescribeAddresses ec2:DescribeAddressesAttribute ec2:DescribeAggregateIdFormat ec2:DescribeAvailabilityZones ec2:DescribeAwsNetworkPerformanceMetricSubscriptions ec2:DescribeBundleTasks ec2:DescribeByoipCidrs ec2:DescribeCapacityBlockExtensionHistory ec2:DescribeCapacityBlockExtensionOfferings ec2:DescribeCapacityBlockStatus ec2:DescribeCapacityBlocks ec2:DescribeCapacityManagerDataExports ec2:DescribeCapacityReservationBillingRequests ec2:DescribeCapacityReservationFleets ec2:DescribeCapacityReservationTopology ec2:DescribeCapacityReservations ec2:DescribeCarrierGateways ec2:DescribeClassicLinkInstances ec2:DescribeClientVpnAuthorizationRules ec2:DescribeClientVpnConnections ec2:DescribeClientVpnEndpoints ec2:DescribeClientVpnRoutes ec2:DescribeClientVpnTargetNetworks ec2:DescribeCoipPools ec2:DescribeConversionTasks ec2:DescribeCustomerGateways ec2:DescribeDeclarativePoliciesReports ec2:DescribeDhcpOptions ec2:DescribeEgressOnlyInternetGateways ec2:DescribeElasticGpus ec2:DescribeExportImageTasks ec2:DescribeExportTasks ec2:DescribeFastLaunchImages ec2:DescribeFastSnapshotRestores ec2:DescribeFleetHistory ec2:DescribeFleetInstances ec2:DescribeFleets ec2:DescribeFlowLogs ec2:DescribeFpgaImageAttribute ec2:DescribeFpgaImages ec2:DescribeHostReservationOfferings ec2:DescribeHostReservations ec2:DescribeHosts ec2:DescribeIamInstanceProfileAssociations ec2:DescribeIdFormat ec2:DescribeIdentityIdFormat ec2:DescribeImageAttribute ec2:DescribeImageReferences ec2:DescribeImageUsageReportEntries ec2:DescribeImageUsageReports ec2:DescribeImportImageTasks ec2:DescribeImportSnapshotTasks ec2:DescribeInstanceConnectEndpoints ec2:DescribeInstanceCreditSpecifications ec2:DescribeInstanceEventNotificationAttributes ec2:DescribeInstanceEventWindows ec2:DescribeInstanceImageMetadata ec2:DescribeInstanceSqlHaHistoryStates ec2:DescribeInstanceSqlHaStates ec2:DescribeInstanceTopology ec2:DescribeInstanceTypes ec2:DescribeInternetGateways ec2:DescribeIpamByoasn ec2:DescribeIpamExternalResourceVerificationTokens ec2:DescribeIpamPolicies ec2:DescribeIpamPools ec2:DescribeIpamPrefixListResolverTargets ec2:DescribeIpamPrefixListResolvers ec2:DescribeIpamResourceDiscoveries ec2:DescribeIpamResourceDiscoveryAssociations ec2:DescribeIpamScopes ec2:DescribeIpams ec2:DescribeIpv6Pools ec2:DescribeKeyPairs ec2:DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations ec2:DescribeLocalGatewayRouteTableVpcAssociations ec2:DescribeLocalGatewayRouteTables ec2:DescribeLocalGatewayVirtualInterfaceGroups ec2:DescribeLocalGatewayVirtualInterfaces ec2:DescribeLocalGateways ec2:DescribeLockedSnapshots ec2:DescribeMacHosts ec2:DescribeMacModificationTasks ec2:DescribeManagedPrefixLists ec2:DescribeMovingAddresses ec2:DescribeNatGateways ec2:DescribeNetworkAcls ec2:DescribeNetworkInsightsAccessScopeAnalyses ec2:DescribeNetworkInsightsAccessScopes ec2:DescribeNetworkInsightsAnalyses ec2:DescribeNetworkInsightsPaths ec2:DescribeNetworkInterfaceAttribute ec2:DescribeNetworkInterfacePermissions ec2:DescribeNetworkInterfaces ec2:DescribeOutpostLags ec2:DescribePlacementGroups ec2:DescribePrefixLists ec2:DescribePrincipalIdFormat ec2:DescribePublicIpv4Pools ec2:DescribeRegions ec2:DescribeReplaceRootVolumeTasks ec2:DescribeReservedInstances ec2:DescribeReservedInstancesListings ec2:DescribeReservedInstancesModifications ec2:DescribeReservedInstancesOfferings ec2:DescribeRouteServerEndpoints ec2:DescribeRouteServerPeers ec2:DescribeRouteServers ec2:DescribeRouteTables ec2:DescribeScheduledInstanceAvailability ec2:DescribeScheduledInstances ec2:DescribeSecurityGroupReferences ec2:DescribeSecurityGroupRules ec2:DescribeSecurityGroupVpcAssociations ec2:DescribeSecurityGroups ec2:DescribeServiceLinkVirtualInterfaces ec2:DescribeSnapshotAttribute ec2:DescribeSnapshotTierStatus ec2:DescribeSpotDatafeedSubscription ec2:DescribeSpotFleetInstances ec2:DescribeSpotFleetRequestHistory ec2:DescribeSpotFleetRequests ec2:DescribeSpotInstanceRequests ec2:DescribeSpotPriceHistory ec2:DescribeStaleSecurityGroups ec2:DescribeStoreImageTasks ec2:DescribeTrafficMirrorFilterRules ec2:DescribeTrafficMirrorFilters ec2:DescribeTrafficMirrorSessions ec2:DescribeTrafficMirrorTargets ec2:DescribeTransitGatewayAttachments ec2:DescribeTransitGatewayConnectPeers ec2:DescribeTransitGatewayConnects ec2:DescribeTransitGatewayMeteringPolicies ec2:DescribeTransitGatewayMulticastDomains ec2:DescribeTransitGatewayPeeringAttachments ec2:DescribeTransitGatewayPolicyTables ec2:DescribeTransitGatewayRouteTableAnnouncements ec2:DescribeTransitGatewayRouteTables ec2:DescribeTransitGatewayVpcAttachments ec2:DescribeTransitGateways ec2:DescribeTrunkInterfaceAssociations ec2:DescribeVerifiedAccessEndpoints ec2:DescribeVerifiedAccessGroups ec2:DescribeVerifiedAccessInstanceLoggingConfigurations ec2:DescribeVerifiedAccessInstances ec2:DescribeVerifiedAccessTrustProviders ec2:DescribeVolumeAttribute ec2:DescribeVolumeStatus ec2:DescribeVolumes ec2:DescribeVolumesModifications ec2:DescribeVpcAttribute ec2:DescribeVpcBlockPublicAccessExclusions ec2:DescribeVpcBlockPublicAccessOptions ec2:DescribeVpcClassicLink ec2:DescribeVpcClassicLinkDnsSupport ec2:DescribeVpcEncryptionControls ec2:DescribeVpcEndpointAssociations ec2:DescribeVpcEndpointConnectionNotifications ec2:DescribeVpcEndpointConnections ec2:DescribeVpcEndpointServiceConfigurations ec2:DescribeVpcEndpointServicePermissions ec2:DescribeVpcEndpointServices ec2:DescribeVpcEndpoints ec2:DescribeVpcPeeringConnections ec2:DescribeVpcs ec2:DescribeVpnConcentrators ec2:DescribeVpnConnections ec2:DescribeVpnGateways ec2:DetachClassicLinkVpc ec2:DetachInternetGateway ec2:DetachNetworkInterface ec2:DetachVerifiedAccessTrustProvider ec2:DetachVolume ec2:DetachVpnGateway ec2:DisableAddressTransfer ec2:DisableAllowedImagesSettings ec2:DisableAwsNetworkPerformanceMetricSubscription ec2:DisableCapacityManager ec2:DisableEbsEncryptionByDefault ec2:DisableFastLaunch ec2:DisableFastSnapshotRestores ec2:DisableImage ec2:DisableImageBlockPublicAccess ec2:DisableImageDeprecation ec2:DisableImageDeregistrationProtection ec2:DisableInstanceSqlHaStandbyDetections ec2:DisableIpamOrganizationAdminAccount ec2:DisableIpamPolicy ec2:DisableRouteServerPropagation ec2:DisableSerialConsoleAccess ec2:DisableSnapshotBlockPublicAccess ec2:DisableTransitGatewayRouteTablePropagation ec2:DisableVgwRoutePropagation ec2:DisableVpcClassicLink ec2:DisableVpcClassicLinkDnsSupport ec2:DisassociateAddress ec2:DisassociateCapacityReservationBillingOwner ec2:DisassociateClientVpnTargetNetwork ec2:DisassociateEnclaveCertificateIamRole ec2:DisassociateIamInstanceProfile ec2:DisassociateInstanceEventWindow ec2:DisassociateIpamByoasn ec2:DisassociateIpamResourceDiscovery ec2:DisassociateNatGatewayAddress ec2:DisassociateRouteServer ec2:DisassociateRouteTable ec2:DisassociateSecurityGroupVpc ec2:DisassociateSubnetCidrBlock ec2:DisassociateTransitGatewayMulticastDomain ec2:DisassociateTransitGatewayPolicyTable ec2:DisassociateTransitGatewayRouteTable ec2:DisassociateTrunkInterface ec2:DisassociateVpcCidrBlock ec2:EnableAddressTransfer ec2:EnableAllowedImagesSettings ec2:EnableAwsNetworkPerformanceMetricSubscription ec2:EnableCapacityManager ec2:EnableEbsEncryptionByDefault ec2:EnableFastLaunch ec2:EnableFastSnapshotRestores ec2:EnableImage ec2:EnableImageBlockPublicAccess ec2:EnableImageDeprecation ec2:EnableImageDeregistrationProtection ec2:EnableInstanceSqlHaStandbyDetections ec2:EnableIpamOrganizationAdminAccount ec2:EnableIpamPolicy ec2:EnableReachabilityAnalyzerOrganizationSharing ec2:EnableRouteServerPropagation ec2:EnableSerialConsoleAccess ec2:EnableSnapshotBlockPublicAccess ec2:EnableTransitGatewayRouteTablePropagation ec2:EnableVgwRoutePropagation ec2:EnableVolumeIO ec2:EnableVpcClassicLink ec2:EnableVpcClassicLinkDnsSupport ec2:ExportClientVpnClientCertificateRevocationList ec2:ExportClientVpnClientConfiguration ec2:ExportImage ec2:ExportTransitGatewayRoutes ec2:ExportVerifiedAccessInstanceClientConfiguration ec2:GetActiveVpnTunnelStatus ec2:GetAllowedImagesSettings ec2:GetAssociatedEnclaveCertificateIamRoles ec2:GetAssociatedIpv6PoolCidrs ec2:GetAwsNetworkPerformanceData ec2:GetCapacityManagerAttributes ec2:GetCapacityManagerMetricData ec2:GetCapacityManagerMetricDimensions ec2:GetCapacityReservationUsage ec2:GetCoipPoolUsage ec2:GetConsoleOutput ec2:GetConsoleScreenshot ec2:GetDeclarativePoliciesReportSummary ec2:GetDefaultCreditSpecification ec2:GetEbsDefaultKmsKeyId ec2:GetEbsEncryptionByDefault ec2:GetEnabledIpamPolicy ec2:GetFlowLogsIntegrationTemplate ec2:GetGroupsForCapacityReservation ec2:GetHostReservationPurchasePreview ec2:GetImageAncestry ec2:GetImageBlockPublicAccessState ec2:GetInstanceMetadataDefaults ec2:GetInstanceTpmEkPub ec2:GetInstanceTypesFromInstanceRequirements ec2:GetInstanceUefiData ec2:GetIpamAddressHistory ec2:GetIpamDiscoveredAccounts ec2:GetIpamDiscoveredPublicAddresses ec2:GetIpamDiscoveredResourceCidrs ec2:GetIpamPolicyAllocationRules ec2:GetIpamPolicyOrganizationTargets ec2:GetIpamPoolAllocations ec2:GetIpamPoolCidrs ec2:GetIpamPrefixListResolverRules ec2:GetIpamPrefixListResolverVersionEntries ec2:GetIpamPrefixListResolverVersions ec2:GetIpamResourceCidrs ec2:GetLaunchTemplateData ec2:GetManagedPrefixListAssociations ec2:GetManagedPrefixListEntries ec2:GetNetworkInsightsAccessScopeAnalysisFindings ec2:GetNetworkInsightsAccessScopeContent ec2:GetPasswordData ec2:GetReservedInstancesExchangeQuote ec2:GetRouteServerAssociations ec2:GetRouteServerPropagations ec2:GetRouteServerRoutingDatabase ec2:GetSecurityGroupsForVpc ec2:GetSerialConsoleAccessStatus ec2:GetSnapshotBlockPublicAccessState ec2:GetSpotPlacementScores ec2:GetSubnetCidrReservations ec2:GetTransitGatewayAttachmentPropagations ec2:GetTransitGatewayMeteringPolicyEntries ec2:GetTransitGatewayMulticastDomainAssociations ec2:GetTransitGatewayPolicyTableAssociations ec2:GetTransitGatewayPolicyTableEntries ec2:GetTransitGatewayPrefixListReferences ec2:GetTransitGatewayRouteTableAssociations ec2:GetTransitGatewayRouteTablePropagations ec2:GetVerifiedAccessEndpointPolicy ec2:GetVerifiedAccessEndpointTargets ec2:GetVerifiedAccessGroupPolicy ec2:GetVpcResourcesBlockingEncryptionEnforcement ec2:GetVpnConnectionDeviceSampleConfiguration ec2:GetVpnConnectionDeviceTypes ec2:GetVpnTunnelReplacementStatus ec2:ImportClientVpnClientCertificateRevocationList ec2:ImportImage ec2:ImportInstance ec2:ImportKeyPair ec2:ImportSnapshot ec2:ImportVolume ec2:InjectVolumeIOLatency ec2:ListImagesInRecycleBin ec2:ListSnapshotsInRecycleBin ec2:ListVolumesInRecycleBin ec2:LockSnapshot ec2:ModifyAddressAttribute ec2:ModifyAvailabilityZoneGroup ec2:ModifyCapacityReservation ec2:ModifyCapacityReservationFleet ec2:ModifyClientVpnEndpoint ec2:ModifyDefaultCreditSpecification ec2:ModifyEbsDefaultKmsKeyId ec2:ModifyFleet ec2:ModifyFpgaImageAttribute ec2:ModifyHosts ec2:ModifyIdFormat ec2:ModifyIdentityIdFormat ec2:ModifyImageAttribute ec2:ModifyInstanceAttribute ec2:ModifyInstanceCapacityReservationAttributes ec2:ModifyInstanceConnectEndpoint ec2:ModifyInstanceCpuOptions ec2:ModifyInstanceCreditSpecification ec2:ModifyInstanceEventStartTime ec2:ModifyInstanceEventWindow ec2:ModifyInstanceMaintenanceOptions ec2:ModifyInstanceMetadataDefaults ec2:ModifyInstanceMetadataOptions ec2:ModifyInstanceNetworkPerformanceOptions ec2:ModifyInstancePlacement ec2:ModifyIpam ec2:ModifyIpamPolicyAllocationRules ec2:ModifyIpamPool ec2:ModifyIpamPrefixListResolver ec2:ModifyIpamPrefixListResolverTarget ec2:ModifyIpamResourceCidr ec2:ModifyIpamResourceDiscovery ec2:ModifyIpamScope ec2:ModifyLaunchTemplate ec2:ModifyLocalGatewayRoute ec2:ModifyManagedPrefixList ec2:ModifyNetworkInterfaceAttribute ec2:ModifyPrivateDnsNameOptions ec2:ModifyPublicIpDnsNameOptions ec2:ModifyReservedInstances ec2:ModifyRouteServer ec2:ModifySecurityGroupRules ec2:ModifySnapshotAttribute ec2:ModifySnapshotTier ec2:ModifySpotFleetRequest ec2:ModifySubnetAttribute ec2:ModifyTrafficMirrorFilterNetworkServices ec2:ModifyTrafficMirrorFilterRule ec2:ModifyTrafficMirrorSession ec2:ModifyTransitGateway ec2:ModifyTransitGatewayMeteringPolicy ec2:ModifyTransitGatewayPrefixListReference ec2:ModifyTransitGatewayVpcAttachment ec2:ModifyVerifiedAccessEndpoint ec2:ModifyVerifiedAccessEndpointPolicy ec2:ModifyVerifiedAccessGroup ec2:ModifyVerifiedAccessGroupPolicy ec2:ModifyVerifiedAccessInstance ec2:ModifyVerifiedAccessInstanceLoggingConfiguration ec2:ModifyVerifiedAccessTrustProvider ec2:ModifyVolume ec2:ModifyVolumeAttribute ec2:ModifyVpcAttribute ec2:ModifyVpcBlockPublicAccessExclusion ec2:ModifyVpcBlockPublicAccessOptions ec2:ModifyVpcEncryptionControl ec2:ModifyVpcEndpoint ec2:ModifyVpcEndpointConnectionNotification ec2:ModifyVpcEndpointServiceConfiguration ec2:ModifyVpcEndpointServicePayerResponsibility ec2:ModifyVpcEndpointServicePermissions ec2:ModifyVpcPeeringConnectionOptions ec2:ModifyVpcTenancy ec2:ModifyVpnConnection ec2:ModifyVpnConnectionOptions ec2:ModifyVpnTunnelCertificate ec2:ModifyVpnTunnelOptions ec2:MonitorInstances ec2:MoveAddressToVpc ec2:MoveByoipCidrToIpam ec2:MoveCapacityReservationInstances ec2:ProvisionByoipCidr ec2:ProvisionIpamByoasn ec2:ProvisionIpamPoolCidr ec2:ProvisionPublicIpv4PoolCidr ec2:PurchaseCapacityBlockExtension ec2:PurchaseHostReservation ec2:PurchaseReservedInstancesOffering ec2:PurchaseScheduledInstances ec2:RebootInstances ec2:RegisterImage ec2:RegisterInstanceEventNotificationAttributes ec2:RegisterTransitGatewayMulticastGroupMembers ec2:RegisterTransitGatewayMulticastGroupSources ec2:RejectCapacityReservationBillingOwnership ec2:RejectTransitGatewayMulticastDomainAssociations ec2:RejectTransitGatewayPeeringAttachment ec2:RejectTransitGatewayVpcAttachment ec2:RejectVpcEndpointConnections ec2:RejectVpcPeeringConnection ec2:ReleaseAddress ec2:ReleaseHosts ec2:ReleaseIpamPoolAllocation ec2:ReplaceIamInstanceProfileAssociation ec2:ReplaceImageCriteriaInAllowedImagesSettings ec2:ReplaceNetworkAclAssociation ec2:ReplaceNetworkAclEntry ec2:ReplaceRoute ec2:ReplaceRouteTableAssociation ec2:ReplaceTransitGatewayRoute ec2:ReplaceVpnTunnel ec2:ReportInstanceStatus ec2:RequestSpotFleet ec2:RequestSpotInstances ec2:ResetAddressAttribute ec2:ResetEbsDefaultKmsKeyId ec2:ResetFpgaImageAttribute ec2:ResetImageAttribute ec2:ResetInstanceAttribute ec2:ResetNetworkInterfaceAttribute ec2:ResetSnapshotAttribute ec2:RestoreAddressToClassic ec2:RestoreImageFromRecycleBin ec2:RestoreManagedPrefixListVersion ec2:RestoreSnapshotFromRecycleBin ec2:RestoreSnapshotTier ec2:RestoreVolumeFromRecycleBin ec2:RevokeClientVpnIngress ec2:RevokeSecurityGroupEgress ec2:RevokeSecurityGroupIngress ec2:RunInstances ec2:RunScheduledInstances ec2:SearchLocalGatewayRoutes ec2:SearchTransitGatewayMulticastGroups ec2:SearchTransitGatewayRoutes ec2:SendDiagnosticInterrupt ec2:StartDeclarativePoliciesReport ec2:StartInstances ec2:StartNetworkInsightsAccessScopeAnalysis ec2:StartNetworkInsightsAnalysis ec2:StartVpcEndpointServicePrivateDnsVerification ec2:TerminateClientVpnConnections ec2:UnassignIpv6Addresses ec2:UnassignPrivateIpAddresses ec2:UnassignPrivateNatGatewayAddress ec2:UnlockSnapshot ec2:UnmonitorInstances ec2:UpdateCapacityManagerOrganizationsAccess ec2:UpdateInterruptibleCapacityReservationAllocation ec2:UpdateSecurityGroupRuleDescriptionsEgress ec2:UpdateSecurityGroupRuleDescriptionsIngress ec2:WithdrawByoipCidr  | 
| ecr |  ecr:BatchCheckLayerAvailability ecr:BatchDeleteImage ecr:BatchGetImage ecr:BatchGetRepositoryScanningConfiguration ecr:CompleteLayerUpload ecr:CreatePullThroughCacheRule ecr:CreateRepositoryCreationTemplate ecr:DeleteLifecyclePolicy ecr:DeletePullThroughCacheRule ecr:DeleteRegistryPolicy ecr:DeleteRepository ecr:DeleteRepositoryCreationTemplate ecr:DeleteRepositoryPolicy ecr:DeleteSigningConfiguration ecr:DescribeImageReplicationStatus ecr:DescribeImageScanFindings ecr:DescribeImages ecr:DescribePullThroughCacheRules ecr:DescribeRegistry ecr:DescribeRepositories ecr:DescribeRepositoryCreationTemplates ecr:GetAccountSetting ecr:GetAuthorizationToken ecr:GetDownloadUrlForLayer ecr:GetLifecyclePolicy ecr:GetLifecyclePolicyPreview ecr:GetRegistryPolicy ecr:GetRegistryScanningConfiguration ecr:GetRepositoryPolicy ecr:GetSigningConfiguration ecr:InitiateLayerUpload ecr:ListImages ecr:ListPullTimeUpdateExclusions ecr:PutAccountSetting ecr:PutImage ecr:PutImageScanningConfiguration ecr:PutRegistryPolicy ecr:PutRegistryScanningConfiguration ecr:PutReplicationConfiguration ecr:StartImageScan ecr:StartLifecyclePolicyPreview ecr:UpdatePullThroughCacheRule ecr:UpdateRepositoryCreationTemplate ecr:UploadLayerPart ecr:ValidatePullThroughCacheRule  | 
| ecr-public |  ecr-public:BatchCheckLayerAvailability ecr-public:BatchDeleteImage ecr-public:CompleteLayerUpload ecr-public:CreateRepository ecr-public:DeleteRepository ecr-public:DeleteRepositoryPolicy ecr-public:DescribeImages ecr-public:DescribeRegistries ecr-public:DescribeRepositories ecr-public:GetAuthorizationToken ecr-public:GetRegistryCatalogData ecr-public:GetRepositoryCatalogData ecr-public:GetRepositoryPolicy ecr-public:InitiateLayerUpload ecr-public:PutImage ecr-public:PutRegistryCatalogData ecr-public:PutRepositoryCatalogData ecr-public:SetRepositoryPolicy ecr-public:UploadLayerPart  | 
| ecs |  ecs:CreateCapacityProvider ecs:CreateCluster ecs:CreateService ecs:CreateTaskSet ecs:DeleteAccountSetting ecs:DeleteAttributes ecs:DeleteCapacityProvider ecs:DeleteCluster ecs:DeleteExpressGatewayService ecs:DeleteService ecs:DeleteTaskDefinitions ecs:DeleteTaskSet ecs:DeregisterContainerInstance ecs:DeregisterTaskDefinition ecs:DescribeCapacityProviders ecs:DescribeClusters ecs:DescribeContainerInstances ecs:DescribeExpressGatewayService ecs:DescribeServiceDeployments ecs:DescribeServiceRevisions ecs:DescribeServices ecs:DescribeTaskDefinition ecs:DescribeTaskSets ecs:DescribeTasks ecs:DiscoverPollEndpoint ecs:ExecuteCommand ecs:GetTaskProtection ecs:ListAccountSettings ecs:ListAttributes ecs:ListClusters ecs:ListContainerInstances ecs:ListServiceDeployments ecs:ListServices ecs:ListServicesByNamespace ecs:ListTaskDefinitionFamilies ecs:ListTaskDefinitions ecs:ListTasks ecs:PutAccountSetting ecs:PutAccountSettingDefault ecs:PutAttributes ecs:PutClusterCapacityProviders ecs:RegisterContainerInstance ecs:RunTask ecs:StartTask ecs:StopServiceDeployment ecs:StopTask ecs:SubmitAttachmentStateChanges ecs:SubmitContainerStateChange ecs:SubmitTaskStateChange ecs:UpdateCapacityProvider ecs:UpdateCluster ecs:UpdateClusterSettings ecs:UpdateContainerAgent ecs:UpdateContainerInstancesState ecs:UpdateExpressGatewayService ecs:UpdateService ecs:UpdateServicePrimaryTaskSet ecs:UpdateTaskProtection ecs:UpdateTaskSet  | 
| eks |  eks:AssociateAccessPolicy eks:AssociateEncryptionConfig eks:AssociateIdentityProviderConfig eks:CreateAccessEntry eks:CreateAddon eks:CreateCluster eks:CreateEksAnywhereSubscription eks:CreateFargateProfile eks:CreateNodegroup eks:DeleteAccessEntry eks:DeleteAddon eks:DeleteCapability eks:DeleteCluster eks:DeleteEksAnywhereSubscription eks:DeleteFargateProfile eks:DeleteNodegroup eks:DeletePodIdentityAssociation eks:DeregisterCluster eks:DescribeAccessEntry eks:DescribeAddon eks:DescribeAddonConfiguration eks:DescribeAddonVersions eks:DescribeCapability eks:DescribeCluster eks:DescribeClusterVersions eks:DescribeEksAnywhereSubscription eks:DescribeFargateProfile eks:DescribeIdentityProviderConfig eks:DescribeInsight eks:DescribeInsightsRefresh eks:DescribeNodegroup eks:DescribePodIdentityAssociation eks:DescribeUpdate eks:DisassociateAccessPolicy eks:DisassociateIdentityProviderConfig eks:ListAccessEntries eks:ListAccessPolicies eks:ListAddons eks:ListAssociatedAccessPolicies eks:ListCapabilities eks:ListClusters eks:ListEksAnywhereSubscriptions eks:ListFargateProfiles eks:ListIdentityProviderConfigs eks:ListInsights eks:ListNodegroups eks:ListPodIdentityAssociations eks:ListUpdates eks:RegisterCluster eks:StartInsightsRefresh eks:UpdateAccessEntry eks:UpdateAddon eks:UpdateCapability eks:UpdateClusterConfig eks:UpdateClusterVersion eks:UpdateEksAnywhereSubscription eks:UpdateNodegroupConfig eks:UpdateNodegroupVersion eks:UpdatePodIdentityAssociation  | 
| elasticache |  elasticache:AuthorizeCacheSecurityGroupIngress elasticache:BatchApplyUpdateAction elasticache:BatchStopUpdateAction elasticache:CompleteMigration elasticache:CopyServerlessCacheSnapshot elasticache:CopySnapshot elasticache:CreateCacheCluster elasticache:CreateCacheParameterGroup elasticache:CreateCacheSecurityGroup elasticache:CreateCacheSubnetGroup elasticache:CreateGlobalReplicationGroup elasticache:CreateReplicationGroup elasticache:CreateServerlessCache elasticache:CreateServerlessCacheSnapshot elasticache:CreateSnapshot elasticache:CreateUser elasticache:CreateUserGroup elasticache:DecreaseNodeGroupsInGlobalReplicationGroup elasticache:DecreaseReplicaCount elasticache:DeleteCacheCluster elasticache:DeleteCacheParameterGroup elasticache:DeleteCacheSecurityGroup elasticache:DeleteCacheSubnetGroup elasticache:DeleteGlobalReplicationGroup elasticache:DeleteReplicationGroup elasticache:DeleteServerlessCache elasticache:DeleteServerlessCacheSnapshot elasticache:DeleteSnapshot elasticache:DeleteUser elasticache:DeleteUserGroup elasticache:DescribeCacheClusters elasticache:DescribeCacheEngineVersions elasticache:DescribeCacheParameterGroups elasticache:DescribeCacheParameters elasticache:DescribeCacheSecurityGroups elasticache:DescribeCacheSubnetGroups elasticache:DescribeEngineDefaultParameters elasticache:DescribeEvents elasticache:DescribeGlobalReplicationGroups elasticache:DescribeReplicationGroups elasticache:DescribeReservedCacheNodes elasticache:DescribeReservedCacheNodesOfferings elasticache:DescribeServerlessCacheSnapshots elasticache:DescribeServerlessCaches elasticache:DescribeServiceUpdates elasticache:DescribeSnapshots elasticache:DescribeUpdateActions elasticache:DescribeUserGroups elasticache:DescribeUsers elasticache:DisassociateGlobalReplicationGroup elasticache:ExportServerlessCacheSnapshot elasticache:FailoverGlobalReplicationGroup elasticache:IncreaseNodeGroupsInGlobalReplicationGroup elasticache:IncreaseReplicaCount elasticache:ListAllowedNodeTypeModifications elasticache:ModifyCacheCluster elasticache:ModifyCacheParameterGroup elasticache:ModifyCacheSubnetGroup elasticache:ModifyGlobalReplicationGroup elasticache:ModifyReplicationGroup elasticache:ModifyReplicationGroupShardConfiguration elasticache:ModifyServerlessCache elasticache:ModifyUser elasticache:ModifyUserGroup elasticache:PurchaseReservedCacheNodesOffering elasticache:RebalanceSlotsInGlobalReplicationGroup elasticache:RebootCacheCluster elasticache:ResetCacheParameterGroup elasticache:RevokeCacheSecurityGroupIngress elasticache:StartMigration elasticache:TestFailover elasticache:TestMigration  | 
| elasticbeanstalk |  elasticbeanstalk:AbortEnvironmentUpdate elasticbeanstalk:ApplyEnvironmentManagedAction elasticbeanstalk:AssociateEnvironmentOperationsRole elasticbeanstalk:CheckDNSAvailability elasticbeanstalk:ComposeEnvironments elasticbeanstalk:CreateApplication elasticbeanstalk:CreateApplicationVersion elasticbeanstalk:CreateConfigurationTemplate elasticbeanstalk:CreateEnvironment elasticbeanstalk:CreatePlatformVersion elasticbeanstalk:CreateStorageLocation elasticbeanstalk:DeleteApplication elasticbeanstalk:DeleteApplicationVersion elasticbeanstalk:DeleteConfigurationTemplate elasticbeanstalk:DeleteEnvironmentConfiguration elasticbeanstalk:DeletePlatformVersion elasticbeanstalk:DescribeAccountAttributes elasticbeanstalk:DescribeApplicationVersions elasticbeanstalk:DescribeApplications elasticbeanstalk:DescribeConfigurationOptions elasticbeanstalk:DescribeConfigurationSettings elasticbeanstalk:DescribeEnvironmentHealth elasticbeanstalk:DescribeEnvironmentManagedActionHistory elasticbeanstalk:DescribeEnvironmentManagedActions elasticbeanstalk:DescribeEnvironmentResources elasticbeanstalk:DescribeEnvironments elasticbeanstalk:DescribeEvents elasticbeanstalk:DescribeInstancesHealth elasticbeanstalk:DescribePlatformVersion elasticbeanstalk:DisassociateEnvironmentOperationsRole elasticbeanstalk:ListAvailableSolutionStacks elasticbeanstalk:ListPlatformBranches elasticbeanstalk:ListPlatformVersions elasticbeanstalk:RebuildEnvironment elasticbeanstalk:RequestEnvironmentInfo elasticbeanstalk:RestartAppServer elasticbeanstalk:RetrieveEnvironmentInfo elasticbeanstalk:SwapEnvironmentCNAMEs elasticbeanstalk:TerminateEnvironment elasticbeanstalk:UpdateApplication elasticbeanstalk:UpdateApplicationResourceLifecycle elasticbeanstalk:UpdateApplicationVersion elasticbeanstalk:UpdateConfigurationTemplate elasticbeanstalk:UpdateEnvironment elasticbeanstalk:ValidateConfigurationSettings  | 
| elasticfilesystem |  elasticfilesystem:CreateAccessPoint elasticfilesystem:CreateFileSystem elasticfilesystem:CreateMountTarget elasticfilesystem:CreateReplicationConfiguration elasticfilesystem:DeleteAccessPoint elasticfilesystem:DeleteFileSystem elasticfilesystem:DeleteFileSystemPolicy elasticfilesystem:DeleteMountTarget elasticfilesystem:DeleteReplicationConfiguration elasticfilesystem:DescribeAccessPoints elasticfilesystem:DescribeAccountPreferences elasticfilesystem:DescribeBackupPolicy elasticfilesystem:DescribeFileSystemPolicy elasticfilesystem:DescribeFileSystems elasticfilesystem:DescribeLifecycleConfiguration elasticfilesystem:DescribeMountTargetSecurityGroups elasticfilesystem:DescribeMountTargets elasticfilesystem:DescribeReplicationConfigurations elasticfilesystem:ModifyMountTargetSecurityGroups elasticfilesystem:PutAccountPreferences elasticfilesystem:PutBackupPolicy elasticfilesystem:PutFileSystemPolicy elasticfilesystem:PutLifecycleConfiguration elasticfilesystem:UpdateFileSystem elasticfilesystem:UpdateFileSystemProtection  | 
| elasticloadbalancing |  elasticloadbalancing:AddListenerCertificates elasticloadbalancing:AddTrustStoreRevocations elasticloadbalancing:ApplySecurityGroupsToLoadBalancer elasticloadbalancing:AttachLoadBalancerToSubnets elasticloadbalancing:ConfigureHealthCheck elasticloadbalancing:CreateAppCookieStickinessPolicy elasticloadbalancing:CreateLBCookieStickinessPolicy elasticloadbalancing:CreateListener elasticloadbalancing:CreateLoadBalancer elasticloadbalancing:CreateLoadBalancerListeners elasticloadbalancing:CreateLoadBalancerPolicy elasticloadbalancing:CreateRule elasticloadbalancing:CreateTargetGroup elasticloadbalancing:CreateTrustStore elasticloadbalancing:CreateWebACLAssociation elasticloadbalancing:DeleteListener elasticloadbalancing:DeleteLoadBalancer elasticloadbalancing:DeleteLoadBalancerListeners elasticloadbalancing:DeleteLoadBalancerPolicy elasticloadbalancing:DeleteRule elasticloadbalancing:DeleteSharedTrustStoreAssociation elasticloadbalancing:DeleteTargetGroup elasticloadbalancing:DeleteTrustStore elasticloadbalancing:DeleteWebACLAssociation elasticloadbalancing:DeregisterInstancesFromLoadBalancer elasticloadbalancing:DeregisterTargets elasticloadbalancing:DescribeAccountLimits elasticloadbalancing:DescribeCapacityReservation elasticloadbalancing:DescribeInstanceHealth elasticloadbalancing:DescribeListenerAttributes elasticloadbalancing:DescribeListenerCertificates elasticloadbalancing:DescribeListeners elasticloadbalancing:DescribeLoadBalancerAttributes elasticloadbalancing:DescribeLoadBalancerPolicies elasticloadbalancing:DescribeLoadBalancerPolicyTypes elasticloadbalancing:DescribeLoadBalancers elasticloadbalancing:DescribeRules elasticloadbalancing:DescribeSSLPolicies elasticloadbalancing:DescribeTargetGroupAttributes elasticloadbalancing:DescribeTargetGroups elasticloadbalancing:DescribeTargetHealth elasticloadbalancing:DescribeTrustStoreAssociations elasticloadbalancing:DescribeTrustStoreRevocations elasticloadbalancing:DescribeTrustStores elasticloadbalancing:DescribeWebACLAssociation elasticloadbalancing:DetachLoadBalancerFromSubnets elasticloadbalancing:DisableAvailabilityZonesForLoadBalancer elasticloadbalancing:EnableAvailabilityZonesForLoadBalancer elasticloadbalancing:GetLoadBalancerWebACL elasticloadbalancing:GetResourcePolicy elasticloadbalancing:GetTrustStoreCaCertificatesBundle elasticloadbalancing:GetTrustStoreRevocationContent elasticloadbalancing:ModifyCapacityReservation elasticloadbalancing:ModifyIpPools elasticloadbalancing:ModifyListener elasticloadbalancing:ModifyLoadBalancerAttributes elasticloadbalancing:ModifyRule elasticloadbalancing:ModifyTargetGroup elasticloadbalancing:ModifyTargetGroupAttributes elasticloadbalancing:ModifyTrustStore elasticloadbalancing:RegisterInstancesWithLoadBalancer elasticloadbalancing:RegisterTargets elasticloadbalancing:RemoveListenerCertificates elasticloadbalancing:RemoveTrustStoreRevocations elasticloadbalancing:SetIpAddressType elasticloadbalancing:SetLoadBalancerListenerSSLCertificate elasticloadbalancing:SetLoadBalancerPoliciesForBackendServer elasticloadbalancing:SetLoadBalancerPoliciesOfListener elasticloadbalancing:SetRulePriorities elasticloadbalancing:SetSecurityGroups elasticloadbalancing:SetSubnets  | 
| elastictranscoder |  elastictranscoder:CancelJob elastictranscoder:CreateJob elastictranscoder:CreatePipeline elastictranscoder:CreatePreset elastictranscoder:DeletePipeline elastictranscoder:DeletePreset elastictranscoder:ListJobsByPipeline elastictranscoder:ListJobsByStatus elastictranscoder:ListPipelines elastictranscoder:ListPresets elastictranscoder:ReadJob elastictranscoder:ReadPipeline elastictranscoder:ReadPreset elastictranscoder:TestRole elastictranscoder:UpdatePipeline elastictranscoder:UpdatePipelineNotifications elastictranscoder:UpdatePipelineStatus  | 
| emr-containers |  emr-containers:CancelJobRun emr-containers:CreateJobTemplate emr-containers:CreateManagedEndpoint emr-containers:CreateSecurityConfiguration emr-containers:CreateVirtualCluster emr-containers:DeleteJobTemplate emr-containers:DeleteManagedEndpoint emr-containers:DeleteVirtualCluster emr-containers:DescribeJobRun emr-containers:DescribeJobTemplate emr-containers:DescribeManagedEndpoint emr-containers:DescribeSecurityConfiguration emr-containers:DescribeVirtualCluster emr-containers:GetManagedEndpointSessionCredentials emr-containers:ListJobRuns emr-containers:ListJobTemplates emr-containers:ListManagedEndpoints emr-containers:ListSecurityConfigurations emr-containers:ListVirtualClusters emr-containers:StartJobRun  | 
| emr-serverless |  emr-serverless:CancelJobRun emr-serverless:CreateApplication emr-serverless:DeleteApplication emr-serverless:GetApplication emr-serverless:GetDashboardForJobRun emr-serverless:GetJobRun emr-serverless:ListApplications emr-serverless:ListJobRunAttempts emr-serverless:ListJobRuns emr-serverless:StartApplication emr-serverless:StartJobRun emr-serverless:StopApplication emr-serverless:UpdateApplication  | 
| es |  es:AcceptInboundConnection es:AcceptInboundCrossClusterSearchConnection es:AssociatePackage es:AuthorizeVpcEndpointAccess es:CancelElasticsearchServiceSoftwareUpdate es:CancelServiceSoftwareUpdate es:CreateDomain es:CreateElasticsearchDomain es:CreateIndex es:CreateOutboundConnection es:CreateOutboundCrossClusterSearchConnection es:CreatePackage es:CreateVpcEndpoint es:DeleteDomain es:DeleteElasticsearchDomain es:DeleteElasticsearchServiceRole es:DeleteInboundConnection es:DeleteInboundCrossClusterSearchConnection es:DeleteIndex es:DeleteOutboundConnection es:DeleteOutboundCrossClusterSearchConnection es:DeletePackage es:DeleteVpcEndpoint es:DescribeDomain es:DescribeDomainAutoTunes es:DescribeDomainChangeProgress es:DescribeDomainConfig es:DescribeDomainHealth es:DescribeDomainNodes es:DescribeDomains es:DescribeDryRunProgress es:DescribeElasticsearchDomain es:DescribeElasticsearchDomainConfig es:DescribeElasticsearchDomains es:DescribeElasticsearchInstanceTypeLimits es:DescribeInboundConnections es:DescribeInboundCrossClusterSearchConnections es:DescribeInstanceTypeLimits es:DescribeOutboundConnections es:DescribeOutboundCrossClusterSearchConnections es:DescribePackages es:DescribeReservedElasticsearchInstanceOfferings es:DescribeReservedElasticsearchInstances es:DescribeReservedInstanceOfferings es:DescribeReservedInstances es:DescribeVpcEndpoints es:DissociatePackage es:DissociatePackages es:GetCompatibleElasticsearchVersions es:GetCompatibleVersions es:GetDataSource es:GetDomainMaintenanceStatus es:GetPackageVersionHistory es:GetUpgradeHistory es:GetUpgradeStatus es:ListDataSources es:ListDomainNames es:ListDomainsForPackage es:ListElasticsearchInstanceTypes es:ListElasticsearchVersions es:ListInstanceTypeDetails es:ListPackagesForDomain es:ListScheduledActions es:ListVersions es:ListVpcEndpointAccess es:ListVpcEndpoints es:ListVpcEndpointsForDomain es:PurchaseReservedElasticsearchInstanceOffering es:PurchaseReservedInstanceOffering es:RejectInboundConnection es:RejectInboundCrossClusterSearchConnection es:RevokeVpcEndpointAccess es:StartDomainMaintenance es:StartElasticsearchServiceSoftwareUpdate es:StartServiceSoftwareUpdate es:UpdateDataSource es:UpdateDomainConfig es:UpdateElasticsearchDomainConfig es:UpdateIndex es:UpdatePackage es:UpdatePackageScope es:UpdateScheduledAction es:UpdateVpcEndpoint es:UpgradeDomain es:UpgradeElasticsearchDomain  | 
| events |  events:ActivateEventSource events:CancelReplay events:CreateApiDestination events:CreateArchive events:CreateConnection events:CreateEndpoint events:CreateEventBus events:CreatePartnerEventSource events:DeactivateEventSource events:DeauthorizeConnection events:DeleteApiDestination events:DeleteArchive events:DeleteConnection events:DeleteEndpoint events:DeleteEventBus events:DeletePartnerEventSource events:DeleteRule events:DescribeApiDestination events:DescribeArchive events:DescribeConnection events:DescribeEndpoint events:DescribeEventBus events:DescribeEventSource events:DescribePartnerEventSource events:DescribeReplay events:DescribeRule events:DisableRule events:EnableRule events:ListApiDestinations events:ListArchives events:ListConnections events:ListEndpoints events:ListEventBuses events:ListEventSources events:ListPartnerEventSourceAccounts events:ListPartnerEventSources events:ListReplays events:ListRuleNamesByTarget events:ListRules events:ListTargetsByRule events:PutPermission events:PutRule events:PutTargets events:RemovePermission events:RemoveTargets events:StartReplay events:TestEventPattern events:UpdateApiDestination events:UpdateArchive events:UpdateConnection events:UpdateEndpoint events:UpdateEventBus  | 
| evidently |  evidently:CreateExperiment evidently:CreateFeature evidently:CreateLaunch evidently:CreateProject evidently:CreateSegment evidently:DeleteExperiment evidently:DeleteFeature evidently:DeleteLaunch evidently:DeleteProject evidently:DeleteSegment evidently:GetExperiment evidently:GetExperimentResults evidently:GetFeature evidently:GetLaunch evidently:GetProject evidently:GetSegment evidently:ListExperiments evidently:ListFeatures evidently:ListLaunches evidently:ListProjects evidently:ListSegmentReferences evidently:ListSegments evidently:StartExperiment evidently:StartLaunch evidently:StopExperiment evidently:StopLaunch evidently:TestSegmentPattern evidently:UpdateExperiment evidently:UpdateFeature evidently:UpdateLaunch evidently:UpdateProject evidently:UpdateProjectDataDelivery  | 
| finspace |  finspace:CreateEnvironment finspace:CreateKxChangeset finspace:CreateKxCluster finspace:CreateKxDatabase finspace:CreateKxDataview finspace:CreateKxEnvironment finspace:CreateKxScalingGroup finspace:CreateKxUser finspace:CreateKxVolume finspace:CreateUser finspace:DeleteEnvironment finspace:DeleteKxCluster finspace:DeleteKxClusterNode finspace:DeleteKxDatabase finspace:DeleteKxDataview finspace:DeleteKxEnvironment finspace:DeleteKxScalingGroup finspace:DeleteKxUser finspace:DeleteKxVolume finspace:GetEnvironment finspace:GetKxChangeset finspace:GetKxCluster finspace:GetKxConnectionString finspace:GetKxDatabase finspace:GetKxDataview finspace:GetKxEnvironment finspace:GetKxScalingGroup finspace:GetKxUser finspace:GetKxVolume finspace:GetLoadSampleDataSetGroupIntoEnvironmentStatus finspace:GetUser finspace:ListEnvironments finspace:ListKxChangesets finspace:ListKxClusterNodes finspace:ListKxClusters finspace:ListKxDatabases finspace:ListKxDataviews finspace:ListKxEnvironments finspace:ListKxScalingGroups finspace:ListKxUsers finspace:ListKxVolumes finspace:ListUsers finspace:LoadSampleDataSetGroupIntoEnvironment finspace:ResetUserPassword finspace:UpdateEnvironment finspace:UpdateKxClusterCodeConfiguration finspace:UpdateKxClusterDatabases finspace:UpdateKxDatabase finspace:UpdateKxDataview finspace:UpdateKxEnvironment finspace:UpdateKxEnvironmentNetwork finspace:UpdateKxUser finspace:UpdateKxVolume finspace:UpdateUser  | 
| Firehose |  firehose:CreateDeliveryStream firehose:DeleteDeliveryStream firehose:DescribeDeliveryStream firehose:ListDeliveryStreams firehose:StartDeliveryStreamEncryption firehose:StopDeliveryStreamEncryption firehose:UpdateDestination  | 
| fis |  fis:CreateExperimentTemplate fis:CreateTargetAccountConfiguration fis:DeleteExperimentTemplate fis:DeleteTargetAccountConfiguration fis:GetAction fis:GetExperiment fis:GetExperimentTargetAccountConfiguration fis:GetExperimentTemplate fis:GetSafetyLever fis:GetTargetAccountConfiguration fis:GetTargetResourceType fis:ListActions fis:ListExperimentResolvedTargets fis:ListExperimentTargetAccountConfigurations fis:ListExperimentTemplates fis:ListExperiments fis:ListTargetAccountConfigurations fis:ListTargetResourceTypes fis:StartExperiment fis:StopExperiment fis:UpdateExperimentTemplate fis:UpdateSafetyLeverState fis:UpdateTargetAccountConfiguration  | 
| fms |  fms:AssociateAdminAccount fms:AssociateThirdPartyFirewall fms:BatchAssociateResource fms:BatchDisassociateResource fms:DeleteAppsList fms:DeleteNotificationChannel fms:DeletePolicy fms:DeleteProtocolsList fms:DeleteResourceSet fms:DisassociateAdminAccount fms:DisassociateThirdPartyFirewall fms:GetAdminAccount fms:GetAdminScope fms:GetAppsList fms:GetComplianceDetail fms:GetNotificationChannel fms:GetPolicy fms:GetProtectionStatus fms:GetProtocolsList fms:GetResourceSet fms:GetThirdPartyFirewallAssociationStatus fms:GetViolationDetails fms:ListAdminAccountsForOrganization fms:ListAdminsManagingAccount fms:ListAppsLists fms:ListComplianceStatus fms:ListDiscoveredResources fms:ListMemberAccounts fms:ListPolicies fms:ListProtocolsLists fms:ListResourceSetResources fms:ListResourceSets fms:ListThirdPartyFirewallFirewallPolicies fms:PutAdminAccount fms:PutAppsList fms:PutNotificationChannel fms:PutPolicy fms:PutProtocolsList fms:PutResourceSet  | 
| frauddetector |  frauddetector:BatchCreateVariable frauddetector:BatchGetVariable frauddetector:CancelBatchImportJob frauddetector:CancelBatchPredictionJob frauddetector:CreateBatchImportJob frauddetector:CreateBatchPredictionJob frauddetector:CreateDetectorVersion frauddetector:CreateList frauddetector:CreateModel frauddetector:CreateModelVersion frauddetector:CreateRule frauddetector:CreateVariable frauddetector:DeleteBatchImportJob frauddetector:DeleteBatchPredictionJob frauddetector:DeleteDetector frauddetector:DeleteDetectorVersion frauddetector:DeleteEntityType frauddetector:DeleteEvent frauddetector:DeleteEventType frauddetector:DeleteEventsByEventType frauddetector:DeleteExternalModel frauddetector:DeleteLabel frauddetector:DeleteList frauddetector:DeleteModel frauddetector:DeleteModelVersion frauddetector:DeleteOutcome frauddetector:DeleteRule frauddetector:DeleteVariable frauddetector:DescribeDetector frauddetector:DescribeModelVersions frauddetector:GetBatchImportJobs frauddetector:GetBatchPredictionJobs frauddetector:GetDeleteEventsByEventTypeStatus frauddetector:GetDetectorVersion frauddetector:GetDetectors frauddetector:GetEntityTypes frauddetector:GetEvent frauddetector:GetEventPrediction frauddetector:GetEventPredictionMetadata frauddetector:GetEventTypes frauddetector:GetExternalModels frauddetector:GetKMSEncryptionKey frauddetector:GetLabels frauddetector:GetListElements frauddetector:GetListsMetadata frauddetector:GetModelVersion frauddetector:GetModels frauddetector:GetOutcomes frauddetector:GetRules frauddetector:GetVariables frauddetector:ListEventPredictions frauddetector:PutDetector frauddetector:PutEntityType frauddetector:PutEventType frauddetector:PutExternalModel frauddetector:PutKMSEncryptionKey frauddetector:PutLabel frauddetector:PutOutcome frauddetector:SendEvent frauddetector:UpdateDetectorVersion frauddetector:UpdateDetectorVersionMetadata frauddetector:UpdateDetectorVersionStatus frauddetector:UpdateEventLabel frauddetector:UpdateList frauddetector:UpdateModel frauddetector:UpdateModelVersion frauddetector:UpdateModelVersionStatus frauddetector:UpdateRuleMetadata frauddetector:UpdateRuleVersion frauddetector:UpdateVariable  | 
| fsx |  fsx:AssociateFileSystemAliases fsx:CancelDataRepositoryTask fsx:CopyBackup fsx:CreateDataRepositoryTask fsx:CreateFileCache fsx:CreateFileSystem fsx:CreateFileSystemFromBackup fsx:CreateSnapshot fsx:CreateStorageVirtualMachine fsx:CreateVolume fsx:CreateVolumeFromBackup fsx:DeleteBackup fsx:DeleteFileCache fsx:DeleteFileSystem fsx:DeleteSnapshot fsx:DeleteStorageVirtualMachine fsx:DeleteVolume fsx:DescribeBackups fsx:DescribeDataRepositoryAssociations fsx:DescribeDataRepositoryTasks fsx:DescribeFileCaches fsx:DescribeFileSystemAliases fsx:DescribeFileSystems fsx:DescribeS3AccessPointAttachments fsx:DescribeSharedVpcConfiguration fsx:DescribeSnapshots fsx:DescribeStorageVirtualMachines fsx:DescribeVolumes fsx:DetachAndDeleteS3AccessPoint fsx:DisassociateFileSystemAliases fsx:ReleaseFileSystemNfsV3Locks fsx:RestoreVolumeFromSnapshot fsx:StartMisconfiguredStateRecovery fsx:UpdateDataRepositoryAssociation fsx:UpdateFileCache fsx:UpdateFileSystem fsx:UpdateSharedVpcConfiguration fsx:UpdateSnapshot fsx:UpdateStorageVirtualMachine fsx:UpdateVolume  | 
| gamelift |  gamelift:AcceptMatch gamelift:ClaimGameServer gamelift:CreateAlias gamelift:CreateBuild gamelift:CreateContainerGroupDefinition gamelift:CreateFleet gamelift:CreateFleetLocations gamelift:CreateGameServerGroup gamelift:CreateGameSession gamelift:CreateGameSessionQueue gamelift:CreateLocation gamelift:CreateMatchmakingConfiguration gamelift:CreateMatchmakingRuleSet gamelift:CreatePlayerSession gamelift:CreatePlayerSessions gamelift:CreateScript gamelift:CreateVpcPeeringAuthorization gamelift:CreateVpcPeeringConnection gamelift:DeleteAlias gamelift:DeleteBuild gamelift:DeleteContainerGroupDefinition gamelift:DeleteFleet gamelift:DeleteFleetLocations gamelift:DeleteGameServerGroup gamelift:DeleteGameSessionQueue gamelift:DeleteLocation gamelift:DeleteMatchmakingConfiguration gamelift:DeleteMatchmakingRuleSet gamelift:DeleteScalingPolicy gamelift:DeleteScript gamelift:DeleteVpcPeeringAuthorization gamelift:DeleteVpcPeeringConnection gamelift:DeregisterCompute gamelift:DeregisterGameServer gamelift:DescribeAlias gamelift:DescribeBuild gamelift:DescribeCompute gamelift:DescribeContainerFleet gamelift:DescribeContainerGroupDefinition gamelift:DescribeEC2InstanceLimits gamelift:DescribeFleetAttributes gamelift:DescribeFleetCapacity gamelift:DescribeFleetEvents gamelift:DescribeFleetLocationAttributes gamelift:DescribeFleetLocationCapacity gamelift:DescribeFleetLocationUtilization gamelift:DescribeFleetPortSettings gamelift:DescribeFleetUtilization gamelift:DescribeGameServer gamelift:DescribeGameServerGroup gamelift:DescribeGameServerInstances gamelift:DescribeGameSessionDetails gamelift:DescribeGameSessionPlacement gamelift:DescribeGameSessionQueues gamelift:DescribeGameSessions gamelift:DescribeInstances gamelift:DescribeMatchmaking gamelift:DescribeMatchmakingConfigurations gamelift:DescribeMatchmakingRuleSets gamelift:DescribePlayerSessions gamelift:DescribeRuntimeConfiguration gamelift:DescribeScalingPolicies gamelift:DescribeScript gamelift:DescribeVpcPeeringAuthorizations gamelift:DescribeVpcPeeringConnections gamelift:GetComputeAccess gamelift:GetComputeAuthToken gamelift:GetGameSessionLogUrl gamelift:GetInstanceAccess gamelift:ListAliases gamelift:ListBuilds gamelift:ListCompute gamelift:ListContainerFleets gamelift:ListContainerGroupDefinitionVersions gamelift:ListContainerGroupDefinitions gamelift:ListFleetDeployments gamelift:ListFleets gamelift:ListGameServerGroups gamelift:ListGameServers gamelift:ListLocations gamelift:ListScripts gamelift:PutScalingPolicy gamelift:RegisterCompute gamelift:RegisterGameServer gamelift:RequestUploadCredentials gamelift:ResolveAlias gamelift:ResumeGameServerGroup gamelift:SearchGameSessions gamelift:StartFleetActions gamelift:StartGameSessionPlacement gamelift:StartMatchBackfill gamelift:StartMatchmaking gamelift:StopFleetActions gamelift:StopGameSessionPlacement gamelift:StopMatchmaking gamelift:SuspendGameServerGroup gamelift:TerminateGameSession gamelift:UpdateAlias gamelift:UpdateBuild gamelift:UpdateContainerGroupDefinition gamelift:UpdateFleetAttributes gamelift:UpdateFleetCapacity gamelift:UpdateFleetPortSettings gamelift:UpdateGameServer gamelift:UpdateGameServerGroup gamelift:UpdateGameSession gamelift:UpdateGameSessionQueue gamelift:UpdateMatchmakingConfiguration gamelift:UpdateRuntimeConfiguration gamelift:UpdateScript gamelift:ValidateMatchmakingRuleSet  | 
| geo |  geo:AssociateTrackerConsumer geo:BatchDeleteDevicePositionHistory geo:BatchDeleteGeofence geo:BatchEvaluateGeofences geo:BatchGetDevicePosition geo:BatchPutGeofence geo:BatchUpdateDevicePosition geo:CalculateRoute geo:CalculateRouteMatrix geo:CreateGeofenceCollection geo:CreateMap geo:CreatePlaceIndex geo:CreateRouteCalculator geo:CreateTracker geo:DeleteGeofenceCollection geo:DeleteKey geo:DeleteMap geo:DeletePlaceIndex geo:DeleteRouteCalculator geo:DeleteTracker geo:DescribeGeofenceCollection geo:DescribeKey geo:DescribeMap geo:DescribePlaceIndex geo:DescribeRouteCalculator geo:DescribeTracker geo:DisassociateTrackerConsumer geo:ForecastGeofenceEvents geo:GetDevicePosition geo:GetDevicePositionHistory geo:GetGeofence geo:GetMapGlyphs geo:GetMapSprites geo:GetMapStyleDescriptor geo:GetMapTile geo:GetPlace geo:ListDevicePositions geo:ListGeofenceCollections geo:ListGeofences geo:ListKeys geo:ListMaps geo:ListPlaceIndexes geo:ListRouteCalculators geo:ListTrackerConsumers geo:ListTrackers geo:PutGeofence geo:SearchPlaceIndexForPosition geo:SearchPlaceIndexForSuggestions geo:SearchPlaceIndexForText geo:UpdateGeofenceCollection geo:UpdateKey geo:UpdateMap geo:UpdatePlaceIndex geo:UpdateRouteCalculator geo:UpdateTracker geo:VerifyDevicePosition  | 
| glacier |  glacier:AbortMultipartUpload glacier:AbortVaultLock glacier:CompleteMultipartUpload glacier:CompleteVaultLock glacier:CreateVault glacier:DeleteArchive glacier:DeleteVault glacier:DeleteVaultAccessPolicy glacier:DeleteVaultNotifications glacier:DescribeJob glacier:DescribeVault glacier:GetDataRetrievalPolicy glacier:GetJobOutput glacier:GetVaultAccessPolicy glacier:GetVaultLock glacier:GetVaultNotifications glacier:InitiateJob glacier:InitiateMultipartUpload glacier:InitiateVaultLock glacier:ListJobs glacier:ListMultipartUploads glacier:ListParts glacier:ListProvisionedCapacity glacier:ListVaults glacier:PurchaseProvisionedCapacity glacier:SetDataRetrievalPolicy glacier:SetVaultAccessPolicy glacier:SetVaultNotifications glacier:UploadArchive glacier:UploadMultipartPart  | 
| grafana |  grafana:AssociateLicense grafana:CreateWorkspace grafana:CreateWorkspaceApiKey grafana:CreateWorkspaceServiceAccount grafana:CreateWorkspaceServiceAccountToken grafana:DeleteWorkspace grafana:DeleteWorkspaceApiKey grafana:DeleteWorkspaceServiceAccount grafana:DeleteWorkspaceServiceAccountToken grafana:DescribeWorkspace grafana:DescribeWorkspaceAuthentication grafana:DescribeWorkspaceConfiguration grafana:DisassociateLicense grafana:ListPermissions grafana:ListVersions grafana:ListWorkspaceServiceAccountTokens grafana:ListWorkspaceServiceAccounts grafana:ListWorkspaces grafana:UpdatePermissions grafana:UpdateWorkspace grafana:UpdateWorkspaceAuthentication grafana:UpdateWorkspaceConfiguration  | 
| greengrass |  greengrass:AssociateRoleToGroup greengrass:AssociateServiceRoleToAccount greengrass:BatchAssociateClientDeviceWithCoreDevice greengrass:BatchDisassociateClientDeviceFromCoreDevice greengrass:CancelDeployment greengrass:CreateComponentVersion greengrass:CreateConnectorDefinition greengrass:CreateConnectorDefinitionVersion greengrass:CreateCoreDefinition greengrass:CreateCoreDefinitionVersion greengrass:CreateDeployment greengrass:CreateDeviceDefinition greengrass:CreateDeviceDefinitionVersion greengrass:CreateFunctionDefinition greengrass:CreateFunctionDefinitionVersion greengrass:CreateGroup greengrass:CreateGroupCertificateAuthority greengrass:CreateGroupVersion greengrass:CreateLoggerDefinition greengrass:CreateLoggerDefinitionVersion greengrass:CreateResourceDefinition greengrass:CreateResourceDefinitionVersion greengrass:CreateSoftwareUpdateJob greengrass:CreateSubscriptionDefinition greengrass:CreateSubscriptionDefinitionVersion greengrass:DeleteComponent greengrass:DeleteConnectorDefinition greengrass:DeleteCoreDefinition greengrass:DeleteCoreDevice greengrass:DeleteDeployment greengrass:DeleteDeviceDefinition greengrass:DeleteFunctionDefinition greengrass:DeleteGroup greengrass:DeleteLoggerDefinition greengrass:DeleteResourceDefinition greengrass:DeleteSubscriptionDefinition greengrass:DescribeComponent greengrass:DisassociateRoleFromGroup greengrass:DisassociateServiceRoleFromAccount greengrass:GetAssociatedRole greengrass:GetBulkDeploymentStatus greengrass:GetComponent greengrass:GetComponentVersionArtifact greengrass:GetConnectivityInfo greengrass:GetConnectorDefinition greengrass:GetConnectorDefinitionVersion greengrass:GetCoreDefinition greengrass:GetCoreDefinitionVersion greengrass:GetCoreDevice greengrass:GetDeployment greengrass:GetDeploymentStatus greengrass:GetDeviceDefinition greengrass:GetDeviceDefinitionVersion greengrass:GetFunctionDefinition greengrass:GetFunctionDefinitionVersion greengrass:GetGroup greengrass:GetGroupCertificateAuthority greengrass:GetGroupCertificateConfiguration greengrass:GetGroupVersion greengrass:GetLoggerDefinition greengrass:GetLoggerDefinitionVersion greengrass:GetResourceDefinition greengrass:GetResourceDefinitionVersion greengrass:GetServiceRoleForAccount greengrass:GetSubscriptionDefinition greengrass:GetSubscriptionDefinitionVersion greengrass:GetThingRuntimeConfiguration greengrass:ListBulkDeploymentDetailedReports greengrass:ListBulkDeployments greengrass:ListClientDevicesAssociatedWithCoreDevice greengrass:ListComponentVersions greengrass:ListComponents greengrass:ListConnectorDefinitionVersions greengrass:ListConnectorDefinitions greengrass:ListCoreDefinitionVersions greengrass:ListCoreDefinitions greengrass:ListCoreDevices greengrass:ListDeployments greengrass:ListDeviceDefinitionVersions greengrass:ListDeviceDefinitions greengrass:ListEffectiveDeployments greengrass:ListFunctionDefinitionVersions greengrass:ListFunctionDefinitions greengrass:ListGroupCertificateAuthorities greengrass:ListGroupVersions greengrass:ListGroups greengrass:ListInstalledComponents greengrass:ListLoggerDefinitionVersions greengrass:ListLoggerDefinitions greengrass:ListResourceDefinitionVersions greengrass:ListResourceDefinitions greengrass:ListSubscriptionDefinitionVersions greengrass:ListSubscriptionDefinitions greengrass:ResetDeployments greengrass:StartBulkDeployment greengrass:StopBulkDeployment greengrass:UpdateConnectivityInfo greengrass:UpdateConnectorDefinition greengrass:UpdateCoreDefinition greengrass:UpdateDeviceDefinition greengrass:UpdateFunctionDefinition greengrass:UpdateGroup greengrass:UpdateGroupCertificateConfiguration greengrass:UpdateLoggerDefinition greengrass:UpdateResourceDefinition greengrass:UpdateSubscriptionDefinition greengrass:UpdateThingRuntimeConfiguration  | 
| groundstation |  groundstation:CancelContact groundstation:CreateConfig groundstation:CreateDataflowEndpointGroup groundstation:CreateDataflowEndpointGroupV2 groundstation:CreateEphemeris groundstation:CreateMissionProfile groundstation:DeleteConfig groundstation:DeleteDataflowEndpointGroup groundstation:DeleteEphemeris groundstation:DeleteMissionProfile groundstation:DescribeContact groundstation:DescribeEphemeris groundstation:GetConfig groundstation:GetDataflowEndpointGroup groundstation:GetMinuteUsage groundstation:GetMissionProfile groundstation:GetSatellite groundstation:ListConfigs groundstation:ListContacts groundstation:ListDataflowEndpointGroups groundstation:ListEphemerides groundstation:ListGroundStations groundstation:ListMissionProfiles groundstation:ListSatellites groundstation:RegisterAgent groundstation:ReserveContact groundstation:UpdateAgentStatus groundstation:UpdateConfig groundstation:UpdateEphemeris groundstation:UpdateMissionProfile  | 
| guardduty |  guardduty:AcceptAdministratorInvitation guardduty:AcceptInvitation guardduty:ArchiveFindings guardduty:CreateDetector guardduty:CreateFilter guardduty:CreateIPSet guardduty:CreateMalwareProtectionPlan guardduty:CreateMembers guardduty:CreatePublishingDestination guardduty:CreateSampleFindings guardduty:CreateThreatEntitySet guardduty:CreateThreatIntelSet guardduty:CreateTrustedEntitySet guardduty:DeclineInvitations guardduty:DeleteDetector guardduty:DeleteFilter guardduty:DeleteIPSet guardduty:DeleteInvitations guardduty:DeleteMalwareProtectionPlan guardduty:DeleteMembers guardduty:DeletePublishingDestination guardduty:DeleteThreatEntitySet guardduty:DeleteThreatIntelSet guardduty:DeleteTrustedEntitySet guardduty:DescribeMalwareScans guardduty:DescribeOrganizationConfiguration guardduty:DescribePublishingDestination guardduty:DisableOrganizationAdminAccount guardduty:DisassociateFromAdministratorAccount guardduty:DisassociateFromMasterAccount guardduty:DisassociateMembers guardduty:EnableOrganizationAdminAccount guardduty:GetAdministratorAccount guardduty:GetCoverageStatistics guardduty:GetDetector guardduty:GetFilter guardduty:GetFindings guardduty:GetFindingsStatistics guardduty:GetIPSet guardduty:GetInvitationsCount guardduty:GetMalwareProtectionPlan guardduty:GetMalwareScan guardduty:GetMalwareScanSettings guardduty:GetMasterAccount guardduty:GetMemberDetectors guardduty:GetMembers guardduty:GetOrganizationStatistics guardduty:GetRemainingFreeTrialDays guardduty:GetThreatEntitySet guardduty:GetThreatIntelSet guardduty:GetTrustedEntitySet guardduty:GetUsageStatistics guardduty:InviteMembers guardduty:ListCoverage guardduty:ListDetectors guardduty:ListFilters guardduty:ListFindings guardduty:ListIPSets guardduty:ListInvitations guardduty:ListMalwareProtectionPlans guardduty:ListMalwareScans guardduty:ListMembers guardduty:ListOrganizationAdminAccounts guardduty:ListPublishingDestinations guardduty:ListThreatEntitySets guardduty:ListThreatIntelSets guardduty:ListTrustedEntitySets guardduty:StartMalwareScan guardduty:StartMonitoringMembers guardduty:StopMonitoringMembers guardduty:UnarchiveFindings guardduty:UpdateDetector guardduty:UpdateFilter guardduty:UpdateFindingsFeedback guardduty:UpdateIPSet guardduty:UpdateMalwareProtectionPlan guardduty:UpdateMalwareScanSettings guardduty:UpdateMemberDetectors guardduty:UpdateOrganizationConfiguration guardduty:UpdatePublishingDestination guardduty:UpdateThreatEntitySet guardduty:UpdateThreatIntelSet guardduty:UpdateTrustedEntitySet  | 
| healthlake |  healthlake:CancelFHIRExportJobWithDelete healthlake:CreateFHIRDatastore healthlake:CreateResource healthlake:DeleteFHIRDatastore healthlake:DeleteResource healthlake:DescribeFHIRDatastore healthlake:DescribeFHIRExportJob healthlake:DescribeFHIRExportJobWithGet healthlake:DescribeFHIRImportJob healthlake:GetCapabilities healthlake:ListFHIRDatastores healthlake:ListFHIRExportJobs healthlake:ListFHIRImportJobs healthlake:ReadResource healthlake:SearchEverything healthlake:SearchWithGet healthlake:SearchWithPost healthlake:StartFHIRExportJob healthlake:StartFHIRExportJobWithPost healthlake:StartFHIRImportJob healthlake:UpdateResource  | 
| honeycode |  honeycode:BatchCreateTableRows honeycode:BatchDeleteTableRows honeycode:BatchUpdateTableRows honeycode:BatchUpsertTableRows honeycode:DescribeTableDataImportJob honeycode:GetScreenData honeycode:InvokeScreenAutomation honeycode:ListTableColumns honeycode:ListTableRows honeycode:ListTables honeycode:QueryTableRows honeycode:StartTableDataImportJob  | 
| IAM |  iam:AddClientIDToOpenIDConnectProvider iam:AddRoleToInstanceProfile iam:AddUserToGroup iam:AttachGroupPolicy iam:AttachRolePolicy iam:AttachUserPolicy iam:ChangePassword iam:CreateAccessKey iam:CreateAccountAlias iam:CreateGroup iam:CreateInstanceProfile iam:CreateLoginProfile iam:CreateOpenIDConnectProvider iam:CreatePolicy iam:CreatePolicyVersion iam:CreateRole iam:CreateSAMLProvider iam:CreateServiceLinkedRole iam:CreateServiceSpecificCredential iam:CreateUser iam:CreateVirtualMFADevice iam:DeactivateMFADevice iam:DeleteAccessKey iam:DeleteAccountAlias iam:DeleteAccountPasswordPolicy iam:DeleteCloudFrontPublicKey iam:DeleteGroup iam:DeleteGroupPolicy iam:DeleteInstanceProfile iam:DeleteLoginProfile iam:DeleteOpenIDConnectProvider iam:DeletePolicy iam:DeletePolicyVersion iam:DeleteRole iam:DeleteRolePermissionsBoundary iam:DeleteRolePolicy iam:DeleteSAMLProvider iam:DeleteSSHPublicKey iam:DeleteServerCertificate iam:DeleteServiceLinkedRole iam:DeleteServiceSpecificCredential iam:DeleteSigningCertificate iam:DeleteUser iam:DeleteUserPermissionsBoundary iam:DeleteUserPolicy iam:DeleteVirtualMFADevice iam:DetachGroupPolicy iam:DetachRolePolicy iam:DetachUserPolicy iam:DisableOrganizationsRootCredentialsManagement iam:DisableOrganizationsRootSessions iam:DisableOutboundWebIdentityFederation iam:EnableMFADevice iam:EnableOrganizationsRootCredentialsManagement iam:EnableOrganizationsRootSessions iam:EnableOutboundWebIdentityFederation iam:GenerateCredentialReport iam:GenerateOrganizationsAccessReport iam:GenerateServiceLastAccessedDetails iam:GetAccessKeyLastUsed iam:GetAccountAuthorizationDetails iam:GetAccountEmailAddress iam:GetAccountName iam:GetAccountPasswordPolicy iam:GetAccountSummary iam:GetCloudFrontPublicKey iam:GetContextKeysForCustomPolicy iam:GetContextKeysForPrincipalPolicy iam:GetCredentialReport iam:GetGroup iam:GetGroupPolicy iam:GetInstanceProfile iam:GetLoginProfile iam:GetMFADevice iam:GetOpenIDConnectProvider iam:GetOrganizationsAccessReport iam:GetOutboundWebIdentityFederationInfo iam:GetPolicy iam:GetPolicyVersion iam:GetRole iam:GetRolePolicy iam:GetSAMLProvider iam:GetSSHPublicKey iam:GetServerCertificate iam:GetServiceLastAccessedDetails iam:GetServiceLastAccessedDetailsWithEntities iam:GetServiceLinkedRoleDeletionStatus iam:GetUser iam:GetUserPolicy iam:ListAccessKeys iam:ListAccountAliases iam:ListAttachedGroupPolicies iam:ListAttachedRolePolicies iam:ListAttachedUserPolicies iam:ListCloudFrontPublicKeys iam:ListDelegationRequests iam:ListEntitiesForPolicy iam:ListGroupPolicies iam:ListGroups iam:ListGroupsForUser iam:ListInstanceProfiles iam:ListInstanceProfilesForRole iam:ListMFADevices iam:ListOpenIDConnectProviders iam:ListOrganizationsFeatures iam:ListPolicies iam:ListPoliciesGrantingServiceAccess iam:ListPolicyVersions iam:ListRolePolicies iam:ListRoles iam:ListSAMLProviders iam:ListSSHPublicKeys iam:ListSTSRegionalEndpointsStatus iam:ListServerCertificates iam:ListServiceSpecificCredentials iam:ListSigningCertificates iam:ListUserPolicies iam:ListUsers iam:ListVirtualMFADevices iam:PutGroupPolicy iam:PutRolePermissionsBoundary iam:PutRolePolicy iam:PutUserPermissionsBoundary iam:PutUserPolicy iam:RemoveClientIDFromOpenIDConnectProvider iam:RemoveRoleFromInstanceProfile iam:RemoveUserFromGroup iam:ResetServiceSpecificCredential iam:ResyncMFADevice iam:SetDefaultPolicyVersion iam:SetSTSRegionalEndpointStatus iam:SetSecurityTokenServicePreferences iam:SimulateCustomPolicy iam:SimulatePrincipalPolicy iam:UpdateAccessKey iam:UpdateAccountEmailAddress iam:UpdateAccountName iam:UpdateAccountPasswordPolicy iam:UpdateAssumeRolePolicy iam:UpdateCloudFrontPublicKey iam:UpdateGroup iam:UpdateLoginProfile iam:UpdateOpenIDConnectProviderThumbprint iam:UpdateRole iam:UpdateRoleDescription iam:UpdateSAMLProvider iam:UpdateSSHPublicKey iam:UpdateServerCertificate iam:UpdateServiceSpecificCredential iam:UpdateSigningCertificate iam:UpdateUser iam:UploadCloudFrontPublicKey iam:UploadSSHPublicKey iam:UploadServerCertificate iam:UploadSigningCertificate  | 
| identitystore |  identitystore:CreateGroup identitystore:CreateGroupMembership identitystore:CreateUser identitystore:DeleteGroup identitystore:DeleteGroupMembership identitystore:DeleteUser identitystore:DescribeGroup identitystore:DescribeGroupMembership identitystore:DescribeUser identitystore:GetGroupId identitystore:GetGroupMembershipId identitystore:GetUserId identitystore:IsMemberInGroups identitystore:ListGroupMemberships identitystore:ListGroupMembershipsForMember identitystore:ListGroups identitystore:ListUsers identitystore:UpdateGroup identitystore:UpdateUser  | 
| imagebuilder |  imagebuilder:CancelImageCreation imagebuilder:CancelLifecycleExecution imagebuilder:CreateComponent imagebuilder:CreateContainerRecipe imagebuilder:CreateDistributionConfiguration imagebuilder:CreateImage imagebuilder:CreateImagePipeline imagebuilder:CreateImageRecipe imagebuilder:CreateInfrastructureConfiguration imagebuilder:CreateLifecyclePolicy imagebuilder:CreateWorkflow imagebuilder:DeleteComponent imagebuilder:DeleteContainerRecipe imagebuilder:DeleteDistributionConfiguration imagebuilder:DeleteImage imagebuilder:DeleteImagePipeline imagebuilder:DeleteImageRecipe imagebuilder:DeleteInfrastructureConfiguration imagebuilder:DeleteLifecyclePolicy imagebuilder:DeleteWorkflow imagebuilder:DistributeImage imagebuilder:GetComponentPolicy imagebuilder:GetContainerRecipePolicy imagebuilder:GetImagePolicy imagebuilder:GetImageRecipePolicy imagebuilder:GetLifecycleExecution imagebuilder:GetLifecyclePolicy imagebuilder:GetMarketplaceResource imagebuilder:GetWorkflowExecution imagebuilder:GetWorkflowStepExecution imagebuilder:ImportComponent imagebuilder:ImportDiskImage imagebuilder:ImportVmImage imagebuilder:ListComponentBuildVersions imagebuilder:ListComponents imagebuilder:ListContainerRecipes imagebuilder:ListDistributionConfigurations imagebuilder:ListImageBuildVersions imagebuilder:ListImagePackages imagebuilder:ListImagePipelineImages imagebuilder:ListImagePipelines imagebuilder:ListImageRecipes imagebuilder:ListImageScanFindingAggregations imagebuilder:ListImageScanFindings imagebuilder:ListImages imagebuilder:ListInfrastructureConfigurations imagebuilder:ListLifecycleExecutionResources imagebuilder:ListLifecycleExecutions imagebuilder:ListLifecyclePolicies imagebuilder:ListWaitingWorkflowSteps imagebuilder:ListWorkflowExecutions imagebuilder:ListWorkflowStepExecutions imagebuilder:ListWorkflows imagebuilder:PutComponentPolicy imagebuilder:PutContainerRecipePolicy imagebuilder:PutImagePolicy imagebuilder:PutImageRecipePolicy imagebuilder:RetryImage imagebuilder:SendWorkflowStepAction imagebuilder:StartImagePipelineExecution imagebuilder:StartResourceStateUpdate imagebuilder:UpdateDistributionConfiguration imagebuilder:UpdateImagePipeline imagebuilder:UpdateInfrastructureConfiguration  | 
| inspector |  inspector:AddAttributesToFindings inspector:CreateAssessmentTarget inspector:CreateAssessmentTemplate inspector:CreateExclusionsPreview inspector:CreateResourceGroup inspector:DeleteAssessmentRun inspector:DeleteAssessmentTarget inspector:DeleteAssessmentTemplate inspector:DescribeAssessmentRuns inspector:DescribeAssessmentTargets inspector:DescribeAssessmentTemplates inspector:DescribeCrossAccountAccessRole inspector:DescribeExclusions inspector:DescribeFindings inspector:DescribeResourceGroups inspector:DescribeRulesPackages inspector:GetAssessmentReport inspector:GetExclusionsPreview inspector:GetTelemetryMetadata inspector:ListAssessmentRunAgents inspector:ListAssessmentRuns inspector:ListAssessmentTargets inspector:ListAssessmentTemplates inspector:ListEventSubscriptions inspector:ListExclusions inspector:ListFindings inspector:ListRulesPackages inspector:PreviewAgents inspector:RegisterCrossAccountAccessRole inspector:RemoveAttributesFromFindings inspector:StartAssessmentRun inspector:StopAssessmentRun inspector:SubscribeToEvent inspector:UnsubscribeFromEvent inspector:UpdateAssessmentTarget  | 
| inspector2 |  inspector2:AssociateMember inspector2:BatchGetAccountStatus inspector2:BatchGetCodeSnippet inspector2:BatchGetFindingDetails inspector2:BatchGetFreeTrialInfo inspector2:BatchGetMemberEc2DeepInspectionStatus inspector2:BatchUpdateMemberEc2DeepInspectionStatus inspector2:CancelFindingsReport inspector2:CancelSbomExport inspector2:CreateCisScanConfiguration inspector2:CreateCodeSecurityIntegration inspector2:CreateFilter inspector2:CreateFindingsReport inspector2:CreateSbomExport inspector2:DeleteCisScanConfiguration inspector2:DeleteCodeSecurityIntegration inspector2:DeleteFilter inspector2:DescribeOrganizationConfiguration inspector2:Disable inspector2:DisableDelegatedAdminAccount inspector2:DisassociateMember inspector2:Enable inspector2:EnableDelegatedAdminAccount inspector2:GetCisScanReport inspector2:GetCisScanResultDetails inspector2:GetClustersForImage inspector2:GetCodeSecurityIntegration inspector2:GetCodeSecurityScan inspector2:GetConfiguration inspector2:GetDelegatedAdminAccount inspector2:GetEc2DeepInspectionConfiguration inspector2:GetEncryptionKey inspector2:GetFindingsReportStatus inspector2:GetMember inspector2:GetSbomExport inspector2:ListAccountPermissions inspector2:ListCisScanConfigurations inspector2:ListCisScanResultsAggregatedByChecks inspector2:ListCisScanResultsAggregatedByTargetResource inspector2:ListCisScans inspector2:ListCodeSecurityIntegrations inspector2:ListCodeSecurityScanConfigurations inspector2:ListCoverage inspector2:ListCoverageStatistics inspector2:ListDelegatedAdminAccounts inspector2:ListFilters inspector2:ListFindingAggregations inspector2:ListFindings inspector2:ListMembers inspector2:ListUsageTotals inspector2:ResetEncryptionKey inspector2:SearchVulnerabilities inspector2:SendCisSessionHealth inspector2:SendCisSessionTelemetry inspector2:StartCisSession inspector2:StartCodeSecurityScan inspector2:StopCisSession inspector2:UpdateCisScanConfiguration inspector2:UpdateCodeSecurityIntegration inspector2:UpdateConfiguration inspector2:UpdateEc2DeepInspectionConfiguration inspector2:UpdateEncryptionKey inspector2:UpdateFilter inspector2:UpdateOrgEc2DeepInspectionConfiguration inspector2:UpdateOrganizationConfiguration  | 
| iot |  iot:AcceptCertificateTransfer iot:AddThingToBillingGroup iot:AddThingToThingGroup iot:AssociateSbomWithPackageVersion iot:AssociateTargetsWithJob iot:AttachPolicy iot:AttachPrincipalPolicy iot:AttachSecurityProfile iot:AttachThingPrincipal iot:CancelAuditMitigationActionsTask iot:CancelAuditTask iot:CancelCertificateTransfer iot:CancelDetectMitigationActionsTask iot:CancelJob iot:CancelJobExecution iot:ClearDefaultAuthorizer iot:ConfirmTopicRuleDestination iot:CreateAuditSuppression iot:CreateAuthorizer iot:CreateBillingGroup iot:CreateCertificateFromCsr iot:CreateCertificateProvider iot:CreateCommand iot:CreateCustomMetric iot:CreateDimension iot:CreateDomainConfiguration iot:CreateDynamicThingGroup iot:CreateFleetMetric iot:CreateJob iot:CreateJobTemplate iot:CreateKeysAndCertificate iot:CreateMitigationAction iot:CreateOTAUpdate iot:CreatePackage iot:CreatePackageVersion iot:CreatePolicy iot:CreatePolicyVersion iot:CreateProvisioningClaim iot:CreateProvisioningTemplate iot:CreateProvisioningTemplateVersion iot:CreateRoleAlias iot:CreateScheduledAudit iot:CreateSecurityProfile iot:CreateStream iot:CreateThing iot:CreateThingGroup iot:CreateThingType iot:CreateTopicRule iot:CreateTopicRuleDestination iot:DeleteAccountAuditConfiguration iot:DeleteAuditSuppression iot:DeleteAuthorizer iot:DeleteBillingGroup iot:DeleteCACertificate iot:DeleteCertificate iot:DeleteCertificateProvider iot:DeleteCommand iot:DeleteCustomMetric iot:DeleteDimension iot:DeleteDomainConfiguration iot:DeleteDynamicThingGroup iot:DeleteFleetMetric iot:DeleteJob iot:DeleteJobExecution iot:DeleteJobTemplate iot:DeleteMitigationAction iot:DeleteOTAUpdate iot:DeletePackage iot:DeletePackageVersion iot:DeletePolicy iot:DeletePolicyVersion iot:DeleteProvisioningTemplate iot:DeleteProvisioningTemplateVersion iot:DeleteRegistrationCode iot:DeleteRoleAlias iot:DeleteScheduledAudit iot:DeleteSecurityProfile iot:DeleteStream iot:DeleteThing iot:DeleteThingGroup iot:DeleteThingType iot:DeleteTopicRule iot:DeleteTopicRuleDestination iot:DeleteV2LoggingLevel iot:DeprecateThingType iot:DescribeAccountAuditConfiguration iot:DescribeAuditFinding iot:DescribeAuditMitigationActionsTask iot:DescribeAuditSuppression iot:DescribeAuditTask iot:DescribeAuthorizer iot:DescribeBillingGroup iot:DescribeCACertificate iot:DescribeCertificate iot:DescribeCertificateProvider iot:DescribeCustomMetric iot:DescribeDefaultAuthorizer iot:DescribeDetectMitigationActionsTask iot:DescribeDimension iot:DescribeDomainConfiguration iot:DescribeEncryptionConfiguration iot:DescribeEndpoint iot:DescribeEventConfigurations iot:DescribeFleetMetric iot:DescribeIndex iot:DescribeJob iot:DescribeJobExecution iot:DescribeJobTemplate iot:DescribeManagedJobTemplate iot:DescribeMitigationAction iot:DescribeProvisioningTemplate iot:DescribeProvisioningTemplateVersion iot:DescribeRoleAlias iot:DescribeScheduledAudit iot:DescribeSecurityProfile iot:DescribeStream iot:DescribeThing iot:DescribeThingGroup iot:DescribeThingRegistrationTask iot:DescribeThingType iot:DetachPolicy iot:DetachPrincipalPolicy iot:DetachSecurityProfile iot:DetachThingPrincipal iot:DisableTopicRule iot:DisassociateSbomFromPackageVersion iot:EnableTopicRule iot:GetBehaviorModelTrainingSummaries iot:GetBucketsAggregation iot:GetCardinality iot:GetCommand iot:GetEffectivePolicies iot:GetJobDocument iot:GetLoggingOptions iot:GetOTAUpdate iot:GetPackage iot:GetPackageConfiguration iot:GetPackageVersion iot:GetPercentiles iot:GetPolicy iot:GetPolicyVersion iot:GetRegistrationCode iot:GetStatistics iot:GetThingConnectivityData iot:GetTopicRule iot:GetTopicRuleDestination iot:GetV2LoggingOptions iot:ListActiveViolations iot:ListAttachedPolicies iot:ListAuditFindings iot:ListAuditMitigationActionsExecutions iot:ListAuditMitigationActionsTasks iot:ListAuditSuppressions iot:ListAuditTasks iot:ListAuthorizers iot:ListBillingGroups iot:ListCACertificates iot:ListCertificateProviders iot:ListCertificates iot:ListCertificatesByCA iot:ListCommands iot:ListCustomMetrics iot:ListDetectMitigationActionsExecutions iot:ListDetectMitigationActionsTasks iot:ListDimensions iot:ListDomainConfigurations iot:ListFleetMetrics iot:ListIndices iot:ListJobExecutionsForJob iot:ListJobExecutionsForThing iot:ListJobTemplates iot:ListJobs iot:ListManagedJobTemplates iot:ListMetricValues iot:ListMitigationActions iot:ListOTAUpdates iot:ListOutgoingCertificates iot:ListPackageVersions iot:ListPackages iot:ListPolicies iot:ListPolicyPrincipals iot:ListPolicyVersions iot:ListPrincipalPolicies iot:ListPrincipalThings iot:ListPrincipalThingsV2 iot:ListProvisioningTemplateVersions iot:ListProvisioningTemplates iot:ListRelatedResourcesForAuditFinding iot:ListRoleAliases iot:ListSbomValidationResults iot:ListScheduledAudits iot:ListSecurityProfiles iot:ListSecurityProfilesForTarget iot:ListStreams iot:ListTargetsForPolicy iot:ListTargetsForSecurityProfile iot:ListThingGroups iot:ListThingGroupsForThing iot:ListThingPrincipals iot:ListThingPrincipalsV2 iot:ListThingRegistrationTaskReports iot:ListThingRegistrationTasks iot:ListThingTypes iot:ListThings iot:ListThingsInBillingGroup iot:ListThingsInThingGroup iot:ListTopicRuleDestinations iot:ListTopicRules iot:ListV2LoggingLevels iot:ListViolationEvents iot:PutVerificationStateOnViolation iot:RegisterCACertificate iot:RegisterCertificate iot:RegisterCertificateWithoutCA iot:RegisterThing iot:RejectCertificateTransfer iot:RemoveThingFromBillingGroup iot:RemoveThingFromThingGroup iot:ReplaceTopicRule iot:SearchIndex iot:SetDefaultAuthorizer iot:SetDefaultPolicyVersion iot:SetLoggingOptions iot:SetV2LoggingLevel iot:SetV2LoggingOptions iot:StartAuditMitigationActionsTask iot:StartDetectMitigationActionsTask iot:StartOnDemandAuditTask iot:StartThingRegistrationTask iot:StopThingRegistrationTask iot:TestAuthorization iot:TestInvokeAuthorizer iot:TransferCertificate iot:UpdateAccountAuditConfiguration iot:UpdateAuditSuppression iot:UpdateAuthorizer iot:UpdateBillingGroup iot:UpdateCACertificate iot:UpdateCertificate iot:UpdateCertificateProvider iot:UpdateCommand iot:UpdateCustomMetric iot:UpdateDimension iot:UpdateDomainConfiguration iot:UpdateDynamicThingGroup iot:UpdateEncryptionConfiguration iot:UpdateEventConfigurations iot:UpdateFleetMetric iot:UpdateIndexingConfiguration iot:UpdateJob iot:UpdateMitigationAction iot:UpdatePackage iot:UpdatePackageConfiguration iot:UpdatePackageVersion iot:UpdateProvisioningTemplate iot:UpdateRoleAlias iot:UpdateScheduledAudit iot:UpdateSecurityProfile iot:UpdateStream iot:UpdateThing iot:UpdateThingGroup iot:UpdateThingGroupsForThing iot:UpdateThingType iot:UpdateTopicRuleDestination iot:ValidateSecurityProfileBehaviors  | 
| iotanalytics |  iotanalytics:CancelPipelineReprocessing iotanalytics:CreateChannel iotanalytics:CreateDataset iotanalytics:CreateDatasetContent iotanalytics:CreateDatastore iotanalytics:CreatePipeline iotanalytics:DeleteChannel iotanalytics:DeleteDataset iotanalytics:DeleteDatasetContent iotanalytics:DeleteDatastore iotanalytics:DeletePipeline iotanalytics:DescribeChannel iotanalytics:DescribeDataset iotanalytics:DescribeDatastore iotanalytics:DescribeLoggingOptions iotanalytics:DescribePipeline iotanalytics:GetDatasetContent iotanalytics:ListChannels iotanalytics:ListDatasetContents iotanalytics:ListDatasets iotanalytics:ListDatastores iotanalytics:ListPipelines iotanalytics:PutLoggingOptions iotanalytics:RunPipelineActivity iotanalytics:SampleChannelData iotanalytics:StartPipelineReprocessing iotanalytics:UpdateChannel iotanalytics:UpdateDataset iotanalytics:UpdateDatastore iotanalytics:UpdatePipeline  | 
| iotdeviceadvisor |  iotdeviceadvisor:CreateSuiteDefinition iotdeviceadvisor:DeleteSuiteDefinition iotdeviceadvisor:GetEndpoint iotdeviceadvisor:GetSuiteDefinition iotdeviceadvisor:GetSuiteRun iotdeviceadvisor:GetSuiteRunReport iotdeviceadvisor:ListSuiteDefinitions iotdeviceadvisor:ListSuiteRuns iotdeviceadvisor:StartSuiteRun iotdeviceadvisor:StopSuiteRun iotdeviceadvisor:UpdateSuiteDefinition  | 
| iotevents |  iotevents:BatchAcknowledgeAlarm iotevents:BatchDeleteDetector iotevents:BatchDisableAlarm iotevents:BatchEnableAlarm iotevents:BatchResetAlarm iotevents:BatchSnoozeAlarm iotevents:BatchUpdateDetector iotevents:CreateAlarmModel iotevents:CreateDetectorModel iotevents:CreateInput iotevents:DeleteAlarmModel iotevents:DeleteDetectorModel iotevents:DeleteInput iotevents:DescribeAlarm iotevents:DescribeAlarmModel iotevents:DescribeDetector iotevents:DescribeDetectorModel iotevents:DescribeDetectorModelAnalysis iotevents:DescribeInput iotevents:DescribeLoggingOptions iotevents:GetDetectorModelAnalysisResults iotevents:ListAlarmModelVersions iotevents:ListAlarmModels iotevents:ListAlarms iotevents:ListDetectorModelVersions iotevents:ListDetectorModels iotevents:ListDetectors iotevents:ListInputRoutings iotevents:ListInputs iotevents:PutLoggingOptions iotevents:StartDetectorModelAnalysis iotevents:UpdateAlarmModel iotevents:UpdateDetectorModel iotevents:UpdateInput  | 
| iotfleethub |  iotfleethub:CreateApplication iotfleethub:DeleteApplication iotfleethub:DescribeApplication iotfleethub:ListApplications iotfleethub:UpdateApplication  | 
| iotsitewise |  iotsitewise:AssociateAssets iotsitewise:AssociateTimeSeriesToAssetProperty iotsitewise:BatchAssociateProjectAssets iotsitewise:BatchDisassociateProjectAssets iotsitewise:CreateAccessPolicy iotsitewise:CreateAsset iotsitewise:CreateAssetModel iotsitewise:CreateAssetModelCompositeModel iotsitewise:CreateBulkImportJob iotsitewise:CreateComputationModel iotsitewise:CreateDashboard iotsitewise:CreateDataset iotsitewise:CreateGateway iotsitewise:CreatePortal iotsitewise:CreateProject iotsitewise:DeleteAccessPolicy iotsitewise:DeleteAsset iotsitewise:DeleteAssetModel iotsitewise:DeleteAssetModelCompositeModel iotsitewise:DeleteComputationModel iotsitewise:DeleteDashboard iotsitewise:DeleteDataset iotsitewise:DeleteGateway iotsitewise:DeletePortal iotsitewise:DeleteProject iotsitewise:DeleteTimeSeries iotsitewise:DescribeAccessPolicy iotsitewise:DescribeAsset iotsitewise:DescribeAssetCompositeModel iotsitewise:DescribeAssetModel iotsitewise:DescribeAssetModelCompositeModel iotsitewise:DescribeAssetModelInterfaceRelationship iotsitewise:DescribeAssetProperty iotsitewise:DescribeBulkImportJob iotsitewise:DescribeComputationModel iotsitewise:DescribeComputationModelExecutionSummary iotsitewise:DescribeDashboard iotsitewise:DescribeDataset iotsitewise:DescribeDefaultEncryptionConfiguration iotsitewise:DescribeExecution iotsitewise:DescribeGateway iotsitewise:DescribeGatewayCapabilityConfiguration iotsitewise:DescribeLoggingOptions iotsitewise:DescribePortal iotsitewise:DescribeProject iotsitewise:DescribeStorageConfiguration iotsitewise:DescribeTimeSeries iotsitewise:DisassociateAssets iotsitewise:DisassociateTimeSeriesFromAssetProperty iotsitewise:ExecuteAction iotsitewise:ExecuteQuery iotsitewise:ListAccessPolicies iotsitewise:ListActions iotsitewise:ListAssetModelCompositeModels iotsitewise:ListAssetModelProperties iotsitewise:ListAssetModels iotsitewise:ListAssetProperties iotsitewise:ListAssetRelationships iotsitewise:ListAssets iotsitewise:ListAssociatedAssets iotsitewise:ListBulkImportJobs iotsitewise:ListCompositionRelationships iotsitewise:ListComputationModelDataBindingUsages iotsitewise:ListComputationModelResolveToResources iotsitewise:ListComputationModels iotsitewise:ListDashboards iotsitewise:ListDatasets iotsitewise:ListExecutions iotsitewise:ListGateways iotsitewise:ListInterfaceRelationships iotsitewise:ListPortals iotsitewise:ListProjectAssets iotsitewise:ListProjects iotsitewise:ListTimeSeries iotsitewise:PutDefaultEncryptionConfiguration iotsitewise:PutLoggingOptions iotsitewise:PutStorageConfiguration iotsitewise:UpdateAccessPolicy iotsitewise:UpdateAsset iotsitewise:UpdateAssetModel iotsitewise:UpdateAssetModelCompositeModel iotsitewise:UpdateAssetProperty iotsitewise:UpdateComputationModel iotsitewise:UpdateDashboard iotsitewise:UpdateDataset iotsitewise:UpdateGateway iotsitewise:UpdateGatewayCapabilityConfiguration iotsitewise:UpdatePortal iotsitewise:UpdateProject  | 
| iottwinmaker |  iottwinmaker:CancelMetadataTransferJob iottwinmaker:CreateComponentType iottwinmaker:CreateEntity iottwinmaker:CreateMetadataTransferJob iottwinmaker:CreateScene iottwinmaker:CreateSyncJob iottwinmaker:CreateWorkspace iottwinmaker:DeleteComponentType iottwinmaker:DeleteEntity iottwinmaker:DeleteScene iottwinmaker:DeleteSyncJob iottwinmaker:DeleteWorkspace iottwinmaker:ExecuteQuery iottwinmaker:GetMetadataTransferJob iottwinmaker:GetPricingPlan iottwinmaker:GetScene iottwinmaker:GetSyncJob iottwinmaker:ListComponentTypes iottwinmaker:ListComponents iottwinmaker:ListEntities iottwinmaker:ListMetadataTransferJobs iottwinmaker:ListProperties iottwinmaker:ListScenes iottwinmaker:ListSyncJobs iottwinmaker:ListSyncResources iottwinmaker:ListWorkspaces iottwinmaker:UpdateComponentType iottwinmaker:UpdateEntity iottwinmaker:UpdatePricingPlan iottwinmaker:UpdateScene iottwinmaker:UpdateWorkspace  | 
| iotwireless |  iotwireless:AssociateAwsAccountWithPartnerAccount iotwireless:AssociateMulticastGroupWithFuotaTask iotwireless:AssociateWirelessDeviceWithFuotaTask iotwireless:AssociateWirelessDeviceWithMulticastGroup iotwireless:AssociateWirelessDeviceWithThing iotwireless:AssociateWirelessGatewayWithCertificate iotwireless:AssociateWirelessGatewayWithThing iotwireless:CancelMulticastGroupSession iotwireless:CreateDestination iotwireless:CreateDeviceProfile iotwireless:CreateFuotaTask iotwireless:CreateMulticastGroup iotwireless:CreateNetworkAnalyzerConfiguration iotwireless:CreateServiceProfile iotwireless:CreateWirelessDevice iotwireless:CreateWirelessGateway iotwireless:CreateWirelessGatewayTask iotwireless:CreateWirelessGatewayTaskDefinition iotwireless:DeleteDestination iotwireless:DeleteDeviceProfile iotwireless:DeleteFuotaTask iotwireless:DeleteMulticastGroup iotwireless:DeleteNetworkAnalyzerConfiguration iotwireless:DeleteQueuedMessages iotwireless:DeleteServiceProfile iotwireless:DeleteWirelessDevice iotwireless:DeleteWirelessDeviceImportTask iotwireless:DeleteWirelessGateway iotwireless:DeleteWirelessGatewayTask iotwireless:DeleteWirelessGatewayTaskDefinition iotwireless:DeregisterWirelessDevice iotwireless:DisassociateAwsAccountFromPartnerAccount iotwireless:DisassociateMulticastGroupFromFuotaTask iotwireless:DisassociateWirelessDeviceFromFuotaTask iotwireless:DisassociateWirelessDeviceFromMulticastGroup iotwireless:DisassociateWirelessDeviceFromThing iotwireless:DisassociateWirelessGatewayFromCertificate iotwireless:DisassociateWirelessGatewayFromThing iotwireless:GetDestination iotwireless:GetDeviceProfile iotwireless:GetEventConfigurationByResourceTypes iotwireless:GetFuotaTask iotwireless:GetLogLevelsByResourceTypes iotwireless:GetMetricConfiguration iotwireless:GetMetrics iotwireless:GetMulticastGroup iotwireless:GetMulticastGroupSession iotwireless:GetNetworkAnalyzerConfiguration iotwireless:GetPartnerAccount iotwireless:GetPosition iotwireless:GetPositionConfiguration iotwireless:GetPositionEstimate iotwireless:GetResourceEventConfiguration iotwireless:GetResourceLogLevel iotwireless:GetResourcePosition iotwireless:GetServiceEndpoint iotwireless:GetServiceProfile iotwireless:GetWirelessDevice iotwireless:GetWirelessDeviceImportTask iotwireless:GetWirelessDeviceStatistics iotwireless:GetWirelessGateway iotwireless:GetWirelessGatewayCertificate iotwireless:GetWirelessGatewayFirmwareInformation iotwireless:GetWirelessGatewayStatistics iotwireless:GetWirelessGatewayTask iotwireless:GetWirelessGatewayTaskDefinition iotwireless:ListDestinations iotwireless:ListDeviceProfiles iotwireless:ListDevicesForWirelessDeviceImportTask iotwireless:ListEventConfigurations iotwireless:ListFuotaTasks iotwireless:ListMulticastGroups iotwireless:ListMulticastGroupsByFuotaTask iotwireless:ListNetworkAnalyzerConfigurations iotwireless:ListPartnerAccounts iotwireless:ListPositionConfigurations iotwireless:ListQueuedMessages iotwireless:ListServiceProfiles iotwireless:ListWirelessDeviceImportTasks iotwireless:ListWirelessDevices iotwireless:ListWirelessGatewayTaskDefinitions iotwireless:ListWirelessGateways iotwireless:PutPositionConfiguration iotwireless:PutResourceLogLevel iotwireless:ResetAllResourceLogLevels iotwireless:ResetResourceLogLevel iotwireless:SendDataToMulticastGroup iotwireless:SendDataToWirelessDevice iotwireless:StartBulkAssociateWirelessDeviceWithMulticastGroup iotwireless:StartBulkDisassociateWirelessDeviceFromMulticastGroup iotwireless:StartFuotaTask iotwireless:StartMulticastGroupSession iotwireless:StartNetworkAnalyzerStream iotwireless:StartSingleWirelessDeviceImportTask iotwireless:StartWirelessDeviceImportTask iotwireless:TestWirelessDevice iotwireless:UpdateDestination iotwireless:UpdateEventConfigurationByResourceTypes iotwireless:UpdateFuotaTask iotwireless:UpdateLogLevelsByResourceTypes iotwireless:UpdateMetricConfiguration iotwireless:UpdateMulticastGroup iotwireless:UpdateNetworkAnalyzerConfiguration iotwireless:UpdatePartnerAccount iotwireless:UpdatePosition iotwireless:UpdateResourceEventConfiguration iotwireless:UpdateResourcePosition iotwireless:UpdateWirelessDevice iotwireless:UpdateWirelessDeviceImportTask iotwireless:UpdateWirelessGateway  | 
| ivs |  ivs:BatchGetChannel ivs:BatchGetStreamKey ivs:BatchStartViewerSessionRevocation ivs:CreateChannel ivs:CreateEncoderConfiguration ivs:CreateIngestConfiguration ivs:CreateParticipantToken ivs:CreatePlaybackRestrictionPolicy ivs:CreateRecordingConfiguration ivs:CreateStorageConfiguration ivs:CreateStreamKey ivs:DeleteChannel ivs:DeleteEncoderConfiguration ivs:DeleteIngestConfiguration ivs:DeletePlaybackKeyPair ivs:DeletePlaybackRestrictionPolicy ivs:DeletePublicKey ivs:DeleteRecordingConfiguration ivs:DeleteStorageConfiguration ivs:DeleteStreamKey ivs:DisconnectParticipant ivs:GetChannel ivs:GetComposition ivs:GetEncoderConfiguration ivs:GetIngestConfiguration ivs:GetParticipant ivs:GetPlaybackKeyPair ivs:GetPlaybackRestrictionPolicy ivs:GetPublicKey ivs:GetRecordingConfiguration ivs:GetStorageConfiguration ivs:GetStream ivs:GetStreamKey ivs:GetStreamSession ivs:ImportPlaybackKeyPair ivs:ImportPublicKey ivs:ListChannels ivs:ListCompositions ivs:ListEncoderConfigurations ivs:ListIngestConfigurations ivs:ListParticipantEvents ivs:ListParticipantReplicas ivs:ListParticipants ivs:ListPlaybackKeyPairs ivs:ListPlaybackRestrictionPolicies ivs:ListPublicKeys ivs:ListRecordingConfigurations ivs:ListStorageConfigurations ivs:ListStreamKeys ivs:ListStreamSessions ivs:ListStreams ivs:PutMetadata ivs:StartComposition ivs:StartViewerSessionRevocation ivs:StopComposition ivs:StopStream ivs:UpdateChannel ivs:UpdateIngestConfiguration ivs:UpdatePlaybackRestrictionPolicy  | 
| ivschat |  ivschat:CreateChatToken ivschat:CreateLoggingConfiguration ivschat:CreateRoom ivschat:DeleteLoggingConfiguration ivschat:DeleteMessage ivschat:DeleteRoom ivschat:DisconnectUser ivschat:GetLoggingConfiguration ivschat:GetRoom ivschat:ListLoggingConfigurations ivschat:ListRooms ivschat:SendEvent ivschat:UpdateLoggingConfiguration ivschat:UpdateRoom  | 
| kafka |  kafka:BatchAssociateScramSecret kafka:BatchDisassociateScramSecret kafka:CreateCluster kafka:CreateClusterV2 kafka:CreateConfiguration kafka:CreateReplicator kafka:CreateVpcConnection kafka:DeleteCluster kafka:DeleteClusterPolicy kafka:DeleteConfiguration kafka:DeleteReplicator kafka:DeleteVpcConnection kafka:DescribeCluster kafka:DescribeClusterOperation kafka:DescribeClusterOperationV2 kafka:DescribeClusterV2 kafka:DescribeConfiguration kafka:DescribeConfigurationRevision kafka:DescribeVpcConnection kafka:GetBootstrapBrokers kafka:GetClusterPolicy kafka:GetCompatibleKafkaVersions kafka:ListClientVpcConnections kafka:ListClusterOperations kafka:ListClusterOperationsV2 kafka:ListClusters kafka:ListClustersV2 kafka:ListConfigurationRevisions kafka:ListConfigurations kafka:ListKafkaVersions kafka:ListNodes kafka:ListReplicators kafka:ListScramSecrets kafka:ListVpcConnections kafka:PutClusterPolicy kafka:RebootBroker kafka:RejectClientVpcConnection kafka:UpdateBrokerCount kafka:UpdateBrokerStorage kafka:UpdateBrokerType kafka:UpdateClusterConfiguration kafka:UpdateClusterKafkaVersion kafka:UpdateConfiguration kafka:UpdateConnectivity kafka:UpdateMonitoring kafka:UpdateRebalancing kafka:UpdateReplicationInfo kafka:UpdateSecurity kafka:UpdateStorage  | 
| kafkaconnect |  kafkaconnect:CreateConnector kafkaconnect:CreateCustomPlugin kafkaconnect:CreateWorkerConfiguration kafkaconnect:DeleteConnector kafkaconnect:DeleteCustomPlugin kafkaconnect:DeleteWorkerConfiguration kafkaconnect:DescribeConnector kafkaconnect:DescribeCustomPlugin kafkaconnect:DescribeWorkerConfiguration kafkaconnect:ListConnectorOperations kafkaconnect:ListConnectors kafkaconnect:ListCustomPlugins kafkaconnect:ListWorkerConfigurations kafkaconnect:UpdateConnector  | 
| kendra |  kendra:AssociateEntitiesToExperience kendra:AssociatePersonasToEntities kendra:BatchDeleteDocument kendra:BatchDeleteFeaturedResultsSet kendra:BatchGetDocumentStatus kendra:BatchPutDocument kendra:ClearQuerySuggestions kendra:CreateAccessControlConfiguration kendra:CreateDataSource kendra:CreateExperience kendra:CreateFaq kendra:CreateFeaturedResultsSet kendra:CreateIndex kendra:CreateQuerySuggestionsBlockList kendra:CreateThesaurus kendra:DeleteDataSource kendra:DeleteExperience kendra:DeleteFaq kendra:DeleteIndex kendra:DeletePrincipalMapping kendra:DeleteQuerySuggestionsBlockList kendra:DeleteThesaurus kendra:DescribeAccessControlConfiguration kendra:DescribeDataSource kendra:DescribeExperience kendra:DescribeFaq kendra:DescribeFeaturedResultsSet kendra:DescribeIndex kendra:DescribePrincipalMapping kendra:DescribeQuerySuggestionsBlockList kendra:DescribeQuerySuggestionsConfig kendra:DescribeThesaurus kendra:DisassociateEntitiesFromExperience kendra:DisassociatePersonasFromEntities kendra:GetQuerySuggestions kendra:GetSnapshots kendra:ListAccessControlConfigurations kendra:ListDataSourceSyncJobs kendra:ListDataSources kendra:ListEntityPersonas kendra:ListExperienceEntities kendra:ListExperiences kendra:ListFaqs kendra:ListFeaturedResultsSets kendra:ListGroupsOlderThanOrderingId kendra:ListIndices kendra:ListQuerySuggestionsBlockLists kendra:ListThesauri kendra:PutPrincipalMapping kendra:Query kendra:Retrieve kendra:StartDataSourceSyncJob kendra:StopDataSourceSyncJob kendra:SubmitFeedback kendra:UpdateDataSource kendra:UpdateExperience kendra:UpdateFeaturedResultsSet kendra:UpdateIndex kendra:UpdateQuerySuggestionsBlockList kendra:UpdateQuerySuggestionsConfig kendra:UpdateThesaurus  | 
| kinesis |  kinesis:CreateStream kinesis:DecreaseStreamRetentionPeriod kinesis:DeleteStream kinesis:DeregisterStreamConsumer kinesis:DescribeAccountSettings kinesis:DescribeLimits kinesis:DescribeStream kinesis:DescribeStreamConsumer kinesis:DescribeStreamSummary kinesis:DisableEnhancedMonitoring kinesis:EnableEnhancedMonitoring kinesis:IncreaseStreamRetentionPeriod kinesis:ListShards kinesis:ListStreamConsumers kinesis:ListStreams kinesis:MergeShards kinesis:RegisterStreamConsumer kinesis:SplitShard kinesis:StartStreamEncryption kinesis:StopStreamEncryption kinesis:UpdateAccountSettings kinesis:UpdateShardCount kinesis:UpdateStreamMode  | 
| kinesisanalytics |  kinesisanalytics:AddApplicationCloudWatchLoggingOption kinesisanalytics:AddApplicationInput kinesisanalytics:AddApplicationInputProcessingConfiguration kinesisanalytics:AddApplicationOutput kinesisanalytics:AddApplicationReferenceDataSource kinesisanalytics:AddApplicationVpcConfiguration kinesisanalytics:CreateApplication kinesisanalytics:CreateApplicationPresignedUrl kinesisanalytics:CreateApplicationSnapshot kinesisanalytics:DeleteApplication kinesisanalytics:DeleteApplicationCloudWatchLoggingOption kinesisanalytics:DeleteApplicationInputProcessingConfiguration kinesisanalytics:DeleteApplicationOutput kinesisanalytics:DeleteApplicationReferenceDataSource kinesisanalytics:DeleteApplicationSnapshot kinesisanalytics:DeleteApplicationVpcConfiguration kinesisanalytics:DescribeApplication kinesisanalytics:DescribeApplicationOperation kinesisanalytics:DescribeApplicationSnapshot kinesisanalytics:DescribeApplicationVersion kinesisanalytics:DiscoverInputSchema kinesisanalytics:ListApplicationOperations kinesisanalytics:ListApplicationSnapshots kinesisanalytics:ListApplicationVersions kinesisanalytics:ListApplications kinesisanalytics:RollbackApplication kinesisanalytics:StartApplication kinesisanalytics:StopApplication kinesisanalytics:UpdateApplication kinesisanalytics:UpdateApplicationMaintenanceConfiguration  | 
| kms |  kms:CancelKeyDeletion kms:ConnectCustomKeyStore kms:CreateAlias kms:CreateCustomKeyStore kms:CreateGrant kms:CreateKey kms:Decrypt kms:DeleteAlias kms:DeleteCustomKeyStore kms:DeleteImportedKeyMaterial kms:DeriveSharedSecret kms:DescribeCustomKeyStores kms:DescribeKey kms:DisableKey kms:DisableKeyRotation kms:DisconnectCustomKeyStore kms:EnableKey kms:EnableKeyRotation kms:Encrypt kms:GenerateDataKey kms:GenerateDataKeyPair kms:GenerateDataKeyPairWithoutPlaintext kms:GenerateDataKeyWithoutPlaintext kms:GenerateMac kms:GenerateRandom kms:GetKeyPolicy kms:GetKeyRotationStatus kms:GetParametersForImport kms:GetPublicKey kms:ImportKeyMaterial kms:ListAliases kms:ListGrants kms:ListKeyPolicies kms:ListKeyRotations kms:ListKeys kms:ListRetirableGrants kms:ReplicateKey kms:RetireGrant kms:RevokeGrant kms:RotateKeyOnDemand kms:ScheduleKeyDeletion kms:Sign kms:UpdateAlias kms:UpdateCustomKeyStore kms:UpdateKeyDescription kms:UpdatePrimaryRegion kms:Verify kms:VerifyMac  | 
| lambda |  lambda:AddLayerVersionPermission lambda:AddPermission lambda:CreateAlias lambda:CreateCodeSigningConfig lambda:CreateEventSourceMapping lambda:CreateFunction lambda:CreateFunctionUrlConfig lambda:DeleteAlias lambda:DeleteCapacityProvider lambda:DeleteCodeSigningConfig lambda:DeleteEventSourceMapping lambda:DeleteFunction lambda:DeleteFunctionCodeSigningConfig lambda:DeleteFunctionConcurrency lambda:DeleteFunctionEventInvokeConfig lambda:DeleteFunctionUrlConfig lambda:DeleteLayerVersion lambda:DeleteProvisionedConcurrencyConfig lambda:GetAccountSettings lambda:GetAlias lambda:GetCapacityProvider lambda:GetCodeSigningConfig lambda:GetEventSourceMapping lambda:GetFunction lambda:GetFunctionCodeSigningConfig lambda:GetFunctionConcurrency lambda:GetFunctionConfiguration lambda:GetFunctionEventInvokeConfig lambda:GetFunctionRecursionConfig lambda:GetFunctionScalingConfig lambda:GetFunctionUrlConfig lambda:GetLayerVersion lambda:GetLayerVersionPolicy lambda:GetPolicy lambda:GetProvisionedConcurrencyConfig lambda:GetRuntimeManagementConfig lambda:ListAliases lambda:ListCapacityProviders lambda:ListCodeSigningConfigs lambda:ListDurableExecutionsByFunction lambda:ListEventSourceMappings lambda:ListFunctionEventInvokeConfigs lambda:ListFunctionUrlConfigs lambda:ListFunctions lambda:ListFunctionsByCodeSigningConfig lambda:ListLayerVersions lambda:ListLayers lambda:ListProvisionedConcurrencyConfigs lambda:ListVersionsByFunction lambda:PublishLayerVersion lambda:PublishVersion lambda:PutFunctionCodeSigningConfig lambda:PutFunctionConcurrency lambda:PutFunctionEventInvokeConfig lambda:PutFunctionRecursionConfig lambda:PutFunctionScalingConfig lambda:PutProvisionedConcurrencyConfig lambda:PutRuntimeManagementConfig lambda:RemoveLayerVersionPermission lambda:RemovePermission lambda:UpdateAlias lambda:UpdateCapacityProvider lambda:UpdateCodeSigningConfig lambda:UpdateEventSourceMapping lambda:UpdateFunctionCode lambda:UpdateFunctionConfiguration lambda:UpdateFunctionEventInvokeConfig lambda:UpdateFunctionUrlConfig  | 
| lex |  lex:BatchCreateCustomVocabularyItem lex:BatchDeleteCustomVocabularyItem lex:BatchUpdateCustomVocabularyItem lex:BuildBotLocale lex:CreateBotAlias lex:CreateBotReplica lex:CreateBotVersion lex:CreateExport lex:CreateIntentVersion lex:CreateResourcePolicy lex:CreateSlotTypeVersion lex:CreateTestSetDiscrepancyReport lex:CreateUploadUrl lex:DeleteBot lex:DeleteBotChannelAssociation lex:DeleteBotReplica lex:DeleteExport lex:DeleteImport lex:DeleteIntentVersion lex:DeleteResourcePolicy lex:DeleteSlotTypeVersion lex:DeleteTestSet lex:DeleteUtterances lex:DescribeBotAlias lex:DescribeBotRecommendation lex:DescribeBotReplica lex:DescribeBotResourceGeneration lex:DescribeBotVersion lex:DescribeCustomVocabularyMetadata lex:DescribeExport lex:DescribeImport lex:DescribeResourcePolicy lex:DescribeTestExecution lex:DescribeTestSet lex:DescribeTestSetDiscrepancyReport lex:DescribeTestSetGeneration lex:GenerateBotElement lex:GetBot lex:GetBotAlias lex:GetBotAliases lex:GetBotChannelAssociation lex:GetBotChannelAssociations lex:GetBotVersions lex:GetBots lex:GetBuiltinIntent lex:GetBuiltinIntents lex:GetBuiltinSlotTypes lex:GetExport lex:GetImport lex:GetIntent lex:GetIntentVersions lex:GetIntents lex:GetMigration lex:GetMigrations lex:GetSlotType lex:GetSlotTypeVersions lex:GetSlotTypes lex:GetTestExecutionArtifactsUrl lex:GetUtterancesView lex:ListBotAliasReplicas lex:ListBotAliases lex:ListBotRecommendations lex:ListBotReplicas lex:ListBotResourceGenerations lex:ListBotVersionReplicas lex:ListBotVersions lex:ListBots lex:ListBuiltInIntents lex:ListBuiltInSlotTypes lex:ListCustomVocabularyItems lex:ListExports lex:ListImports lex:ListIntentMetrics lex:ListIntentPaths lex:ListRecommendedIntents lex:ListSessionAnalyticsData lex:ListSessionMetrics lex:ListTestExecutionResultItems lex:ListTestExecutions lex:ListTestSets lex:PutBot lex:PutBotAlias lex:PutIntent lex:PutSlotType lex:SearchAssociatedTranscripts lex:StartBotRecommendation lex:StartImport lex:StartMigration lex:StartTestExecution lex:StartTestSetGeneration lex:StopBotRecommendation lex:UpdateBotAlias lex:UpdateBotRecommendation lex:UpdateExport lex:UpdateResourcePolicy  | 
| license-manager-linux-subscriptions |  license-manager-linux-subscriptions:DeregisterSubscriptionProvider license-manager-linux-subscriptions:GetRegisteredSubscriptionProvider license-manager-linux-subscriptions:GetServiceSettings license-manager-linux-subscriptions:ListLinuxSubscriptionInstances license-manager-linux-subscriptions:ListLinuxSubscriptions license-manager-linux-subscriptions:ListRegisteredSubscriptionProviders license-manager-linux-subscriptions:RegisterSubscriptionProvider license-manager-linux-subscriptions:UpdateServiceSettings  | 
| lightsail |  lightsail:AllocateStaticIp lightsail:AttachCertificateToDistribution lightsail:AttachDisk lightsail:AttachInstancesToLoadBalancer lightsail:AttachLoadBalancerTlsCertificate lightsail:AttachStaticIp lightsail:CloseInstancePublicPorts lightsail:CopySnapshot lightsail:CreateBucket lightsail:CreateBucketAccessKey lightsail:CreateCertificate lightsail:CreateCloudFormationStack lightsail:CreateContactMethod lightsail:CreateContainerService lightsail:CreateContainerServiceDeployment lightsail:CreateContainerServiceRegistryLogin lightsail:CreateDisk lightsail:CreateDiskFromSnapshot lightsail:CreateDiskSnapshot lightsail:CreateDistribution lightsail:CreateDomain lightsail:CreateGUISessionAccessDetails lightsail:CreateInstanceSnapshot lightsail:CreateInstances lightsail:CreateInstancesFromSnapshot lightsail:CreateKeyPair lightsail:CreateLoadBalancer lightsail:CreateLoadBalancerTlsCertificate lightsail:CreateRelationalDatabase lightsail:CreateRelationalDatabaseFromSnapshot lightsail:CreateRelationalDatabaseSnapshot lightsail:DeleteAlarm lightsail:DeleteAutoSnapshot lightsail:DeleteBucket lightsail:DeleteBucketAccessKey lightsail:DeleteCertificate lightsail:DeleteContactMethod lightsail:DeleteContainerImage lightsail:DeleteContainerService lightsail:DeleteDisk lightsail:DeleteDiskSnapshot lightsail:DeleteDistribution lightsail:DeleteDomain lightsail:DeleteDomainEntry lightsail:DeleteInstance lightsail:DeleteInstanceSnapshot lightsail:DeleteKeyPair lightsail:DeleteKnownHostKeys lightsail:DeleteLoadBalancer lightsail:DeleteLoadBalancerTlsCertificate lightsail:DeleteRelationalDatabase lightsail:DeleteRelationalDatabaseSnapshot lightsail:DetachCertificateFromDistribution lightsail:DetachDisk lightsail:DetachInstancesFromLoadBalancer lightsail:DetachStaticIp lightsail:DisableAddOn lightsail:DownloadDefaultKeyPair lightsail:EnableAddOn lightsail:ExportSnapshot lightsail:GetActiveNames lightsail:GetAlarms lightsail:GetAutoSnapshots lightsail:GetBlueprints lightsail:GetBucketAccessKeys lightsail:GetBucketBundles lightsail:GetBucketMetricData lightsail:GetBuckets lightsail:GetBundles lightsail:GetCertificates lightsail:GetCloudFormationStackRecords lightsail:GetContactMethods lightsail:GetContainerAPIMetadata lightsail:GetContainerImages lightsail:GetContainerLog lightsail:GetContainerServiceDeployments lightsail:GetContainerServiceMetricData lightsail:GetContainerServicePowers lightsail:GetContainerServices lightsail:GetCostEstimate lightsail:GetDisk lightsail:GetDiskSnapshot lightsail:GetDiskSnapshots lightsail:GetDisks lightsail:GetDistributionBundles lightsail:GetDistributionLatestCacheReset lightsail:GetDistributionMetricData lightsail:GetDistributions lightsail:GetDomain lightsail:GetExportSnapshotRecords lightsail:GetInstance lightsail:GetInstanceMetricData lightsail:GetInstancePortStates lightsail:GetInstanceSnapshot lightsail:GetInstanceSnapshots lightsail:GetInstanceState lightsail:GetInstances lightsail:GetKeyPair lightsail:GetKeyPairs lightsail:GetLoadBalancer lightsail:GetLoadBalancerMetricData lightsail:GetLoadBalancerTlsCertificates lightsail:GetLoadBalancerTlsPolicies lightsail:GetLoadBalancers lightsail:GetOperation lightsail:GetOperations lightsail:GetOperationsForResource lightsail:GetRegions lightsail:GetRelationalDatabase lightsail:GetRelationalDatabaseBlueprints lightsail:GetRelationalDatabaseBundles lightsail:GetRelationalDatabaseEvents lightsail:GetRelationalDatabaseLogEvents lightsail:GetRelationalDatabaseLogStreams lightsail:GetRelationalDatabaseMasterUserPassword lightsail:GetRelationalDatabaseMetricData lightsail:GetRelationalDatabaseParameters lightsail:GetRelationalDatabaseSnapshot lightsail:GetRelationalDatabaseSnapshots lightsail:GetRelationalDatabases lightsail:GetSetupHistory lightsail:GetStaticIp lightsail:GetStaticIps lightsail:ImportKeyPair lightsail:IsVpcPeered lightsail:OpenInstancePublicPorts lightsail:PeerVpc lightsail:PutAlarm lightsail:PutInstancePublicPorts lightsail:RebootInstance lightsail:RebootRelationalDatabase lightsail:RegisterContainerImage lightsail:releaseStatiCip lightsail:ResetDistributionCache lightsail:SendContactMethodVerification lightsail:SetIpAddressType lightsail:SetResourceAccessForBucket lightsail:SetupInstanceHttps lightsail:StartGUISession lightsail:StartInstance lightsail:StartRelationalDatabase lightsail:StopGUISession lightsail:StopInstance lightsail:StopRelationalDatabase lightsail:TestAlarm lightsail:UnpeerVpc lightsail:UpdateBucket lightsail:UpdateBucketBundle lightsail:UpdateContainerService lightsail:UpdateDistribution lightsail:UpdateDistributionBundle lightsail:UpdateDomainEntry lightsail:UpdateInstanceMetadataOptions lightsail:UpdateLoadBalancerAttribute lightsail:UpdateRelationalDatabase lightsail:UpdateRelationalDatabaseParameters  | 
| logs |  logs:AssociateKmsKey logs:AssociateSourceToS3TableIntegration logs:CancelExportTask logs:CancelImportTask logs:CreateDelivery logs:CreateExportTask logs:CreateLogAnomalyDetector logs:CreateLogGroup logs:CreateLogStream logs:DeleteDataProtectionPolicy logs:DeleteDelivery logs:DeleteDeliveryDestination logs:DeleteDeliveryDestinationPolicy logs:DeleteDeliverySource logs:DeleteDestination logs:DeleteIndexPolicy logs:DeleteIntegration logs:DeleteLogAnomalyDetector logs:DeleteLogGroup logs:DeleteLogStream logs:DeleteMetricFilter logs:DeleteQueryDefinition logs:DeleteResourcePolicy logs:DeleteRetentionPolicy logs:DeleteScheduledQuery logs:DeleteSubscriptionFilter logs:DeleteTransformer logs:DescribeAccountPolicies logs:DescribeConfigurationTemplates logs:DescribeDeliveries logs:DescribeDeliveryDestinations logs:DescribeDeliverySources logs:DescribeDestinations logs:DescribeExportTasks logs:DescribeFieldIndexes logs:DescribeImportTaskBatches logs:DescribeImportTasks logs:DescribeIndexPolicies logs:DescribeLogGroups logs:DescribeLogStreams logs:DescribeMetricFilters logs:DescribeQueries logs:DescribeQueryDefinitions logs:DescribeResourcePolicies logs:DescribeSubscriptionFilters logs:DisassociateKmsKey logs:DisassociateSourceFromS3TableIntegration logs:GetDataProtectionPolicy logs:GetDelivery logs:GetDeliveryDestination logs:GetDeliveryDestinationPolicy logs:GetDeliverySource logs:GetIntegration logs:GetLogAnomalyDetector logs:GetLogFields logs:GetLogGroupFields logs:GetLogRecord logs:GetQueryResults logs:GetScheduledQuery logs:GetScheduledQueryHistory logs:GetTransformer logs:IntegrateWithS3Table logs:ListAnomalies logs:ListIntegrations logs:ListLogAnomalyDetectors logs:ListLogGroupsForQuery logs:ListScheduledQueries logs:ListSourcesForS3TableIntegration logs:ProcessWithPipeline logs:PutDataProtectionPolicy logs:PutDeliveryDestination logs:PutDeliveryDestinationPolicy logs:PutDeliverySource logs:PutDestination logs:PutDestinationPolicy logs:PutIndexPolicy logs:PutIntegration logs:PutLogGroupDeletionProtection logs:PutMetricFilter logs:PutQueryDefinition logs:PutResourcePolicy logs:PutRetentionPolicy logs:PutSubscriptionFilter logs:PutTransformer logs:StartLiveTail logs:StartQuery logs:StopQuery logs:TestMetricFilter logs:TestTransformer logs:UpdateAnomaly logs:UpdateDeliveryConfiguration logs:UpdateLogAnomalyDetector  | 
| lookoutequipment |  lookoutequipment:CreateDataset lookoutequipment:CreateInferenceScheduler lookoutequipment:CreateLabel lookoutequipment:CreateLabelGroup lookoutequipment:CreateModel lookoutequipment:DeleteDataset lookoutequipment:DeleteInferenceScheduler lookoutequipment:DeleteLabel lookoutequipment:DeleteLabelGroup lookoutequipment:DeleteModel lookoutequipment:DeleteResourcePolicy lookoutequipment:DeleteRetrainingScheduler lookoutequipment:DescribeDataIngestionJob lookoutequipment:DescribeDataset lookoutequipment:DescribeInferenceScheduler lookoutequipment:DescribeLabelGroup lookoutequipment:DescribeModel lookoutequipment:DescribeModelVersion lookoutequipment:DescribeResourcePolicy lookoutequipment:DescribeRetrainingScheduler lookoutequipment:Describelabel lookoutequipment:ImportDataset lookoutequipment:ImportModelVersion lookoutequipment:ListDataIngestionJobs lookoutequipment:ListDatasets lookoutequipment:ListInferenceEvents lookoutequipment:ListInferenceExecutions lookoutequipment:ListInferenceSchedulers lookoutequipment:ListLabelGroups lookoutequipment:ListLabels lookoutequipment:ListModelVersions lookoutequipment:ListModels lookoutequipment:ListRetrainingSchedulers lookoutequipment:ListSensorStatistics lookoutequipment:PutResourcePolicy lookoutequipment:StartDataIngestionJob lookoutequipment:StartInferenceScheduler lookoutequipment:StartRetrainingScheduler lookoutequipment:StopInferenceScheduler lookoutequipment:StopRetrainingScheduler lookoutequipment:UpdateActiveModelVersion lookoutequipment:UpdateInferenceScheduler lookoutequipment:UpdateLabelGroup lookoutequipment:UpdateModel lookoutequipment:UpdateRetrainingScheduler  | 
| lookoutmetrics |  lookoutmetrics:ActivateAnomalyDetector lookoutmetrics:BackTestAnomalyDetector lookoutmetrics:CreateAlert lookoutmetrics:CreateAnomalyDetector lookoutmetrics:CreateMetricSet lookoutmetrics:DeactivateAnomalyDetector lookoutmetrics:DeleteAlert lookoutmetrics:DeleteAnomalyDetector lookoutmetrics:DescribeAlert lookoutmetrics:DescribeAnomalyDetectionExecutions lookoutmetrics:DescribeAnomalyDetector lookoutmetrics:DescribeMetricSet lookoutmetrics:DetectMetricSetConfig lookoutmetrics:GetAnomalyGroup lookoutmetrics:GetDataQualityMetrics lookoutmetrics:GetFeedback lookoutmetrics:GetSampleData lookoutmetrics:ListAlerts lookoutmetrics:ListAnomalyDetectors lookoutmetrics:ListAnomalyGroupRelatedMetrics lookoutmetrics:ListAnomalyGroupSummaries lookoutmetrics:ListAnomalyGroupTimeSeries lookoutmetrics:ListMetricSets lookoutmetrics:PutFeedback lookoutmetrics:UpdateAlert lookoutmetrics:UpdateAnomalyDetector lookoutmetrics:UpdateMetricSet  | 
| lookoutvision |  lookoutvision:CreateDataset lookoutvision:CreateModel lookoutvision:CreateProject lookoutvision:DeleteDataset lookoutvision:DeleteModel lookoutvision:DeleteProject lookoutvision:DescribeDataset lookoutvision:DescribeModel lookoutvision:DescribeModelPackagingJob lookoutvision:DescribeProject lookoutvision:DetectAnomalies lookoutvision:ListDatasetEntries lookoutvision:ListModelPackagingJobs lookoutvision:ListModels lookoutvision:ListProjects lookoutvision:StartModel lookoutvision:StartModelPackagingJob lookoutvision:StopModel lookoutvision:UpdateDatasetEntries  | 
| m2 |  m2:CancelBatchJobExecution m2:CreateApplication m2:CreateDataSetExportTask m2:CreateDataSetImportTask m2:CreateDeployment m2:CreateEnvironment m2:DeleteApplication m2:DeleteApplicationFromEnvironment m2:DeleteEnvironment m2:GetApplication m2:GetApplicationVersion m2:GetBatchJobExecution m2:GetDataSetDetails m2:GetDataSetExportTask m2:GetDataSetImportTask m2:GetDeployment m2:GetEnvironment m2:GetSignedBluinsightsUrl m2:ListApplicationVersions m2:ListApplications m2:ListBatchJobDefinitions m2:ListBatchJobExecutions m2:ListBatchJobRestartPoints m2:ListDataSetExportHistory m2:ListDataSetImportHistory m2:ListDataSets m2:ListDeployments m2:ListEngineVersions m2:ListEnvironments m2:StartApplication m2:StartBatchJob m2:StopApplication m2:UpdateApplication m2:UpdateEnvironment  | 
| managedblockchain |  managedblockchain:CreateAccessor managedblockchain:CreateMember managedblockchain:CreateNetwork managedblockchain:CreateNode managedblockchain:CreateProposal managedblockchain:DeleteAccessor managedblockchain:DeleteMember managedblockchain:DeleteNode managedblockchain:GetAccessor managedblockchain:GetMember managedblockchain:GetNetwork managedblockchain:GetNode managedblockchain:GetProposal managedblockchain:InvokeRpcPolygonMainnet managedblockchain:InvokeRpcPolygonMumbaiTestnet managedblockchain:ListAccessors managedblockchain:ListInvitations managedblockchain:ListMembers managedblockchain:ListNetworks managedblockchain:ListNodes managedblockchain:ListProposalVotes managedblockchain:ListProposals managedblockchain:RejectInvitation managedblockchain:UpdateMember managedblockchain:UpdateNode managedblockchain:VoteOnProposal  | 
| mediaconnect |  mediaconnect:AddBridgeOutputs mediaconnect:AddBridgeSources mediaconnect:AddFlowMediaStreams mediaconnect:AddFlowOutputs mediaconnect:AddFlowSources mediaconnect:AddFlowVpcInterfaces mediaconnect:CreateBridge mediaconnect:CreateFlow mediaconnect:CreateGateway mediaconnect:DeleteBridge mediaconnect:DeleteFlow mediaconnect:DeleteGateway mediaconnect:DeleteRouterInput mediaconnect:DeleteRouterNetworkInterface mediaconnect:DeleteRouterOutput mediaconnect:DeregisterGatewayInstance mediaconnect:DescribeBridge mediaconnect:DescribeFlow mediaconnect:DescribeFlowSourceMetadata mediaconnect:DescribeFlowSourceThumbnail mediaconnect:DescribeGateway mediaconnect:DescribeGatewayInstance mediaconnect:DescribeOffering mediaconnect:DescribeReservation mediaconnect:GetRouterInput mediaconnect:GetRouterInputSourceMetadata mediaconnect:GetRouterInputThumbnail mediaconnect:GetRouterNetworkInterface mediaconnect:GetRouterOutput mediaconnect:GrantFlowEntitlements mediaconnect:ListBridges mediaconnect:ListEntitlements mediaconnect:ListFlows mediaconnect:ListGatewayInstances mediaconnect:ListGateways mediaconnect:ListOfferings mediaconnect:ListReservations mediaconnect:ListRouterInputs mediaconnect:ListRouterNetworkInterfaces mediaconnect:ListRouterOutputs mediaconnect:PurchaseOffering mediaconnect:RemoveBridgeOutput mediaconnect:RemoveBridgeSource mediaconnect:RemoveFlowMediaStream mediaconnect:RemoveFlowOutput mediaconnect:RemoveFlowSource mediaconnect:RemoveFlowVpcInterface mediaconnect:RestartRouterInput mediaconnect:RestartRouterOutput mediaconnect:RevokeFlowEntitlement mediaconnect:StartFlow mediaconnect:StartRouterInput mediaconnect:StartRouterOutput mediaconnect:StopFlow mediaconnect:StopRouterInput mediaconnect:StopRouterOutput mediaconnect:TakeRouterInput mediaconnect:UpdateBridge mediaconnect:UpdateBridgeOutput mediaconnect:UpdateBridgeSource mediaconnect:UpdateBridgeState mediaconnect:UpdateFlow mediaconnect:UpdateFlowEntitlement mediaconnect:UpdateFlowMediaStream mediaconnect:UpdateGatewayInstance  | 
| mediaconvert |  mediaconvert:AssociateCertificate mediaconvert:CancelJob mediaconvert:CreateJob mediaconvert:CreateJobTemplate mediaconvert:CreatePreset mediaconvert:CreateQueue mediaconvert:CreateResourceShare mediaconvert:DeleteJobTemplate mediaconvert:DeletePolicy mediaconvert:DeletePreset mediaconvert:DeleteQueue mediaconvert:DescribeEndpoints mediaconvert:DisassociateCertificate mediaconvert:GetJob mediaconvert:GetJobTemplate mediaconvert:GetPolicy mediaconvert:GetPreset mediaconvert:GetQueue mediaconvert:ListJobTemplates mediaconvert:ListJobs mediaconvert:ListPresets mediaconvert:ListQueues mediaconvert:ListVersions mediaconvert:Probe mediaconvert:PutPolicy mediaconvert:SearchJobs mediaconvert:UpdateJobTemplate mediaconvert:UpdatePreset mediaconvert:UpdateQueue  | 
| medialive |  medialive:AcceptInputDeviceTransfer medialive:BatchDelete medialive:BatchStart medialive:BatchStop medialive:BatchUpdateSchedule medialive:CancelInputDeviceTransfer medialive:ClaimDevice medialive:CreateChannel medialive:CreateChannelPlacementGroup medialive:CreateCloudWatchAlarmTemplate medialive:CreateCloudWatchAlarmTemplateGroup medialive:CreateCluster medialive:CreateEventBridgeRuleTemplate medialive:CreateEventBridgeRuleTemplateGroup medialive:CreateInput medialive:CreateInputSecurityGroup medialive:CreateMultiplex medialive:CreateMultiplexProgram medialive:CreateNetwork medialive:CreateNode medialive:CreateNodeRegistrationScript medialive:CreatePartnerInput medialive:CreateSdiSource medialive:CreateSignalMap medialive:DeleteChannel medialive:DeleteChannelPlacementGroup medialive:DeleteCloudWatchAlarmTemplate medialive:DeleteCloudWatchAlarmTemplateGroup medialive:DeleteCluster medialive:DeleteEventBridgeRuleTemplate medialive:DeleteEventBridgeRuleTemplateGroup medialive:DeleteInput medialive:DeleteInputSecurityGroup medialive:DeleteMultiplex medialive:DeleteMultiplexProgram medialive:DeleteNetwork medialive:DeleteNode medialive:DeleteReservation medialive:DeleteSchedule medialive:DeleteSdiSource medialive:DeleteSignalMap medialive:DescribeAccountConfiguration medialive:DescribeChannel medialive:DescribeChannelPlacementGroup medialive:DescribeCluster medialive:DescribeInput medialive:DescribeInputDevice medialive:DescribeInputDeviceThumbnail medialive:DescribeInputSecurityGroup medialive:DescribeMultiplex medialive:DescribeMultiplexProgram medialive:DescribeNetwork medialive:DescribeNode medialive:DescribeOffering medialive:DescribeReservation medialive:DescribeSchedule medialive:DescribeSdiSource medialive:DescribeThumbnails medialive:GetCloudWatchAlarmTemplate medialive:GetCloudWatchAlarmTemplateGroup medialive:GetEventBridgeRuleTemplate medialive:GetEventBridgeRuleTemplateGroup medialive:GetSignalMap medialive:ListAlerts medialive:ListChannelPlacementGroups medialive:ListChannels medialive:ListCloudWatchAlarmTemplateGroups medialive:ListCloudWatchAlarmTemplates medialive:ListClusterAlerts medialive:ListClusters medialive:ListEventBridgeRuleTemplateGroups medialive:ListEventBridgeRuleTemplates medialive:ListInputDeviceTransfers medialive:ListInputDevices medialive:ListInputSecurityGroups medialive:ListInputs medialive:ListMultiplexAlerts medialive:ListMultiplexPrograms medialive:ListMultiplexes medialive:ListNetworks medialive:ListNodes medialive:ListOfferings medialive:ListReservations medialive:ListSdiSources medialive:ListSignalMaps medialive:ListVersions medialive:PurchaseOffering medialive:RebootInputDevice medialive:RejectInputDeviceTransfer medialive:RestartChannelPipelines medialive:StartChannel medialive:StartDeleteMonitorDeployment medialive:StartInputDevice medialive:StartInputDeviceMaintenanceWindow medialive:StartMonitorDeployment medialive:StartMultiplex medialive:StartUpdateSignalMap medialive:StopChannel medialive:StopInputDevice medialive:StopMultiplex medialive:TransferInputDevice medialive:UpdateAccountConfiguration medialive:UpdateChannel medialive:UpdateChannelClass medialive:UpdateChannelPlacementGroup medialive:UpdateCloudWatchAlarmTemplate medialive:UpdateCloudWatchAlarmTemplateGroup medialive:UpdateCluster medialive:UpdateEventBridgeRuleTemplate medialive:UpdateEventBridgeRuleTemplateGroup medialive:UpdateInput medialive:UpdateInputDevice medialive:UpdateInputSecurityGroup medialive:UpdateMultiplex medialive:UpdateMultiplexProgram medialive:UpdateNetwork medialive:UpdateNode medialive:UpdateNodeState medialive:UpdateReservation medialive:UpdateSdiSource  | 
| mediastore |  mediastore:CreateContainer mediastore:DeleteContainer mediastore:DeleteContainerPolicy mediastore:DeleteCorsPolicy mediastore:DeleteLifecyclePolicy mediastore:DeleteMetricPolicy mediastore:DescribeContainer mediastore:GetContainerPolicy mediastore:GetCorsPolicy mediastore:GetLifecyclePolicy mediastore:GetMetricPolicy mediastore:ListContainers mediastore:PutContainerPolicy mediastore:PutCorsPolicy mediastore:PutLifecyclePolicy mediastore:PutMetricPolicy mediastore:StartAccessLogging mediastore:StopAccessLogging  | 
| mediatailor |  mediatailor:ConfigureLogsForPlaybackConfiguration mediatailor:CreateChannel mediatailor:CreateLiveSource mediatailor:CreatePrefetchSchedule mediatailor:CreateProgram mediatailor:CreateSourceLocation mediatailor:CreateVodSource mediatailor:DeleteChannel mediatailor:DeleteChannelPolicy mediatailor:DeleteLiveSource mediatailor:DeletePlaybackConfiguration mediatailor:DeletePrefetchSchedule mediatailor:DeleteProgram mediatailor:DeleteSourceLocation mediatailor:DeleteVodSource mediatailor:DescribeChannel mediatailor:DescribeLiveSource mediatailor:DescribeProgram mediatailor:DescribeSourceLocation mediatailor:DescribeVodSource mediatailor:GetChannelPolicy mediatailor:GetChannelSchedule mediatailor:GetPlaybackConfiguration mediatailor:GetPrefetchSchedule mediatailor:ListAlerts mediatailor:ListChannels mediatailor:ListLiveSources mediatailor:ListPlaybackConfigurations mediatailor:ListPrefetchSchedules mediatailor:ListSourceLocations mediatailor:ListVodSources mediatailor:PutChannelPolicy mediatailor:PutPlaybackConfiguration mediatailor:StartChannel mediatailor:StopChannel mediatailor:UpdateChannel mediatailor:UpdateLiveSource mediatailor:UpdateProgram mediatailor:UpdateSourceLocation mediatailor:UpdateVodSource  | 
| memorydb |  memorydb:BatchUpdateCluster memorydb:CopySnapshot memorydb:CreateAcl memorydb:CreateCluster memorydb:CreateMultiRegionCluster memorydb:CreateParameterGroup memorydb:CreateSnapshot memorydb:CreateSubnetGroup memorydb:CreateUser memorydb:DeleteAcl memorydb:DeleteCluster memorydb:DeleteMultiRegionCluster memorydb:DeleteParameterGroup memorydb:DeleteSnapshot memorydb:DeleteSubnetGroup memorydb:DeleteUser memorydb:DescribeAcls memorydb:DescribeClusters memorydb:DescribeEngineVersions memorydb:DescribeEvents memorydb:DescribeMultiRegionClusters memorydb:DescribeMultiRegionParameterGroups memorydb:DescribeMultiRegionParameters memorydb:DescribeParameterGroups memorydb:DescribeParameters memorydb:DescribeReservedNodes memorydb:DescribeReservedNodesOfferings memorydb:DescribeServiceUpdates memorydb:DescribeSnapshots memorydb:DescribeSubnetGroups memorydb:DescribeUsers memorydb:FailoverShard memorydb:ListAllowedMultiRegionClusterUpdates memorydb:ListAllowedNodeTypeUpdates memorydb:PurchaseReservedNodesOffering memorydb:ResetParameterGroup memorydb:UpdateAcl memorydb:UpdateCluster memorydb:UpdateMultiRegionCluster memorydb:UpdateParameterGroup memorydb:UpdateSubnetGroup memorydb:UpdateUser  | 
| mgh |  mgh:AssociateCreatedArtifact mgh:AssociateDiscoveredResource mgh:AssociateSourceResource mgh:CreateHomeRegionControl mgh:CreateProgressUpdateStream mgh:DeleteHomeRegionControl mgh:DeleteProgressUpdateStream mgh:DescribeApplicationState mgh:DescribeHomeRegionControls mgh:DescribeMigrationTask mgh:DisassociateCreatedArtifact mgh:DisassociateDiscoveredResource mgh:DisassociateSourceResource mgh:GetHomeRegion mgh:ImportMigrationTask mgh:ListApplicationStates mgh:ListCreatedArtifacts mgh:ListDiscoveredResources mgh:ListMigrationTaskUpdates mgh:ListMigrationTasks mgh:ListProgressUpdateStreams mgh:ListSourceResources mgh:NotifyApplicationState mgh:NotifyMigrationTaskState mgh:PutResourceAttributes  | 
| mgn |  mgn:ArchiveApplication mgn:ArchiveWave mgn:AssociateApplications mgn:AssociateSourceServers mgn:ChangeServerLifeCycleState mgn:CreateApplication mgn:CreateConnector mgn:CreateLaunchConfigurationTemplate mgn:CreateReplicationConfigurationTemplate mgn:CreateWave mgn:DeleteApplication mgn:DeleteConnector mgn:DeleteJob mgn:DeleteLaunchConfigurationTemplate mgn:DeleteReplicationConfigurationTemplate mgn:DeleteSourceServer mgn:DeleteVcenterClient mgn:DeleteWave mgn:DescribeJobLogItems mgn:DescribeJobs mgn:DescribeLaunchConfigurationTemplates mgn:DescribeReplicationConfigurationTemplates mgn:DescribeVcenterClients mgn:DisassociateApplications mgn:DisassociateSourceServers mgn:DisconnectFromService mgn:FinalizeCutover mgn:GetReplicationConfiguration mgn:InitializeService mgn:ListConnectors mgn:ListExportErrors mgn:ListExports mgn:ListImportErrors mgn:ListImports mgn:ListManagedAccounts mgn:ListSourceServerActions mgn:ListTemplateActions mgn:MarkAsArchived mgn:PauseReplication mgn:PutSourceServerAction mgn:PutTemplateAction mgn:RemoveSourceServerAction mgn:RemoveTemplateAction mgn:ResumeReplication mgn:RetryDataReplication mgn:StartCutover mgn:StartExport mgn:StartImport mgn:StartReplication mgn:StartTest mgn:StopReplication mgn:TerminateTargetInstances mgn:UnarchiveApplication mgn:UnarchiveWave mgn:UpdateApplication mgn:UpdateConnector mgn:UpdateLaunchConfigurationTemplate mgn:UpdateReplicationConfiguration mgn:UpdateReplicationConfigurationTemplate mgn:UpdateSourceServer mgn:UpdateSourceServerReplicationType mgn:UpdateWave  | 
| migrationhub-strategy |  migrationhub-strategy:GetAntiPattern migrationhub-strategy:GetApplicationComponentDetails migrationhub-strategy:GetApplicationComponentStrategies migrationhub-strategy:GetAssessment migrationhub-strategy:GetImportFileTask migrationhub-strategy:GetLatestAssessmentId migrationhub-strategy:GetMessage migrationhub-strategy:GetPortfolioPreferences migrationhub-strategy:GetPortfolioSummary migrationhub-strategy:GetRecommendationReportDetails migrationhub-strategy:GetServerDetails migrationhub-strategy:GetServerStrategies migrationhub-strategy:ListAnalyzableServers migrationhub-strategy:ListAntiPatterns migrationhub-strategy:ListApplicationComponents migrationhub-strategy:ListCollectors migrationhub-strategy:ListImportFileTask migrationhub-strategy:ListJarArtifacts migrationhub-strategy:ListServers migrationhub-strategy:PutLogData migrationhub-strategy:PutMetricData migrationhub-strategy:PutPortfolioPreferences migrationhub-strategy:RegisterCollector migrationhub-strategy:SendMessage migrationhub-strategy:StartAssessment migrationhub-strategy:StartImportFileTask migrationhub-strategy:StartRecommendationReportGeneration migrationhub-strategy:StopAssessment migrationhub-strategy:UpdateApplicationComponentConfig migrationhub-strategy:UpdateCollectorConfiguration migrationhub-strategy:UpdateServerConfig  | 
| mobiletargeting |  mobiletargeting:CreateApp mobiletargeting:CreateCampaign mobiletargeting:CreateEmailTemplate mobiletargeting:CreateExportJob mobiletargeting:CreateImportJob mobiletargeting:CreateInAppTemplate mobiletargeting:CreateJourney mobiletargeting:CreatePushTemplate mobiletargeting:CreateRecommenderConfiguration mobiletargeting:CreateSegment mobiletargeting:CreateSmsTemplate mobiletargeting:CreateVoiceTemplate mobiletargeting:DeleteAdmChannel mobiletargeting:DeleteApnsChannel mobiletargeting:DeleteApnsSandboxChannel mobiletargeting:DeleteApnsVoipChannel mobiletargeting:DeleteApnsVoipSandboxChannel mobiletargeting:DeleteApp mobiletargeting:DeleteBaiduChannel mobiletargeting:DeleteCampaign mobiletargeting:DeleteEmailChannel mobiletargeting:DeleteEmailTemplate mobiletargeting:DeleteEndpoint mobiletargeting:DeleteEventStream mobiletargeting:DeleteGcmChannel mobiletargeting:DeleteInAppTemplate mobiletargeting:DeleteJourney mobiletargeting:DeletePushTemplate mobiletargeting:DeleteRecommenderConfiguration mobiletargeting:DeleteSegment mobiletargeting:DeleteSmsChannel mobiletargeting:DeleteSmsTemplate mobiletargeting:DeleteUserEndpoints mobiletargeting:DeleteVoiceChannel mobiletargeting:DeleteVoiceTemplate mobiletargeting:GetAdmChannel mobiletargeting:GetApnsChannel mobiletargeting:GetApnsSandboxChannel mobiletargeting:GetApnsVoipChannel mobiletargeting:GetApnsVoipSandboxChannel mobiletargeting:GetApp mobiletargeting:GetApplicationDateRangeKpi mobiletargeting:GetApplicationSettings mobiletargeting:GetApps mobiletargeting:GetBaiduChannel mobiletargeting:GetCampaign mobiletargeting:GetCampaignActivities mobiletargeting:GetCampaignDateRangeKpi mobiletargeting:GetCampaignVersion mobiletargeting:GetCampaignVersions mobiletargeting:GetCampaigns mobiletargeting:GetChannels mobiletargeting:GetEmailChannel mobiletargeting:GetEmailTemplate mobiletargeting:GetEndpoint mobiletargeting:GetEventStream mobiletargeting:GetExportJob mobiletargeting:GetExportJobs mobiletargeting:GetGcmChannel mobiletargeting:GetImportJob mobiletargeting:GetImportJobs mobiletargeting:GetInAppMessages mobiletargeting:GetInAppTemplate mobiletargeting:GetJourney mobiletargeting:GetJourneyDateRangeKpi mobiletargeting:GetJourneyExecutionActivityMetrics mobiletargeting:GetJourneyExecutionMetrics mobiletargeting:GetJourneyRunExecutionActivityMetrics mobiletargeting:GetJourneyRunExecutionMetrics mobiletargeting:GetJourneyRuns mobiletargeting:GetPushTemplate mobiletargeting:GetRecommenderConfiguration mobiletargeting:GetRecommenderConfigurations mobiletargeting:GetSegment mobiletargeting:GetSegmentExportJobs mobiletargeting:GetSegmentImportJobs mobiletargeting:GetSegmentVersion mobiletargeting:GetSegmentVersions mobiletargeting:GetSegments mobiletargeting:GetSmsChannel mobiletargeting:GetSmsTemplate mobiletargeting:GetUserEndpoints mobiletargeting:GetVoiceChannel mobiletargeting:GetVoiceTemplate mobiletargeting:ListJourneys mobiletargeting:ListTemplateVersions mobiletargeting:ListTemplates mobiletargeting:PhoneNumberValidate mobiletargeting:PutEventStream mobiletargeting:RemoveAttributes mobiletargeting:UpdateAdmChannel mobiletargeting:UpdateApnsChannel mobiletargeting:UpdateApnsSandboxChannel mobiletargeting:UpdateApnsVoipChannel mobiletargeting:UpdateApnsVoipSandboxChannel mobiletargeting:UpdateApplicationSettings mobiletargeting:UpdateBaiduChannel mobiletargeting:UpdateCampaign mobiletargeting:UpdateEmailChannel mobiletargeting:UpdateEmailTemplate mobiletargeting:UpdateEndpoint mobiletargeting:UpdateEndpointsBatch mobiletargeting:UpdateGcmChannel mobiletargeting:UpdateInAppTemplate mobiletargeting:UpdateJourney mobiletargeting:UpdateJourneyState mobiletargeting:UpdatePushTemplate mobiletargeting:UpdateRecommenderConfiguration mobiletargeting:UpdateSegment mobiletargeting:UpdateSmsChannel mobiletargeting:UpdateSmsTemplate mobiletargeting:UpdateTemplateActiveVersion mobiletargeting:UpdateVoiceChannel mobiletargeting:UpdateVoiceTemplate mobiletargeting:VerifyOTPMessage  | 
| mq |  mq:CreateBroker mq:CreateConfiguration mq:CreateUser mq:DeleteBroker mq:DeleteConfiguration mq:DeleteUser mq:DescribeBroker mq:DescribeBrokerEngineTypes mq:DescribeBrokerInstanceOptions mq:DescribeConfiguration mq:DescribeConfigurationRevision mq:DescribeUser mq:ListBrokers mq:ListConfigurationRevisions mq:ListConfigurations mq:ListUsers mq:Promote mq:RebootBroker mq:UpdateBroker mq:UpdateConfiguration mq:UpdateUser  | 
| networkmanager |  networkmanager:AcceptAttachment networkmanager:AssociateConnectPeer networkmanager:AssociateCustomerGateway networkmanager:AssociateLink networkmanager:AssociateTransitGatewayConnectPeer networkmanager:CreateConnectAttachment networkmanager:CreateConnectPeer networkmanager:CreateConnection networkmanager:CreateCoreNetwork networkmanager:CreateDevice networkmanager:CreateDirectConnectGatewayAttachment networkmanager:CreateGlobalNetwork networkmanager:CreateLink networkmanager:CreateSite networkmanager:CreateSiteToSiteVpnAttachment networkmanager:CreateTransitGatewayPeering networkmanager:CreateTransitGatewayRouteTableAttachment networkmanager:CreateVpcAttachment networkmanager:DeleteAttachment networkmanager:DeleteConnectPeer networkmanager:DeleteConnection networkmanager:DeleteCoreNetwork networkmanager:DeleteCoreNetworkPolicyVersion networkmanager:DeleteDevice networkmanager:DeleteGlobalNetwork networkmanager:DeleteLink networkmanager:DeletePeering networkmanager:DeleteResourcePolicy networkmanager:DeleteSite networkmanager:DeregisterTransitGateway networkmanager:DescribeGlobalNetworks networkmanager:DisassociateConnectPeer networkmanager:DisassociateCustomerGateway networkmanager:DisassociateLink networkmanager:DisassociateTransitGatewayConnectPeer networkmanager:ExecuteCoreNetworkChangeSet networkmanager:GetConnectAttachment networkmanager:GetConnectPeer networkmanager:GetConnectPeerAssociations networkmanager:GetConnections networkmanager:GetCoreNetwork networkmanager:GetCoreNetworkChangeEvents networkmanager:GetCoreNetworkChangeSet networkmanager:GetCoreNetworkPolicy networkmanager:GetCustomerGatewayAssociations networkmanager:GetDevices networkmanager:GetLinkAssociations networkmanager:GetLinks networkmanager:GetNetworkResourceCounts networkmanager:GetNetworkResourceRelationships networkmanager:GetNetworkResources networkmanager:GetNetworkRoutes networkmanager:GetNetworkTelemetry networkmanager:GetResourcePolicy networkmanager:GetRouteAnalysis networkmanager:GetSiteToSiteVpnAttachment networkmanager:GetSites networkmanager:GetTransitGatewayConnectPeerAssociations networkmanager:GetTransitGatewayPeering networkmanager:GetTransitGatewayRegistrations networkmanager:GetTransitGatewayRouteTableAttachment networkmanager:GetVpcAttachment networkmanager:ListAttachmentRoutingPolicyAssociations networkmanager:ListAttachments networkmanager:ListConnectPeers networkmanager:ListCoreNetworkPolicyVersions networkmanager:ListCoreNetworkPrefixListAssociations networkmanager:ListCoreNetworkRoutingInformation networkmanager:ListCoreNetworks networkmanager:ListOrganizationServiceAccessStatus networkmanager:ListPeerings networkmanager:PutAttachmentRoutingPolicyLabel networkmanager:PutCoreNetworkPolicy networkmanager:PutResourcePolicy networkmanager:RegisterTransitGateway networkmanager:RejectAttachment networkmanager:RemoveAttachmentRoutingPolicyLabel networkmanager:RestoreCoreNetworkPolicyVersion networkmanager:StartOrganizationServiceAccessUpdate networkmanager:StartRouteAnalysis networkmanager:UpdateConnection networkmanager:UpdateCoreNetwork networkmanager:UpdateDevice networkmanager:UpdateDirectConnectGatewayAttachment networkmanager:UpdateGlobalNetwork networkmanager:UpdateLink networkmanager:UpdateNetworkResourceMetadata networkmanager:UpdateSite networkmanager:UpdateVpcAttachment  | 
| nimble |  nimble:AcceptEulas nimble:CreateLaunchProfile nimble:CreateStreamingImage nimble:CreateStreamingSession nimble:CreateStreamingSessionStream nimble:CreateStudio nimble:CreateStudioComponent nimble:DeleteLaunchProfile nimble:DeleteLaunchProfileMember nimble:DeleteStreamingImage nimble:DeleteStreamingSession nimble:DeleteStudio nimble:DeleteStudioComponent nimble:DeleteStudioMember nimble:GetEula nimble:GetLaunchProfileDetails nimble:GetStreamingImage nimble:GetStreamingSession nimble:GetStreamingSessionBackup nimble:GetStreamingSessionStream nimble:GetStudio nimble:GetStudioComponent nimble:GetStudioMember nimble:ListEulas nimble:ListLaunchProfileMembers nimble:ListLaunchProfiles nimble:ListStreamingImages nimble:ListStreamingSessionBackups nimble:ListStreamingSessions nimble:ListStudioComponents nimble:ListStudioMembers nimble:ListStudios nimble:PutLaunchProfileMembers nimble:PutStudioMembers nimble:StartStreamingSession nimble:StartStudioSSOConfigurationRepair nimble:StopStreamingSession nimble:UpdateLaunchProfile nimble:UpdateLaunchProfileMember nimble:UpdateStreamingImage nimble:UpdateStudio nimble:UpdateStudioComponent  | 
| omics |  omics:AbortMultipartReadSetUpload omics:AcceptShare omics:BatchDeleteReadSet omics:CancelAnnotationImportJob omics:CancelRun omics:CancelVariantImportJob omics:CompleteMultipartReadSetUpload omics:CreateAnnotationStore omics:CreateAnnotationStoreVersion omics:CreateMultipartReadSetUpload omics:CreateReferenceStore omics:CreateRunGroup omics:CreateSequenceStore omics:CreateShare omics:CreateVariantStore omics:CreateWorkflow omics:CreateWorkflowVersion omics:DeleteAnnotationStore omics:DeleteAnnotationStoreVersions omics:DeleteReference omics:DeleteReferenceStore omics:DeleteRun omics:DeleteRunGroup omics:DeleteSequenceStore omics:DeleteShare omics:DeleteVariantStore omics:DeleteWorkflow omics:DeleteWorkflowVersion omics:GetAnnotationImportJob omics:GetAnnotationStore omics:GetAnnotationStoreVersion omics:GetReadSet omics:GetReadSetActivationJob omics:GetReadSetExportJob omics:GetReadSetImportJob omics:GetReadSetMetadata omics:GetReference omics:GetReferenceImportJob omics:GetReferenceMetadata omics:GetReferenceStore omics:GetRun omics:GetRunGroup omics:GetRunTask omics:GetSequenceStore omics:GetShare omics:GetVariantImportJob omics:GetVariantStore omics:GetWorkflow omics:GetWorkflowVersion omics:ListAnnotationImportJobs omics:ListAnnotationStoreVersions omics:ListAnnotationStores omics:ListMultipartReadSetUploads omics:ListReadSetActivationJobs omics:ListReadSetExportJobs omics:ListReadSetImportJobs omics:ListReadSetUploadParts omics:ListReadSets omics:ListReferenceImportJobs omics:ListReferenceStores omics:ListReferences omics:ListRunGroups omics:ListRunTasks omics:ListRuns omics:ListSequenceStores omics:ListShares omics:ListVariantImportJobs omics:ListVariantStores omics:ListWorkflowVersions omics:ListWorkflows omics:StartAnnotationImportJob omics:StartReadSetActivationJob omics:StartReadSetExportJob omics:StartReadSetImportJob omics:StartReferenceImportJob omics:StartRun omics:StartVariantImportJob omics:UpdateAnnotationStore omics:UpdateAnnotationStoreVersion omics:UpdateRunGroup omics:UpdateVariantStore omics:UpdateWorkflow omics:UpdateWorkflowVersion omics:UploadReadSetPart  | 
| opsworks |  opsworks:AssignInstance opsworks:AssignVolume opsworks:AssociateElasticIp opsworks:AttachElasticLoadBalancer opsworks:CloneStack opsworks:CreateApp opsworks:CreateDeployment opsworks:CreateInstance opsworks:CreateLayer opsworks:CreateStack opsworks:CreateUserProfile opsworks:DeleteApp opsworks:DeleteInstance opsworks:DeleteLayer opsworks:DeleteStack opsworks:DeleteUserProfile opsworks:DeregisterEcsCluster opsworks:DeregisterElasticIp opsworks:DeregisterInstance opsworks:DeregisterRdsDbInstance opsworks:DeregisterVolume opsworks:DescribeAgentVersions opsworks:DescribeApps opsworks:DescribeCommands opsworks:DescribeDeployments opsworks:DescribeEcsClusters opsworks:DescribeElasticIps opsworks:DescribeElasticLoadBalancers opsworks:DescribeInstances opsworks:DescribeLayers opsworks:DescribeLoadBasedAutoScaling opsworks:DescribeMyUserProfile opsworks:DescribeOperatingSystems opsworks:DescribePermissions opsworks:DescribeRaidArrays opsworks:DescribeRdsDbInstances opsworks:DescribeServiceErrors opsworks:DescribeStackProvisioningParameters opsworks:DescribeStackSummary opsworks:DescribeStacks opsworks:DescribeTimeBasedAutoScaling opsworks:DescribeUserProfiles opsworks:DescribeVolumes opsworks:DetachElasticLoadBalancer opsworks:DisassociateElasticIp opsworks:GetHostnameSuggestion opsworks:GrantAccess opsworks:RebootInstance opsworks:RegisterEcsCluster opsworks:RegisterElasticIp opsworks:RegisterInstance opsworks:RegisterRdsDbInstance opsworks:RegisterVolume opsworks:SetLoadBasedAutoScaling opsworks:SetPermission opsworks:SetTimeBasedAutoScaling opsworks:StartInstance opsworks:StartStack opsworks:StopInstance opsworks:StopStack opsworks:UnassignInstance opsworks:UnassignVolume opsworks:UpdateApp opsworks:UpdateElasticIp opsworks:UpdateInstance opsworks:UpdateLayer opsworks:UpdateMyUserProfile opsworks:UpdateRdsDbInstance opsworks:UpdateStack opsworks:UpdateUserProfile opsworks:UpdateVolume  | 
| opsworks-cm |  opsworks-cm:AssociateNode opsworks-cm:CreateBackup opsworks-cm:CreateServer opsworks-cm:DeleteBackup opsworks-cm:DeleteServer opsworks-cm:DescribeAccountAttributes opsworks-cm:DescribeBackups opsworks-cm:DescribeEvents opsworks-cm:DescribeNodeAssociationStatus opsworks-cm:DescribeServers opsworks-cm:DisassociateNode opsworks-cm:ExportServerEngineAttribute opsworks-cm:RestoreServer opsworks-cm:StartMaintenance opsworks-cm:UpdateServer opsworks-cm:UpdateServerEngineAttributes  | 
| 组织 |  organizations:AcceptHandshake organizations:AttachPolicy organizations:CancelHandshake organizations:CloseAccount organizations:CreateAccount organizations:CreateGovCloudAccount organizations:CreateOrganization organizations:CreateOrganizationalUnit organizations:CreatePolicy organizations:DeclineHandshake organizations:DeleteOrganization organizations:DeleteOrganizationalUnit organizations:DeletePolicy organizations:DeleteResourcePolicy organizations:DeregisterDelegatedAdministrator organizations:DescribeAccount organizations:DescribeCreateAccountStatus organizations:DescribeEffectivePolicy organizations:DescribeHandshake organizations:DescribeOrganization organizations:DescribeOrganizationalUnit organizations:DescribePolicy organizations:DescribeResourcePolicy organizations:DescribeResponsibilityTransfer organizations:DetachPolicy organizations:DisableAWSServiceAccess organizations:DisablePolicyType organizations:EnableAWSServiceAccess organizations:EnableAllFeatures organizations:EnablePolicyType organizations:InviteAccountToOrganization organizations:LeaveOrganization organizations:ListAWSServiceAccessForOrganization organizations:ListAccounts organizations:ListAccountsForParent organizations:ListAccountsWithInvalidEffectivePolicy organizations:ListChildren organizations:ListCreateAccountStatus organizations:ListDelegatedAdministrators organizations:ListDelegatedServicesForAccount organizations:ListHandshakesForAccount organizations:ListHandshakesForOrganization organizations:ListInboundResponsibilityTransfers organizations:ListOrganizationalUnitsForParent organizations:ListOutboundResponsibilityTransfers organizations:ListParents organizations:ListPolicies organizations:ListPoliciesForTarget organizations:ListRoots organizations:ListTargetsForPolicy organizations:MoveAccount organizations:PutResourcePolicy organizations:RegisterDelegatedAdministrator organizations:RemoveAccountFromOrganization organizations:TerminateResponsibilityTransfer organizations:UpdateOrganizationalUnit organizations:UpdatePolicy organizations:UpdateResponsibilityTransfer  | 
| outposts |  outposts:CancelCapacityTask outposts:CancelOrder outposts:CreateOrder outposts:CreateOutpost outposts:CreatePrivateConnectivityConfig outposts:CreateSite outposts:DeleteOutpost outposts:DeleteSite outposts:GetCapacityTask outposts:GetCatalogItem outposts:GetConnection outposts:GetOrder outposts:GetOutpost outposts:GetOutpostBillingInformation outposts:GetOutpostInstanceTypes outposts:GetOutpostSupportedInstanceTypes outposts:GetPrivateConnectivityConfig outposts:GetSite outposts:GetSiteAddress outposts:ListAssetInstances outposts:ListAssets outposts:ListBlockingInstancesForCapacityTask outposts:ListCapacityTasks outposts:ListCatalogItems outposts:ListOrders outposts:ListOutposts outposts:ListSites outposts:StartCapacityTask outposts:StartConnection outposts:UpdateOutpost outposts:UpdateSite outposts:UpdateSiteAddress outposts:UpdateSiteRackPhysicalProperties  | 
| panorama |  panorama:CreateApplicationInstance panorama:CreateJobForDevices panorama:CreateNodeFromTemplateJob panorama:CreatePackage panorama:CreatePackageImportJob panorama:DeleteDevice panorama:DeletePackage panorama:DeregisterPackageVersion panorama:DescribeApplicationInstance panorama:DescribeApplicationInstanceDetails panorama:DescribeDevice panorama:DescribeDeviceJob panorama:DescribeNode panorama:DescribeNodeFromTemplateJob panorama:DescribePackage panorama:DescribePackageImportJob panorama:DescribePackageVersion panorama:ListApplicationInstanceDependencies panorama:ListApplicationInstanceNodeInstances panorama:ListApplicationInstances panorama:ListDevices panorama:ListDevicesJobs panorama:ListNodeFromTemplateJobs panorama:ListNodes panorama:ListPackageImportJobs panorama:ListPackages panorama:ProvisionDevice panorama:RegisterPackageVersion panorama:RemoveApplicationInstance panorama:SignalApplicationInstanceNodeInstances panorama:UpdateDeviceMetadata  | 
| pi |  pi:CreatePerformanceAnalysisReport pi:DeletePerformanceAnalysisReport pi:DescribeDimensionKeys pi:GetDimensionKeyDetails pi:GetPerformanceAnalysisReport pi:GetResourceMetadata pi:GetResourceMetrics pi:ListAvailableResourceDimensions pi:ListAvailableResourceMetrics pi:ListPerformanceAnalysisReports  | 
| pipes |  pipes:CreatePipe pipes:DeletePipe pipes:DescribePipe pipes:ListPipes pipes:StartPipe pipes:StopPipe pipes:UpdatePipe  | 
| polly |  polly:DeleteLexicon polly:DescribeVoices polly:GetLexicon polly:GetSpeechSynthesisTask polly:ListLexicons polly:ListSpeechSynthesisTasks polly:PutLexicon polly:StartSpeechSynthesisTask polly:SynthesizeSpeech  | 
| 配置文件 |  profile:AddProfileKey profile:BatchGetCalculatedAttributeForProfile profile:BatchGetProfile profile:CreateCalculatedAttributeDefinition profile:CreateDomain profile:CreateEventStream profile:CreateProfile profile:CreateRecommender profile:CreateSegmentDefinition profile:CreateSegmentEstimate profile:CreateSegmentSnapshot profile:CreateUploadJob profile:DeleteCalculatedAttributeDefinition profile:DeleteDomain profile:DeleteDomainObjectType profile:DeleteEventStream profile:DeleteIntegration profile:DeleteProfile profile:DeleteProfileKey profile:DeleteProfileObject profile:DeleteProfileObjectType profile:DeleteRecommender profile:DeleteSegmentDefinition profile:DeleteWorkflow profile:DetectProfileObjectType profile:GetAutoMergingPreview profile:GetCalculatedAttributeDefinition profile:GetCalculatedAttributeForProfile profile:GetDomain profile:GetDomainObjectType profile:GetEventStream profile:GetIdentityResolutionJob profile:GetIntegration profile:GetMatches profile:GetObjectTypeAttributeStatistics profile:GetProfileObjectType profile:GetProfileObjectTypeTemplate profile:GetProfileRecommendations profile:GetRecommender profile:GetSegmentDefinition profile:GetSegmentEstimate profile:GetSegmentMembership profile:GetSegmentSnapshot profile:GetSimilarProfiles profile:GetUploadJob profile:GetUploadJobPath profile:GetWorkflow profile:GetWorkflowSteps profile:ListAccountIntegrations profile:ListCalculatedAttributeDefinitions profile:ListCalculatedAttributesForProfile profile:ListDomainLayouts profile:ListDomainObjectTypes profile:ListDomains profile:ListEventStreams profile:ListIdentityResolutionJobs profile:ListIntegrations profile:ListObjectTypeAttributeValues profile:ListObjectTypeAttributes profile:ListProfileAttributeValues profile:ListProfileObjectTypeTemplates profile:ListProfileObjectTypes profile:ListProfileObjects profile:ListRecommenderRecipes profile:ListRecommenders profile:ListRuleBasedMatches profile:ListSegmentDefinitions profile:ListUploadJobs profile:ListWorkflows profile:MergeProfiles profile:PutDomainObjectType profile:PutIntegration profile:PutProfileObject profile:PutProfileObjectType profile:SearchProfiles profile:StartRecommender profile:StartUploadJob profile:StopRecommender profile:StopUploadJob profile:UpdateCalculatedAttributeDefinition profile:UpdateDomain profile:UpdateProfile profile:UpdateRecommender  | 
| qldb |  qldb:CancelJournalKinesisStream qldb:CreateLedger qldb:DeleteLedger qldb:DescribeJournalKinesisStream qldb:DescribeJournalS3Export qldb:DescribeLedger qldb:ExportJournalToS3 qldb:GetBlock qldb:GetDigest qldb:GetRevision qldb:ListJournalKinesisStreamsForLedger qldb:ListJournalS3Exports qldb:ListJournalS3ExportsForLedger qldb:ListLedgers qldb:StreamJournalToKinesis qldb:UpdateLedger qldb:UpdateLedgerPermissionsMode  | 
| ram |  ram:AcceptResourceShareInvitation ram:AssociateResourceShare ram:AssociateResourceSharePermission ram:CreatePermission ram:CreatePermissionVersion ram:CreateResourceShare ram:DeletePermission ram:DeletePermissionVersion ram:DeleteResourceShare ram:DisassociateResourceShare ram:DisassociateResourceSharePermission ram:EnableSharingWithAwsOrganization ram:GetPermission ram:GetResourcePolicies ram:GetResourceShareAssociations ram:GetResourceShareInvitations ram:GetResourceShares ram:ListPendingInvitationResources ram:ListPermissionAssociations ram:ListPermissionVersions ram:ListPermissions ram:ListPrincipals ram:ListReplacePermissionAssociationsWork ram:ListResourceSharePermissions ram:ListResourceTypes ram:ListResources ram:PromotePermissionCreatedFromPolicy ram:PromoteResourceShareCreatedFromPolicy ram:RejectResourceShareInvitation ram:ReplacePermissionAssociations ram:SetDefaultPermissionVersion ram:UpdateResourceShare  | 
| rbin |  rbin:CreateRule rbin:DeleteRule rbin:GetRule rbin:ListRules rbin:LockRule rbin:UnlockRule rbin:UpdateRule  | 
| rds |  rds:AddRoleToDBCluster rds:AddRoleToDBInstance rds:AddSourceIdentifierToSubscription rds:ApplyPendingMaintenanceAction rds:AuthorizeDBSecurityGroupIngress rds:BacktrackDBCluster rds:CancelExportTask rds:CopyDBClusterParameterGroup rds:CopyDBClusterSnapshot rds:CopyDBParameterGroup rds:CopyDBSnapshot rds:CopyOptionGroup rds:CreateCustomDBEngineVersion rds:CreateDBClusterParameterGroup rds:CreateDBParameterGroup rds:CreateDBProxy rds:CreateDBProxyEndpoint rds:CreateDBSecurityGroup rds:CreateDBSubnetGroup rds:CreateEventSubscription rds:CreateGlobalCluster rds:CreateOptionGroup rds:DeleteBlueGreenDeployment rds:DeleteDBClusterAutomatedBackup rds:DeleteDBClusterParameterGroup rds:DeleteDBClusterSnapshot rds:DeleteDBInstanceAutomatedBackup rds:DeleteDBParameterGroup rds:DeleteDBProxy rds:DeleteDBProxyEndpoint rds:DeleteDBSecurityGroup rds:DeleteDBSnapshot rds:DeleteDBSubnetGroup rds:DeleteEventSubscription rds:DeleteGlobalCluster rds:DeleteOptionGroup rds:DeregisterDBProxyTargets rds:DescribeAccountAttributes rds:DescribeBlueGreenDeployments rds:DescribeCertificates rds:DescribeDBClusterAutomatedBackups rds:DescribeDBClusterBacktracks rds:DescribeDBClusterEndpoints rds:DescribeDBClusterParameterGroups rds:DescribeDBClusterParameters rds:DescribeDBClusterSnapshotAttributes rds:DescribeDBClusterSnapshots rds:DescribeDBClusters rds:DescribeDBEngineVersions rds:DescribeDBInstanceAutomatedBackups rds:DescribeDBInstances rds:DescribeDBLogFiles rds:DescribeDBMajorEngineVersions rds:DescribeDBParameterGroups rds:DescribeDBParameters rds:DescribeDBProxies rds:DescribeDBProxyEndpoints rds:DescribeDBProxyTargetGroups rds:DescribeDBProxyTargets rds:DescribeDBRecommendations rds:DescribeDBSecurityGroups rds:DescribeDBSnapshotAttributes rds:DescribeDBSnapshotTenantDatabases rds:DescribeDBSnapshots rds:DescribeDBSubnetGroups rds:DescribeEngineDefaultClusterParameters rds:DescribeEngineDefaultParameters rds:DescribeEventCategories rds:DescribeEventSubscriptions rds:DescribeEvents rds:DescribeExportTasks rds:DescribeGlobalClusters rds:DescribeIntegrations rds:DescribeOptionGroupOptions rds:DescribeOptionGroups rds:DescribeOrderableDBInstanceOptions rds:DescribePendingMaintenanceActions rds:DescribeReservedDBInstances rds:DescribeReservedDBInstancesOfferings rds:DescribeSourceRegions rds:DescribeTenantDatabases rds:DescribeValidDBInstanceModifications rds:DownloadCompleteDBLogFile rds:DownloadDBLogFilePortion rds:FailoverDBCluster rds:FailoverGlobalCluster rds:ModifyActivityStream rds:ModifyCertificates rds:ModifyCurrentDBClusterCapacity rds:ModifyDBClusterEndpoint rds:ModifyDBClusterParameterGroup rds:ModifyDBClusterSnapshotAttribute rds:ModifyDBParameterGroup rds:ModifyDBProxy rds:ModifyDBProxyEndpoint rds:ModifyDBProxyTargetGroup rds:ModifyDBRecommendation rds:ModifyDBSnapshot rds:ModifyDBSnapshotAttribute rds:ModifyDBSubnetGroup rds:ModifyEventSubscription rds:ModifyGlobalCluster rds:ModifyOptionGroup rds:ModifyTenantDatabase rds:PurchaseReservedDBInstancesOffering rds:RebootDBCluster rds:RegisterDBProxyTargets rds:RemoveFromGlobalCluster rds:RemoveRoleFromDBCluster rds:RemoveRoleFromDBInstance rds:RemoveSourceIdentifierFromSubscription rds:ResetDBClusterParameterGroup rds:ResetDBParameterGroup rds:RestoreDBClusterFromS3 rds:RestoreDBClusterFromSnapshot rds:RestoreDBClusterToPointInTime rds:RestoreDBInstanceFromDBSnapshot rds:RestoreDBInstanceFromS3 rds:RestoreDBInstanceToPointInTime rds:RevokeDBSecurityGroupIngress rds:StartActivityStream rds:StartDBCluster rds:StartDBInstance rds:StartDBInstanceAutomatedBackupsReplication rds:StartExportTask rds:StopActivityStream rds:StopDBCluster rds:StopDBInstance rds:StopDBInstanceAutomatedBackupsReplication rds:SwitchoverBlueGreenDeployment rds:SwitchoverGlobalCluster rds:SwitchoverReadReplica  | 
| redshift |  redshift:AcceptReservedNodeExchange redshift:AddPartner redshift:AssociateDataShareConsumer redshift:AuthorizeClusterSecurityGroupIngress redshift:AuthorizeDataShare redshift:AuthorizeEndpointAccess redshift:AuthorizeSnapshotAccess redshift:BatchDeleteClusterSnapshots redshift:BatchModifyClusterSnapshots redshift:CancelQuery redshift:CancelResize redshift:CopyClusterSnapshot redshift:CreateAuthenticationProfile redshift:CreateCluster redshift:CreateClusterParameterGroup redshift:CreateClusterSecurityGroup redshift:CreateClusterSnapshot redshift:CreateClusterSubnetGroup redshift:CreateCustomDomainAssociation redshift:CreateEndpointAccess redshift:CreateEventSubscription redshift:CreateHsmClientCertificate redshift:CreateHsmConfiguration redshift:CreateIntegration redshift:CreateRedshiftIdcApplication redshift:CreateScheduledAction redshift:CreateSnapshotCopyGrant redshift:CreateSnapshotSchedule redshift:CreateUsageLimit redshift:DeauthorizeDataShare redshift:DeleteAuthenticationProfile redshift:DeleteCluster redshift:DeleteClusterParameterGroup redshift:DeleteClusterSecurityGroup redshift:DeleteClusterSnapshot redshift:DeleteClusterSubnetGroup redshift:DeleteCustomDomainAssociation redshift:DeleteEndpointAccess redshift:DeleteEventSubscription redshift:DeleteHsmClientCertificate redshift:DeleteHsmConfiguration redshift:DeletePartner redshift:DeleteRedshiftIdcApplication redshift:DeleteResourcePolicy redshift:DeleteScheduledAction redshift:DeleteSnapshotCopyGrant redshift:DeleteSnapshotSchedule redshift:DeleteUsageLimit redshift:DeregisterNamespace redshift:DescribeAccountAttributes redshift:DescribeAuthenticationProfiles redshift:DescribeClusterDbRevisions redshift:DescribeClusterParameterGroups redshift:DescribeClusterParameters redshift:DescribeClusterSecurityGroups redshift:DescribeClusterSnapshots redshift:DescribeClusterSubnetGroups redshift:DescribeClusterTracks redshift:DescribeClusterVersions redshift:DescribeClusters redshift:DescribeCustomDomainAssociations redshift:DescribeDataShares redshift:DescribeDataSharesForConsumer redshift:DescribeDataSharesForProducer redshift:DescribeDefaultClusterParameters redshift:DescribeEndpointAccess redshift:DescribeEndpointAuthorization redshift:DescribeEventCategories redshift:DescribeEventSubscriptions redshift:DescribeEvents redshift:DescribeHsmClientCertificates redshift:DescribeHsmConfigurations redshift:DescribeInboundIntegrations redshift:DescribeIntegrations redshift:DescribeLoggingStatus redshift:DescribeNodeConfigurationOptions redshift:DescribeOrderableClusterOptions redshift:DescribePartners redshift:DescribeRedshiftIdcApplications redshift:DescribeReservedNodeExchangeStatus redshift:DescribeReservedNodeOfferings redshift:DescribeReservedNodes redshift:DescribeResize redshift:DescribeScheduledActions redshift:DescribeSnapshotCopyGrants redshift:DescribeSnapshotSchedules redshift:DescribeStorage redshift:DescribeTableRestoreStatus redshift:DescribeUsageLimits redshift:DisableLogging redshift:DisableSnapshotCopy redshift:DisassociateDataShareConsumer redshift:EnableLogging redshift:EnableSnapshotCopy redshift:FailoverPrimaryCompute redshift:GetClusterCredentials redshift:GetClusterCredentialsWithIAM redshift:GetIdentityCenterAuthToken redshift:GetReservedNodeExchangeConfigurationOptions redshift:GetReservedNodeExchangeOfferings redshift:GetResourcePolicy redshift:ListRecommendations redshift:ModifyAquaConfiguration redshift:ModifyAuthenticationProfile redshift:ModifyCluster redshift:ModifyClusterDbRevision redshift:ModifyClusterIamRoles redshift:ModifyClusterMaintenance redshift:ModifyClusterParameterGroup redshift:ModifyClusterSnapshot redshift:ModifyClusterSnapshotSchedule redshift:ModifyClusterSubnetGroup redshift:ModifyCustomDomainAssociation redshift:ModifyEndpointAccess redshift:ModifyEventSubscription redshift:ModifyRedshiftIdcApplication redshift:ModifyScheduledAction redshift:ModifySnapshotCopyRetentionPeriod redshift:ModifySnapshotSchedule redshift:ModifyUsageLimit redshift:PauseCluster redshift:PurchaseReservedNodeOffering redshift:PutResourcePolicy redshift:RebootCluster redshift:RegisterNamespace redshift:RejectDataShare redshift:ResetClusterParameterGroup redshift:ResizeCluster redshift:RestoreFromClusterSnapshot redshift:RestoreTableFromClusterSnapshot redshift:ResumeCluster redshift:RevokeClusterSecurityGroupIngress redshift:RevokeEndpointAccess redshift:RevokeSnapshotAccess redshift:RotateEncryptionKey redshift:UpdatePartnerStatus  | 
| redshift-data |  redshift-data:BatchExecuteStatement redshift-data:CancelStatement redshift-data:DescribeStatement redshift-data:DescribeTable redshift-data:ExecuteStatement redshift-data:GetStatementResult redshift-data:ListDatabases redshift-data:ListSchemas redshift-data:ListStatements redshift-data:ListTables  | 
| refactor-spaces |  refactor-spaces:CreateApplication refactor-spaces:CreateEnvironment refactor-spaces:CreateRoute refactor-spaces:CreateService refactor-spaces:DeleteApplication refactor-spaces:DeleteEnvironment refactor-spaces:DeleteResourcePolicy refactor-spaces:DeleteRoute refactor-spaces:DeleteService refactor-spaces:GetApplication refactor-spaces:GetEnvironment refactor-spaces:GetResourcePolicy refactor-spaces:GetRoute refactor-spaces:GetService refactor-spaces:ListApplications refactor-spaces:ListEnvironmentVpcs refactor-spaces:ListEnvironments refactor-spaces:ListRoutes refactor-spaces:ListServices refactor-spaces:PutResourcePolicy refactor-spaces:UpdateRoute  | 
| rekognition |  rekognition:AssociateFaces rekognition:CompareFaces rekognition:CopyProjectVersion rekognition:CreateCollection rekognition:CreateDataset rekognition:CreateFaceLivenessSession rekognition:CreateProject rekognition:CreateProjectVersion rekognition:CreateStreamProcessor rekognition:CreateUser rekognition:DeleteCollection rekognition:DeleteDataset rekognition:DeleteFaces rekognition:DeleteProject rekognition:DeleteProjectPolicy rekognition:DeleteProjectVersion rekognition:DeleteStreamProcessor rekognition:DeleteUser rekognition:DescribeCollection rekognition:DescribeDataset rekognition:DescribeProjectVersions rekognition:DescribeProjects rekognition:DescribeStreamProcessor rekognition:DetectCustomLabels rekognition:DetectFaces rekognition:DetectLabels rekognition:DetectModerationLabels rekognition:DetectProtectiveEquipment rekognition:DetectText rekognition:DisassociateFaces rekognition:DistributeDatasetEntries rekognition:GetCelebrityInfo rekognition:GetCelebrityRecognition rekognition:GetContentModeration rekognition:GetFaceDetection rekognition:GetFaceLivenessSessionResults rekognition:GetFaceSearch rekognition:GetLabelDetection rekognition:GetMediaAnalysisJob rekognition:GetPersonTracking rekognition:GetSegmentDetection rekognition:GetTextDetection rekognition:IndexFaces rekognition:ListCollections rekognition:ListDatasetEntries rekognition:ListDatasetLabels rekognition:ListFaces rekognition:ListMediaAnalysisJobs rekognition:ListProjectPolicies rekognition:ListStreamProcessors rekognition:ListUsers rekognition:PutProjectPolicy rekognition:RecognizeCelebrities rekognition:SearchFaces rekognition:SearchFacesByImage rekognition:SearchUsers rekognition:SearchUsersByImage rekognition:StartCelebrityRecognition rekognition:StartContentModeration rekognition:StartFaceDetection rekognition:StartFaceLivenessSession rekognition:StartFaceSearch rekognition:StartLabelDetection rekognition:StartMediaAnalysisJob rekognition:StartPersonTracking rekognition:StartProjectVersion rekognition:StartSegmentDetection rekognition:StartStreamProcessor rekognition:StartTextDetection rekognition:StopProjectVersion rekognition:StopStreamProcessor rekognition:UpdateDatasetEntries rekognition:UpdateStreamProcessor  | 
| resiliencehub |  resiliencehub:AcceptResourceGroupingRecommendations resiliencehub:AddDraftAppVersionResourceMappings resiliencehub:BatchUpdateRecommendationStatus resiliencehub:CreateApp resiliencehub:CreateAppVersionAppComponent resiliencehub:CreateAppVersionResource resiliencehub:CreateRecommendationTemplate resiliencehub:CreateResiliencyPolicy resiliencehub:DeleteApp resiliencehub:DeleteAppAssessment resiliencehub:DeleteAppInputSource resiliencehub:DeleteAppVersionAppComponent resiliencehub:DeleteAppVersionResource resiliencehub:DeleteRecommendationTemplate resiliencehub:DeleteResiliencyPolicy resiliencehub:DescribeApp resiliencehub:DescribeAppAssessment resiliencehub:DescribeAppVersion resiliencehub:DescribeAppVersionAppComponent resiliencehub:DescribeAppVersionResource resiliencehub:DescribeAppVersionResourcesResolutionStatus resiliencehub:DescribeAppVersionTemplate resiliencehub:DescribeDraftAppVersionResourcesImportStatus resiliencehub:DescribeMetricsExport resiliencehub:DescribeResiliencyPolicy resiliencehub:DescribeResourceGroupingRecommendationTask resiliencehub:ImportResourcesToDraftAppVersion resiliencehub:ListAlarmRecommendations resiliencehub:ListAppAssessmentComplianceDrifts resiliencehub:ListAppAssessmentResourceDrifts resiliencehub:ListAppAssessments resiliencehub:ListAppComponentCompliances resiliencehub:ListAppComponentRecommendations resiliencehub:ListAppInputSources resiliencehub:ListAppVersionAppComponents resiliencehub:ListAppVersionResourceMappings resiliencehub:ListAppVersionResources resiliencehub:ListAppVersions resiliencehub:ListApps resiliencehub:ListMetrics resiliencehub:ListRecommendationTemplates resiliencehub:ListResiliencyPolicies resiliencehub:ListResourceGroupingRecommendations resiliencehub:ListSopRecommendations resiliencehub:ListSuggestedResiliencyPolicies resiliencehub:ListTestRecommendations resiliencehub:ListUnsupportedAppVersionResources resiliencehub:PublishAppVersion resiliencehub:PutDraftAppVersionTemplate resiliencehub:RejectResourceGroupingRecommendations resiliencehub:RemoveDraftAppVersionResourceMappings resiliencehub:ResolveAppVersionResources resiliencehub:StartAppAssessment resiliencehub:StartResourceGroupingRecommendationTask resiliencehub:UpdateApp resiliencehub:UpdateAppVersion resiliencehub:UpdateAppVersionAppComponent resiliencehub:UpdateAppVersionResource resiliencehub:UpdateResiliencyPolicy  | 
| resource-explorer-2 |  resource-explorer-2:AssociateDefaultView resource-explorer-2:BatchGetView resource-explorer-2:CreateIndex resource-explorer-2:CreateResourceExplorerSetup resource-explorer-2:CreateView resource-explorer-2:DeleteIndex resource-explorer-2:DeleteResourceExplorerSetup resource-explorer-2:DeleteView resource-explorer-2:DisassociateDefaultView resource-explorer-2:GetAccountLevelServiceConfiguration resource-explorer-2:GetDefaultView resource-explorer-2:GetIndex resource-explorer-2:GetManagedView resource-explorer-2:GetResourceExplorerSetup resource-explorer-2:GetServiceIndex resource-explorer-2:GetServiceView resource-explorer-2:ListIndexes resource-explorer-2:ListIndexesForMembers resource-explorer-2:ListManagedViews resource-explorer-2:ListServiceIndexes resource-explorer-2:ListServiceViews resource-explorer-2:ListStreamingAccessForServices resource-explorer-2:ListSupportedResourceTypes resource-explorer-2:ListViews resource-explorer-2:Search resource-explorer-2:UpdateIndexType resource-explorer-2:UpdateView  | 
| resource-groups |  resource-groups:CancelTagSyncTask resource-groups:GetAccountSettings resource-groups:GetGroup resource-groups:GetGroupConfiguration resource-groups:GetGroupQuery resource-groups:GetTagSyncTask resource-groups:GroupResources resource-groups:ListGroupResources resource-groups:ListGroupingStatuses resource-groups:ListGroups resource-groups:ListTagSyncTasks resource-groups:PutGroupConfiguration resource-groups:SearchResources resource-groups:StartTagSyncTask resource-groups:UngroupResources resource-groups:UpdateAccountSettings resource-groups:UpdateGroup resource-groups:UpdateGroupQuery  | 
| robomaker |  robomaker:BatchDeleteWorlds robomaker:BatchDescribeSimulationJob robomaker:CancelDeploymentJob robomaker:CancelSimulationJob robomaker:CancelSimulationJobBatch robomaker:CancelWorldExportJob robomaker:CancelWorldGenerationJob robomaker:CreateDeploymentJob robomaker:CreateFleet robomaker:CreateRobot robomaker:CreateRobotApplication robomaker:CreateRobotApplicationVersion robomaker:CreateSimulationApplication robomaker:CreateSimulationApplicationVersion robomaker:CreateSimulationJob robomaker:CreateWorldExportJob robomaker:CreateWorldGenerationJob robomaker:CreateWorldTemplate RoboMaker: DeleteFleet robomaker:DeleteRobot robomaker:DeleteRobotApplication robomaker:DeleteSimulationApplication robomaker:DeleteWorldTemplate robomaker:DeregisterRobot robomaker:DescribeDeploymentJob robomaker:DescribeFleet robomaker:DescribeRobot robomaker:DescribeRobotApplication robomaker:DescribeSimulationApplication robomaker:DescribeSimulationJob robomaker:DescribeSimulationJobBatch robomaker:DescribeWorld robomaker:DescribeWorldExportJob robomaker:DescribeWorldGenerationJob robomaker:DescribeWorldTemplate robomaker:GetWorldTemplateBody robomaker:ListDeploymentJobs robomaker:ListFleets robomaker:ListRobotApplications robomaker:ListRobots robomaker:ListSimulationApplications robomaker:ListSimulationJobBatches robomaker:ListSimulationJobs robomaker:ListWorldExportJobs robomaker:ListWorldGenerationJobs robomaker:ListWorldTemplates robomaker:ListWorlds robomaker:RegisterRobot robomaker:RestartSimulationJob robomaker:StartSimulationJobBatch robomaker:SyncDeploymentJob robomaker:UpdateRobotApplication robomaker:UpdateSimulationApplication robomaker:UpdateWorldTemplate  | 
| rolesanywhere |  rolesanywhere:CreateProfile rolesanywhere:CreateTrustAnchor rolesanywhere:DeleteAttributeMapping rolesanywhere:DeleteCrl rolesanywhere:DeleteProfile rolesanywhere:DeleteTrustAnchor rolesanywhere:DisableCrl rolesanywhere:DisableProfile rolesanywhere:DisableTrustAnchor rolesanywhere:EnableCrl rolesanywhere:EnableProfile rolesanywhere:EnableTrustAnchor rolesanywhere:GetCrl rolesanywhere:GetProfile rolesanywhere:GetSubject rolesanywhere:GetTrustAnchor rolesanywhere:ImportCrl rolesanywhere:ListCrls rolesanywhere:ListProfiles rolesanywhere:ListSubjects rolesanywhere:ListTrustAnchors rolesanywhere:PutAttributeMapping rolesanywhere:PutNotificationSettings rolesanywhere:ResetNotificationSettings rolesanywhere:UpdateCrl rolesanywhere:UpdateProfile rolesanywhere:UpdateTrustAnchor  | 
| route53 |  route53:ActivateKeySigningKey route53:AssociateVPCWithHostedZone route53:ChangeCidrCollection route53:ChangeResourceRecordSets route53:CreateCidrCollection route53:CreateHealthCheck route53:CreateHostedZone route53:CreateKeySigningKey route53:CreateQueryLoggingConfig route53:CreateReusableDelegationSet route53:CreateTrafficPolicy route53:CreateTrafficPolicyInstance route53:CreateTrafficPolicyVersion route53:CreateVPCAssociationAuthorization route53:DeactivateKeySigningKey route53:DeleteCidrCollection route53:DeleteHealthCheck route53:DeleteHostedZone route53:DeleteKeySigningKey route53:DeleteQueryLoggingConfig route53:DeleteReusableDelegationSet route53:DeleteTrafficPolicy route53:DeleteTrafficPolicyInstance route53:DeleteVPCAssociationAuthorization route53:DisableHostedZoneDNSSEC route53:DisassociateVPCFromHostedZone route53:EnableHostedZoneDNSSEC route53:GetAccountLimit route53:GetChange route53:GetCheckerIpRanges route53:GetDNSSEC route53:GetGeoLocation route53:GetHealthCheck route53:GetHealthCheckCount route53:GetHealthCheckLastFailureReason route53:GetHealthCheckStatus route53:GetHostedZone route53:GetHostedZoneCount route53:GetHostedZoneLimit route53:GetQueryLoggingConfig route53:GetReusableDelegationSet route53:GetReusableDelegationSetLimit route53:GetTrafficPolicy route53:GetTrafficPolicyInstance route53:GetTrafficPolicyInstanceCount route53:ListCidrBlocks route53:ListCidrCollections route53:ListCidrLocations route53:ListGeoLocations route53:ListHealthChecks route53:ListHostedZones route53:ListHostedZonesByName route53:ListHostedZonesByVPC route53:ListQueryLoggingConfigs route53:ListResourceRecordSets route53:ListReusableDelegationSets route53:ListTrafficPolicies route53:ListTrafficPolicyInstances route53:ListTrafficPolicyInstancesByHostedZone route53:ListTrafficPolicyInstancesByPolicy route53:ListTrafficPolicyVersions route53:ListVPCAssociationAuthorizations route53:TestDNSAnswer route53:UpdateHealthCheck route53:UpdateHostedZoneComment route53:UpdateTrafficPolicyComment route53:UpdateTrafficPolicyInstance  | 
| route53-recovery-control-config |  route53-recovery-control-config:CreateCluster route53-recovery-control-config:CreateControlPanel route53-recovery-control-config:CreateRoutingControl route53-recovery-control-config:CreateSafetyRule route53-recovery-control-config:DeleteCluster route53-recovery-control-config:DeleteControlPanel route53-recovery-control-config:DeleteRoutingControl route53-recovery-control-config:DeleteSafetyRule route53-recovery-control-config:DescribeCluster route53-recovery-control-config:DescribeControlPanel route53-recovery-control-config:DescribeRoutingControl route53-recovery-control-config:DescribeSafetyRule route53-recovery-control-config:GetResourcePolicy route53-recovery-control-config:ListAssociatedRoute53HealthChecks route53-recovery-control-config:ListClusters route53-recovery-control-config:ListControlPanels route53-recovery-control-config:ListRoutingControls route53-recovery-control-config:ListSafetyRules route53-recovery-control-config:UpdateCluster route53-recovery-control-config:UpdateControlPanel route53-recovery-control-config:UpdateRoutingControl route53-recovery-control-config:UpdateSafetyRule  | 
| route53-recovery-readiness |  route53-recovery-readiness:CreateCell route53-recovery-readiness:CreateCrossAccountAuthorization route53-recovery-readiness:CreateReadinessCheck route53-recovery-readiness:CreateRecoveryGroup route53-recovery-readiness:CreateResourceSet route53-recovery-readiness:DeleteCell route53-recovery-readiness:DeleteCrossAccountAuthorization route53-recovery-readiness:DeleteReadinessCheck route53-recovery-readiness:DeleteRecoveryGroup route53-recovery-readiness:DeleteResourceSet route53-recovery-readiness:GetArchitectureRecommendations route53-recovery-readiness:GetCell route53-recovery-readiness:GetCellReadinessSummary route53-recovery-readiness:GetReadinessCheck route53-recovery-readiness:GetReadinessCheckResourceStatus route53-recovery-readiness:GetReadinessCheckStatus route53-recovery-readiness:GetRecoveryGroup route53-recovery-readiness:GetRecoveryGroupReadinessSummary route53-recovery-readiness:GetResourceSet route53-recovery-readiness:ListCells route53-recovery-readiness:ListCrossAccountAuthorizations route53-recovery-readiness:ListReadinessChecks route53-recovery-readiness:ListRecoveryGroups route53-recovery-readiness:ListResourceSets route53-recovery-readiness:ListRules route53-recovery-readiness:UpdateCell route53-recovery-readiness:UpdateReadinessCheck route53-recovery-readiness:UpdateRecoveryGroup route53-recovery-readiness:UpdateResourceSet  | 
| route53resolver |  route53resolver:AssociateFirewallRuleGroup route53resolver:AssociateResolverEndpointIpAddress route53resolver:AssociateResolverQueryLogConfig route53resolver:AssociateResolverRule route53resolver:CreateFirewallDomainList route53resolver:CreateFirewallRule route53resolver:CreateFirewallRuleGroup route53resolver:CreateResolverEndpoint route53resolver:CreateResolverQueryLogConfig route53resolver:CreateResolverRule route53resolver:DeleteFirewallDomainList route53resolver:DeleteFirewallRule route53resolver:DeleteFirewallRuleGroup route53resolver:DeleteOutpostResolver route53resolver:DeleteResolverEndpoint route53resolver:DeleteResolverQueryLogConfig route53resolver:DeleteResolverRule route53resolver:DisassociateFirewallRuleGroup route53resolver:DisassociateResolverEndpointIpAddress route53resolver:DisassociateResolverQueryLogConfig route53resolver:DisassociateResolverRule route53resolver:GetFirewallConfig route53resolver:GetFirewallDomainList route53resolver:GetFirewallRuleGroup route53resolver:GetFirewallRuleGroupAssociation route53resolver:GetFirewallRuleGroupPolicy route53resolver:GetOutpostResolver route53resolver:GetResolverConfig route53resolver:GetResolverDnssecConfig route53resolver:GetResolverEndpoint route53resolver:GetResolverQueryLogConfig route53resolver:GetResolverQueryLogConfigAssociation route53resolver:GetResolverQueryLogConfigPolicy route53resolver:GetResolverRule route53resolver:GetResolverRuleAssociation route53resolver:GetResolverRulePolicy route53resolver:ImportFirewallDomains route53resolver:ListFirewallConfigs route53resolver:ListFirewallDomainLists route53resolver:ListFirewallDomains route53resolver:ListFirewallRuleGroupAssociations route53resolver:ListFirewallRuleGroups route53resolver:ListFirewallRules route53resolver:ListOutpostResolvers route53resolver:ListResolverConfigs route53resolver:ListResolverDnssecConfigs route53resolver:ListResolverEndpointIpAddresses route53resolver:ListResolverEndpoints route53resolver:ListResolverQueryLogConfigAssociations route53resolver:ListResolverQueryLogConfigs route53resolver:ListResolverRuleAssociations route53resolver:ListResolverRules route53resolver:PutFirewallRuleGroupPolicy route53resolver:PutResolverQueryLogConfigPolicy route53resolver:UpdateFirewallConfig route53resolver:UpdateFirewallDomains route53resolver:UpdateFirewallRule route53resolver:UpdateFirewallRuleGroupAssociation route53resolver:UpdateOutpostResolver route53resolver:UpdateResolverConfig route53resolver:UpdateResolverDnssecConfig route53resolver:UpdateResolverEndpoint route53resolver:UpdateResolverRule  | 
| rum |  rum:BatchCreateRumMetricDefinitions rum:BatchDeleteRumMetricDefinitions rum:BatchGetRumMetricDefinitions rum:CreateAppMonitor rum:DeleteAppMonitor rum:DeleteResourcePolicy rum:DeleteRumMetricsDestination rum:GetAppMonitor rum:GetAppMonitorData rum:GetResourcePolicy rum:ListAppMonitors rum:ListRumMetricsDestinations rum:PutResourcePolicy rum:PutRumMetricsDestination rum:UpdateAppMonitor rum:UpdateRumMetricDefinition  | 
| S3 |  s3:AssociateAccessGrantsIdentityCenter s3:CreateAccessGrant s3:CreateAccessGrantsInstance s3:CreateAccessGrantsLocation s3:CreateAccessPoint s3:CreateAccessPointForObjectLambda s3:CreateBucket s3:CreateBucketMetadataTableConfiguration s3:CreateJob s3:CreateMultiRegionAccessPoint s3:DeleteAccessGrant s3:DeleteAccessGrantsInstance s3:DeleteAccessGrantsInstanceResourcePolicy s3:DeleteAccessGrantsLocation s3:DeleteAccessPoint s3:DeleteAccessPointForObjectLambda s3:DeleteAccessPointPolicy s3:DeleteAccessPointPolicyForObjectLambda s3:DeleteBucket s3:DeleteBucketMetadataTableConfiguration s3:DeleteBucketPolicy s3:DeleteBucketWebsite s3:DeleteMultiRegionAccessPoint s3:DeleteStorageLensConfiguration s3:DescribeJob s3:DescribeMultiRegionAccessPointOperation s3:DissociateAccessGrantsIdentityCenter s3:GetAccelerateConfiguration s3:GetAccessGrant s3:GetAccessGrantsInstance s3:GetAccessGrantsInstanceForPrefix s3:GetAccessGrantsInstanceResourcePolicy s3:GetAccessGrantsLocation s3:GetAccessPoint s3:GetAccessPointConfigurationForObjectLambda s3:GetAccessPointForObjectLambda s3:GetAccessPointPolicy s3:GetAccessPointPolicyForObjectLambda s3:GetAccessPointPolicyStatus s3:GetAccessPointPolicyStatusForObjectLambda s3:GetAccountPublicAccessBlock s3:GetAnalyticsConfiguration s3:GetBucketAbac s3:GetBucketAcl s3:GetBucketCORS s3:GetBucketLocation s3:GetBucketLogging s3:GetBucketNotification s3:GetBucketObjectLockConfiguration s3:GetBucketOwnershipControls s3:GetBucketPolicy s3:GetBucketPolicyStatus s3:GetBucketPublicAccessBlock s3:GetBucketRequestPayment s3:GetBucketVersioning s3:GetBucketWebsite s3:GetDataAccess s3:GetEncryptionConfiguration s3:GetIntelligentTieringConfiguration s3:GetInventoryConfiguration s3:GetLifecycleConfiguration s3:GetMetricsConfiguration s3:GetMultiRegionAccessPoint s3:GetMultiRegionAccessPointPolicy s3:GetMultiRegionAccessPointPolicyStatus s3:GetMultiRegionAccessPointRoutes s3:GetReplicationConfiguration s3:GetStorageLensConfiguration s3:GetStorageLensDashboard s3:ListAccessGrants s3:ListAccessGrantsInstances s3:ListAccessGrantsLocations s3:ListAccessPoints s3:ListAccessPointsForObjectLambda s3:ListAllMyBuckets s3:ListBucketMultipartUploads s3:ListCallerAccessGrants s3:ListJobs s3:ListMultiRegionAccessPoints s3:ListStorageLensConfigurations s3:PutAccelerateConfiguration s3:PutAccessGrantsInstanceResourcePolicy s3:PutAccessPointConfigurationForObjectLambda s3:PutAccessPointPolicy s3:PutAccessPointPolicyForObjectLambda s3:PutAccountPublicAccessBlock s3:PutAnalyticsConfiguration s3:PutBucketAbac s3:PutBucketAcl s3:PutBucketCORS s3:PutBucketLogging s3:PutBucketNotification s3:PutBucketObjectLockConfiguration s3:PutBucketOwnershipControls s3:PutBucketPolicy s3:PutBucketPublicAccessBlock s3:PutBucketRequestPayment s3:PutBucketVersioning s3:PutBucketWebsite s3:PutEncryptionConfiguration s3:PutIntelligentTieringConfiguration s3:PutInventoryConfiguration s3:PutLifecycleConfiguration s3:PutMetricsConfiguration s3:PutMultiRegionAccessPointPolicy s3:PutReplicationConfiguration s3:PutStorageLensConfiguration s3:SubmitMultiRegionAccessPointRoutes s3:UpdateAccessGrantsLocation s3:UpdateBucketMetadataJournalTableConfiguration s3:UpdateJobPriority s3:UpdateJobStatus  | 
| s3-outposts |  s3-outposts:CreateEndpoint s3-outposts:DeleteEndpoint s3-outposts:ListEndpoints s3-outposts:ListOutpostsWithS3 s3-outposts:ListSharedEndpoints  | 
| sagemaker-geospatial |  sagemaker-geospatial:DeleteEarthObservationJob sagemaker-geospatial:DeleteVectorEnrichmentJob sagemaker-geospatial:ExportEarthObservationJob sagemaker-geospatial:ExportVectorEnrichmentJob sagemaker-geospatial:GetEarthObservationJob sagemaker-geospatial:GetRasterDataCollection sagemaker-geospatial:GetTile sagemaker-geospatial:GetVectorEnrichmentJob sagemaker-geospatial:ListEarthObservationJobs sagemaker-geospatial:ListRasterDataCollections sagemaker-geospatial:ListVectorEnrichmentJobs sagemaker-geospatial:SearchRasterDataCollection sagemaker-geospatial:StartEarthObservationJob sagemaker-geospatial:StartVectorEnrichmentJob sagemaker-geospatial:StopEarthObservationJob sagemaker-geospatial:StopVectorEnrichmentJob  | 
| savingsplans |  savingsplans:CreateSavingsPlan savingsplans:DeleteQueuedSavingsPlan savingsplans:DescribeSavingsPlanRates savingsplans:DescribeSavingsPlans savingsplans:DescribeSavingsPlansOfferingRates savingsplans:DescribeSavingsPlansOfferings savingsplans:ReturnSavingsPlan  | 
| schemas |  schemas:CreateDiscoverer schemas:CreateRegistry schemas:CreateSchema schemas:DeleteDiscoverer schemas:DeleteRegistry schemas:DeleteResourcePolicy schemas:DeleteSchema schemas:DeleteSchemaVersion schemas:DescribeCodeBinding schemas:DescribeDiscoverer schemas:DescribeRegistry schemas:DescribeSchema schemas:ExportSchema schemas:GetCodeBindingSource schemas:GetDiscoveredSchema schemas:GetResourcePolicy schemas:ListDiscoverers schemas:ListRegistries schemas:ListSchemaVersions schemas:ListSchemas schemas:PutCodeBinding schemas:PutResourcePolicy schemas:SearchSchemas schemas:StartDiscoverer schemas:StopDiscoverer schemas:UpdateDiscoverer schemas:UpdateRegistry schemas:UpdateSchema  | 
| sdb |  sdb:CreateDomain sdb:DeleteDomain sdb:DomainMetadata sdb:ListDomains  | 
| secretsmanager |  secretsmanager:CancelRotateSecret secretsmanager:CreateSecret secretsmanager:DeleteResourcePolicy secretsmanager:DeleteSecret secretsmanager:DescribeSecret secretsmanager:GetRandomPassword secretsmanager:GetResourcePolicy secretsmanager:GetSecretValue secretsmanager:ListSecretVersionIds secretsmanager:ListSecrets secretsmanager:PutResourcePolicy secretsmanager:PutSecretValue secretsmanager:RemoveRegionsFromReplication secretsmanager:ReplicateSecretToRegions secretsmanager:RestoreSecret secretsmanager:RotateSecret secretsmanager:StopReplicationToReplica secretsmanager:UpdateSecret secretsmanager:ValidateResourcePolicy  | 
| securityhub |  securityhub:AcceptAdministratorInvitation securityhub:AcceptInvitation securityhub:BatchDeleteAutomationRules securityhub:BatchDisableStandards securityhub:BatchEnableStandards securityhub:BatchGetAutomationRules securityhub:BatchGetConfigurationPolicyAssociations securityhub:BatchGetSecurityControls securityhub:BatchGetStandardsControlAssociations securityhub:BatchImportFindings securityhub:BatchUpdateAutomationRules securityhub:BatchUpdateFindings securityhub:BatchUpdateStandardsControlAssociations securityhub:ConnectorRegistrationsV2 securityhub:CreateActionTarget securityhub:CreateAggregatorV2 securityhub:CreateAutomationRule securityhub:CreateAutomationRuleV2 securityhub:CreateConfigurationPolicy securityhub:CreateConnectorV2 securityhub:CreateFindingAggregator securityhub:CreateInsight securityhub:CreateMembers securityhub:CreateTicketV2 securityhub:DeclineInvitations securityhub:DeleteActionTarget securityhub:DeleteAggregatorV2 securityhub:DeleteAutomationRuleV2 securityhub:DeleteConfigurationPolicy securityhub:DeleteConnectorV2 securityhub:DeleteFindingAggregator securityhub:DeleteInsight securityhub:DeleteInvitations securityhub:DeleteMembers securityhub:DescribeActionTargets securityhub:DescribeHub securityhub:DescribeOrganizationConfiguration securityhub:DescribeProducts securityhub:DescribeSecurityHubV2 securityhub:DescribeStandards securityhub:DisableImportFindingsForProduct securityhub:DisableOrganizationAdminAccount securityhub:DisableSecurityHub securityhub:DisableSecurityHubV2 securityhub:DisassociateFromAdministratorAccount securityhub:DisassociateFromMasterAccount securityhub:DisassociateMembers securityhub:EnableImportFindingsForProduct securityhub:EnableOrganizationAdminAccount securityhub:EnableSecurityHub securityhub:GetAdministratorAccount securityhub:GetAggregatorV2 securityhub:GetAutomationRuleV2 securityhub:GetConfigurationPolicy securityhub:GetConfigurationPolicyAssociation securityhub:GetConnectorV2 securityhub:GetEnabledStandards securityhub:GetFindingAggregator securityhub:GetFindingHistory securityhub:GetFindings securityhub:GetInsightResults securityhub:GetInsights securityhub:GetInvitationsCount securityhub:GetMasterAccount securityhub:GetMembers securityhub:GetSecurityControlDefinition securityhub:InviteMembers securityhub:ListAggregatorsV2 securityhub:ListAutomationRules securityhub:ListAutomationRulesV2 securityhub:ListConfigurationPolicies securityhub:ListConfigurationPolicyAssociations securityhub:ListConnectorsV2 securityhub:ListEnabledProductsForImport securityhub:ListFindingAggregators securityhub:ListInvitations securityhub:ListMembers securityhub:ListOrganizationAdminAccounts securityhub:ListSecurityControlDefinitions securityhub:ListStandardsControlAssociations securityhub:StartConfigurationPolicyAssociation securityhub:StartConfigurationPolicyDisassociation securityhub:UpdateActionTarget securityhub:UpdateAggregatorV2 securityhub:UpdateAutomationRuleV2 securityhub:UpdateConfigurationPolicy securityhub:UpdateConnectorV2 securityhub:UpdateFindingAggregator securityhub:UpdateFindings securityhub:UpdateInsight securityhub:UpdateOrganizationConfiguration securityhub:UpdateSecurityControl securityhub:UpdateSecurityHubConfiguration  | 
| securitylake |  securitylake:CreateAwsLogSource securitylake:CreateCustomLogSource securitylake:CreateDataLakeExceptionSubscription securitylake:CreateDataLakeOrganizationConfiguration securitylake:CreateSubscriber securitylake:CreateSubscriberNotification securitylake:DeleteAwsLogSource securitylake:DeleteCustomLogSource securitylake:DeleteDataLakeExceptionSubscription securitylake:DeleteDataLakeOrganizationConfiguration securitylake:DeleteSubscriber securitylake:DeleteSubscriberNotification securitylake:DeregisterDataLakeDelegatedAdministrator securitylake:GetDataLakeExceptionSubscription securitylake:GetDataLakeOrganizationConfiguration securitylake:GetDataLakeSources securitylake:GetSubscriber securitylake:ListDataLakes securitylake:ListLogSources securitylake:ListSubscribers securitylake:RegisterDataLakeDelegatedAdministrator securitylake:UpdateDataLakeExceptionSubscription securitylake:UpdateSubscriber securitylake:UpdateSubscriberNotification  | 
| serverlessrepo |  serverlessrepo:CreateApplication serverlessrepo:CreateApplicationVersion serverlessrepo:CreateCloudFormationChangeSet serverlessrepo:CreateCloudFormationTemplate serverlessrepo:DeleteApplication serverlessrepo:GetApplication serverlessrepo:GetApplicationPolicy serverlessrepo:GetCloudFormationTemplate serverlessrepo:ListApplicationDependencies serverlessrepo:ListApplicationVersions serverlessrepo:ListApplications serverlessrepo:PutApplicationPolicy serverlessrepo:UnshareApplication serverlessrepo:UpdateApplication  | 
| servicecatalog |  servicecatalog:AcceptPortfolioShare servicecatalog:AssociateBudgetWithResource servicecatalog:AssociatePrincipalWithPortfolio servicecatalog:AssociateProductWithPortfolio servicecatalog:AssociateServiceActionWithProvisioningArtifact servicecatalog:BatchAssociateServiceActionWithProvisioningArtifact servicecatalog:BatchDisassociateServiceActionFromProvisioningArtifact servicecatalog:CopyProduct servicecatalog:CreateAttributeGroup servicecatalog:CreateConstraint servicecatalog:CreatePortfolio servicecatalog:CreatePortfolioShare servicecatalog:CreateProduct servicecatalog:CreateProvisionedProductPlan servicecatalog:CreateProvisioningArtifact servicecatalog:CreateServiceAction servicecatalog:DeleteAttributeGroup servicecatalog:DeleteConstraint servicecatalog:DeletePortfolio servicecatalog:DeletePortfolioShare servicecatalog:DeleteProduct servicecatalog:DeleteProvisionedProductPlan servicecatalog:DeleteProvisioningArtifact servicecatalog:DeleteServiceAction servicecatalog:DescribeConstraint servicecatalog:DescribeCopyProductStatus servicecatalog:DescribePortfolio servicecatalog:DescribePortfolioShareStatus servicecatalog:DescribePortfolioShares servicecatalog:DescribeProduct servicecatalog:DescribeProductAsAdmin servicecatalog:DescribeProductView servicecatalog:DescribeProvisionedProduct servicecatalog:DescribeProvisionedProductPlan servicecatalog:DescribeProvisioningArtifact servicecatalog:DescribeProvisioningParameters servicecatalog:DescribeRecord servicecatalog:DescribeServiceAction servicecatalog:DescribeServiceActionExecutionParameters servicecatalog:DisableAWSOrganizationsAccess servicecatalog:DisassociateBudgetFromResource servicecatalog:DisassociatePrincipalFromPortfolio servicecatalog:DisassociateProductFromPortfolio servicecatalog:DisassociateServiceActionFromProvisioningArtifact servicecatalog:EnableAWSOrganizationsAccess servicecatalog:ExecuteProvisionedProductPlan servicecatalog:ExecuteProvisionedProductServiceAction servicecatalog:GetAWSOrganizationsAccessStatus servicecatalog:GetProvisionedProductOutputs servicecatalog:ImportAsProvisionedProduct servicecatalog:ListAcceptedPortfolioShares servicecatalog:ListAttributeGroups servicecatalog:ListBudgetsForResource servicecatalog:ListConstraintsForPortfolio servicecatalog:ListLaunchPaths servicecatalog:ListOrganizationPortfolioAccess servicecatalog:ListPortfolioAccess servicecatalog:ListPortfolios servicecatalog:ListPortfoliosForProduct servicecatalog:ListPrincipalsForPortfolio servicecatalog:ListProvisionedProductPlans servicecatalog:ListProvisioningArtifacts servicecatalog:ListProvisioningArtifactsForServiceAction servicecatalog:ListRecordHistory servicecatalog:ListServiceActions servicecatalog:ListServiceActionsForProvisioningArtifact servicecatalog:ListStackInstancesForProvisionedProduct servicecatalog:NotifyProvisionProductEngineWorkflowResult servicecatalog:NotifyTerminateProvisionedProductEngineWorkflowResult servicecatalog:NotifyUpdateProvisionedProductEngineWorkflowResult servicecatalog:ProvisionProduct servicecatalog:RejectPortfolioShare servicecatalog:ScanProvisionedProducts servicecatalog:SearchProducts servicecatalog:SearchProductsAsAdmin servicecatalog:SearchProvisionedProducts servicecatalog:TerminateProvisionedProduct servicecatalog:UpdateConstraint servicecatalog:UpdatePortfolio servicecatalog:UpdatePortfolioShare servicecatalog:UpdateProduct servicecatalog:UpdateProvisionedProduct servicecatalog:UpdateProvisionedProductProperties servicecatalog:UpdateProvisioningArtifact servicecatalog:UpdateServiceAction  | 
| servicediscovery |  servicediscovery:CreateHttpNamespace servicediscovery:CreatePrivateDnsNamespace servicediscovery:CreatePublicDnsNamespace servicediscovery:CreateService servicediscovery:DeleteNamespace servicediscovery:DeleteService servicediscovery:DeleteServiceAttributes servicediscovery:DeregisterInstance servicediscovery:GetInstance servicediscovery:GetInstancesHealthStatus servicediscovery:GetNamespace servicediscovery:GetOperation servicediscovery:GetService servicediscovery:ListInstances servicediscovery:ListNamespaces servicediscovery:ListOperations servicediscovery:ListServices servicediscovery:RegisterInstance servicediscovery:UpdateHttpNamespace servicediscovery:UpdateInstanceCustomHealthStatus servicediscovery:UpdatePrivateDnsNamespace servicediscovery:UpdatePublicDnsNamespace servicediscovery:UpdateService servicediscovery:UpdateServiceAttributes  | 
| servicequotas |  servicequotas:AssociateServiceQuotaTemplate servicequotas:CreateSupportCase servicequotas:DeleteServiceQuotaIncreaseRequestFromTemplate servicequotas:DisassociateServiceQuotaTemplate servicequotas:GetAWSDefaultServiceQuota servicequotas:GetAssociationForServiceQuotaTemplate servicequotas:GetAutoManagementConfiguration servicequotas:GetQuotaUtilizationReport servicequotas:GetRequestedServiceQuotaChange servicequotas:GetServiceQuota servicequotas:GetServiceQuotaIncreaseRequestFromTemplate servicequotas:ListAWSDefaultServiceQuotas servicequotas:ListRequestedServiceQuotaChangeHistory servicequotas:ListRequestedServiceQuotaChangeHistoryByQuota servicequotas:ListServiceQuotaIncreaseRequestsInTemplate servicequotas:ListServiceQuotas servicequotas:ListServices servicequotas:PutServiceQuotaIncreaseRequestIntoTemplate servicequotas:RequestServiceQuotaIncrease servicequotas:StartAutoManagement servicequotas:StartQuotaUtilizationReport servicequotas:StopAutoManagement servicequotas:UpdateAutoManagement  | 
| ses |  ses:BatchGetMetricData ses:CloneReceiptRuleSet ses:CreateAddonInstance ses:CreateAddonSubscription ses:CreateAddressList ses:CreateAddressListImportJob ses:CreateArchive ses:CreateConfigurationSet ses:CreateConfigurationSetEventDestination ses:CreateConfigurationSetTrackingOptions ses:CreateContact ses:CreateContactList ses:CreateCustomVerificationEmailTemplate ses:CreateDedicatedIpPool ses:CreateDeliverabilityTestReport ses:CreateEmailIdentity ses:CreateEmailIdentityPolicy ses:CreateEmailTemplate ses:CreateImportJob ses:CreateIngressPoint ses:CreateMultiRegionEndpoint ses:CreateReceiptFilter ses:CreateReceiptRule ses:CreateReceiptRuleSet ses:CreateRelay ses:CreateRuleSet ses:CreateTemplate ses:CreateTenant ses:CreateTenantResourceAssociation ses:CreateTrafficPolicy ses:DeleteAddonInstance ses:DeleteAddonSubscription ses:DeleteAddressList ses:DeleteArchive ses:DeleteConfigurationSet ses:DeleteConfigurationSetEventDestination ses:DeleteConfigurationSetTrackingOptions ses:DeleteContact ses:DeleteContactList ses:DeleteCustomVerificationEmailTemplate ses:DeleteDedicatedIpPool ses:DeleteEmailIdentity ses:DeleteEmailIdentityPolicy ses:DeleteEmailTemplate ses:DeleteIdentity ses:DeleteIdentityPolicy ses:DeleteIngressPoint ses:DeleteMultiRegionEndpoint ses:DeleteReceiptFilter ses:DeleteReceiptRule ses:DeleteReceiptRuleSet ses:DeleteRelay ses:DeleteRuleSet ses:DeleteSuppressedDestination ses:DeleteTemplate ses:DeleteTenant ses:DeleteTenantResourceAssociation ses:DeleteTrafficPolicy ses:DeleteVerifiedEmailAddress ses:DeregisterMemberFromAddressList ses:DescribeActiveReceiptRuleSet ses:DescribeConfigurationSet ses:DescribeReceiptRule ses:DescribeReceiptRuleSet ses:GetAccount ses:GetAccountSendingEnabled ses:GetAddonInstance ses:GetAddonSubscription ses:GetAddressList ses:GetArchive ses:GetArchiveExport ses:GetArchiveMessage ses:GetArchiveMessageContent ses:GetArchiveSearch ses:GetArchiveSearchResults ses:GetBlacklistReports ses:GetConfigurationSet ses:GetConfigurationSetEventDestinations ses:GetContact ses:GetContactList ses:GetCustomVerificationEmailTemplate ses:GetDedicatedIp ses:GetDedicatedIpPool ses:GetDedicatedIps ses:GetDeliverabilityDashboardOptions ses:GetDeliverabilityTestReport ses:GetDomainDeliverabilityCampaign ses:GetDomainStatisticsReport ses:GetEmailAddressInsights ses:GetEmailIdentity ses:GetEmailIdentityPolicies ses:GetEmailTemplate ses:GetIdentityDkimAttributes ses:GetIdentityMailFromDomainAttributes ses:GetIdentityNotificationAttributes ses:GetIdentityPolicies ses:GetIdentityVerificationAttributes ses:GetImportJob ses:GetIngressPoint ses:GetMemberOfAddressList ses:GetMessageInsights ses:GetMultiRegionEndpoint ses:GetRelay ses:GetRuleSet ses:GetSendQuota ses:GetSendStatistics ses:GetSuppressedDestination ses:GetTemplate ses:GetTenant ses:GetTrafficPolicy ses:ListAddonInstances ses:ListAddonSubscriptions ses:ListAddressListImportJobs ses:ListAddressLists ses:ListArchiveExports ses:ListArchiveSearches ses:ListArchives ses:ListConfigurationSets ses:ListContactLists ses:ListContacts ses:ListCustomVerificationEmailTemplates ses:ListDedicatedIpPools ses:ListDeliverabilityTestReports ses:ListDomainDeliverabilityCampaigns ses:ListEmailIdentities ses:ListEmailTemplates ses:ListExportJobs ses:ListIdentities ses:ListIdentityPolicies ses:ListImportJobs ses:ListIngressPoints ses:ListMembersOfAddressList ses:ListMultiRegionEndpoints ses:ListReceiptFilters ses:ListReceiptRuleSets ses:ListRecommendations ses:ListRelays ses:ListReputationEntities ses:ListResourceTenants ses:ListRuleSets ses:ListSuppressedDestinations ses:ListTemplates ses:ListTenantResources ses:ListTenants ses:ListTrafficPolicies ses:ListVerifiedEmailAddresses ses:PutAccountDedicatedIpWarmupAttributes ses:PutAccountDetails ses:PutAccountSendingAttributes ses:PutAccountSuppressionAttributes ses:PutAccountVdmAttributes ses:PutConfigurationSetArchivingOptions ses:PutConfigurationSetDeliveryOptions ses:PutConfigurationSetReputationOptions ses:PutConfigurationSetSendingOptions ses:PutConfigurationSetSuppressionOptions ses:PutConfigurationSetTrackingOptions ses:PutConfigurationSetVdmOptions ses:PutDedicatedIpInPool ses:PutDedicatedIpPoolScalingAttributes ses:PutDedicatedIpWarmupAttributes ses:PutDeliverabilityDashboardOption ses:PutEmailIdentityConfigurationSetAttributes ses:PutEmailIdentityDkimAttributes ses:PutEmailIdentityDkimSigningAttributes ses:PutEmailIdentityFeedbackAttributes ses:PutEmailIdentityMailFromAttributes ses:PutIdentityPolicy ses:PutSuppressedDestination ses:RegisterMemberToAddressList ses:ReorderReceiptRuleSet ses:SendBounce ses:SendCustomVerificationEmail ses:SetActiveReceiptRuleSet ses:SetIdentityDkimEnabled ses:SetIdentityFeedbackForwardingEnabled ses:SetIdentityHeadersInNotificationsEnabled ses:SetIdentityMailFromDomain ses:SetIdentityNotificationTopic ses:SetReceiptRulePosition ses:StartArchiveExport ses:StartArchiveSearch ses:StopArchiveExport ses:StopArchiveSearch ses:TestRenderEmailTemplate ses:TestRenderTemplate ses:UpdateAccountSendingEnabled ses:UpdateArchive ses:UpdateConfigurationSetEventDestination ses:UpdateConfigurationSetReputationMetricsEnabled ses:UpdateConfigurationSetSendingEnabled ses:UpdateConfigurationSetTrackingOptions ses:UpdateContact ses:UpdateContactList ses:UpdateCustomVerificationEmailTemplate ses:UpdateEmailIdentityPolicy ses:UpdateEmailTemplate ses:UpdateIngressPoint ses:UpdateReceiptRule ses:UpdateRelay ses:UpdateRuleSet ses:UpdateTemplate ses:UpdateTrafficPolicy ses:VerifyDomainDkim ses:VerifyDomainIdentity ses:VerifyEmailAddress ses:VerifyEmailIdentity  | 
| shield |  shield:AssociateDRTLogBucket shield:AssociateHealthCheck shield:AssociateProactiveEngagementDetails shield:CreateProtection shield:CreateProtectionGroup shield:CreateSubscription shield:DeleteProtection shield:DeleteProtectionGroup shield:DeleteSubscription shield:DescribeAttack shield:DescribeAttackStatistics shield:DescribeDRTAccess shield:DescribeEmergencyContactSettings shield:DescribeProtection shield:DescribeProtectionGroup shield:DescribeSubscription shield:DisableApplicationLayerAutomaticResponse shield:DisableProactiveEngagement shield:DisassociateDRTLogBucket shield:DisassociateDRTRole shield:DisassociateHealthCheck shield:EnableApplicationLayerAutomaticResponse shield:EnableProactiveEngagement shield:GetSubscriptionState shield:ListAttacks shield:ListProtectionGroups shield:ListProtections shield:ListResourcesInProtectionGroup shield:UpdateApplicationLayerAutomaticResponse shield:UpdateEmergencyContactSettings shield:UpdateProtectionGroup shield:UpdateSubscription  | 
| signer |  signer:AddProfilePermission signer:CancelSigningProfile signer:DescribeSigningJob signer:GetSigningPlatform signer:GetSigningProfile signer:ListProfilePermissions signer:ListSigningJobs signer:ListSigningPlatforms signer:ListSigningProfiles signer:PutSigningProfile signer:RemoveProfilePermission signer:RevokeSignature signer:RevokeSigningProfile signer:SignPayload signer:StartSigningJob  | 
| simspaceweaver |  simspaceweaver:CreateSnapshot simspaceweaver:DeleteApp simspaceweaver:DeleteSimulation simspaceweaver:DescribeApp simspaceweaver:DescribeSimulation simspaceweaver:ListApps simspaceweaver:ListSimulations simspaceweaver:StartApp simspaceweaver:StartClock simspaceweaver:StartSimulation simspaceweaver:StopApp simspaceweaver:StopClock simspaceweaver:StopSimulation  | 
| sms |  sms:CreateApp sms:CreateReplicationJob sms:DeleteApp sms:DeleteAppLaunchConfiguration sms:DeleteAppReplicationConfiguration sms:DeleteAppValidationConfiguration sms:DeleteReplicationJob sms:DeleteServerCatalog sms:DisassociateConnector sms:GenerateChangeSet sms:GenerateTemplate sms:GetApp sms:GetAppLaunchConfiguration sms:GetAppReplicationConfiguration sms:GetAppValidationConfiguration sms:GetAppValidationOutput sms:GetConnectors sms:GetReplicationJobs sms:GetReplicationRuns sms:GetServers sms:ImportAppCatalog sms:ImportServerCatalog sms:LaunchApp sms:ListApps sms:NotifyAppValidationOutput sms:PutAppLaunchConfiguration sms:PutAppReplicationConfiguration sms:PutAppValidationConfiguration sms:StartAppReplication sms:StartOnDemandAppReplication sms:StartOnDemandReplicationRun sms:StopAppReplication sms:TerminateApp sms:UpdateApp sms:UpdateReplicationJob  | 
| sms-voice |  sms-voice:AssociateProtectConfiguration sms-voice:CreateConfigurationSet sms-voice:CreateConfigurationSetEventDestination sms-voice:CreateEventDestination sms-voice:CreateOptOutList sms-voice:CreatePool sms-voice:CreateProtectConfiguration sms-voice:CreateRegistration sms-voice:CreateRegistrationAssociation sms-voice:CreateRegistrationAttachment sms-voice:CreateRegistrationVersion sms-voice:CreateVerifiedDestinationNumber sms-voice:DeleteAccountDefaultProtectConfiguration sms-voice:DeleteConfigurationSet sms-voice:DeleteConfigurationSetEventDestination sms-voice:DeleteDefaultMessageType sms-voice:DeleteDefaultSenderId sms-voice:DeleteEventDestination sms-voice:DeleteKeyword sms-voice:DeleteMediaMessageSpendLimitOverride sms-voice:DeleteOptOutList sms-voice:DeleteOptedOutNumber sms-voice:DeletePool sms-voice:DeleteProtectConfiguration sms-voice:DeleteProtectConfigurationRuleSetNumberOverride sms-voice:DeleteRegistration sms-voice:DeleteRegistrationAttachment sms-voice:DeleteResourcePolicy sms-voice:DeleteTextMessageSpendLimitOverride sms-voice:DeleteVerifiedDestinationNumber sms-voice:DeleteVoiceMessageSpendLimitOverride sms-voice:DescribeAccountAttributes sms-voice:DescribeAccountLimits sms-voice:DescribeConfigurationSets sms-voice:DescribeKeywords sms-voice:DescribeOptOutLists sms-voice:DescribeOptedOutNumbers sms-voice:DescribePhoneNumbers sms-voice:DescribePools sms-voice:DescribeProtectConfigurations sms-voice:DescribeRegistrationAttachments sms-voice:DescribeRegistrationFieldDefinitions sms-voice:DescribeRegistrationFieldValues sms-voice:DescribeRegistrationSectionDefinitions sms-voice:DescribeRegistrationTypeDefinitions sms-voice:DescribeRegistrationVersions sms-voice:DescribeRegistrations sms-voice:DescribeSenderIds sms-voice:DescribeSpendLimits sms-voice:DescribeVerifiedDestinationNumbers sms-voice:DisassociateOriginationIdentity sms-voice:DisassociateProtectConfiguration sms-voice:DiscardRegistrationVersion sms-voice:GetConfigurationSetEventDestinations sms-voice:GetProtectConfigurationCountryRuleSet sms-voice:GetResourcePolicy sms-voice:ListConfigurationSets sms-voice:ListPoolOriginationIdentities sms-voice:ListProtectConfigurationRuleSetNumberOverrides sms-voice:ListRegistrationAssociations sms-voice:PutKeyword sms-voice:PutOptedOutNumber sms-voice:PutProtectConfigurationRuleSetNumberOverride sms-voice:PutResourcePolicy sms-voice:ReleasePhoneNumber sms-voice:ReleaseSenderId sms-voice:RequestPhoneNumber sms-voice:RequestSenderId sms-voice:SendDestinationNumberVerificationCode sms-voice:SetAccountDefaultProtectConfiguration sms-voice:SetDefaultMessageFeedbackEnabled sms-voice:SetDefaultMessageType sms-voice:SetDefaultSenderId sms-voice:SetMediaMessageSpendLimitOverride sms-voice:SetTextMessageSpendLimitOverride sms-voice:SetVoiceMessageSpendLimitOverride sms-voice:SubmitRegistrationVersion sms-voice:UpdateConfigurationSetEventDestination sms-voice:UpdateEventDestination sms-voice:UpdatePhoneNumber sms-voice:UpdatePool sms-voice:UpdateProtectConfiguration sms-voice:UpdateProtectConfigurationCountryRuleSet sms-voice:UpdateSenderId  | 
| snowball |  snowball:CancelCluster snowball:CancelJob snowball:CreateAddress snowball:CreateCluster snowball:CreateJob snowball:CreateLongTermPricing snowball:CreateReturnShippingLabel snowball:DescribeAddress snowball:DescribeAddresses snowball:DescribeCluster snowball:DescribeJob snowball:DescribeReturnShippingLabel snowball:GetJobManifest snowball:GetJobUnlockCode snowball:GetSnowballUsage snowball:GetSoftwareUpdates snowball:ListClusterJobs snowball:ListClusters snowball:ListCompatibleImages snowball:ListJobs snowball:ListLongTermPricing snowball:ListPickupLocations snowball:ListServiceVersions snowball:UpdateCluster snowball:UpdateJob snowball:UpdateJobShipmentState snowball:UpdateLongTermPricing  | 
| sqs |  sqs:AddPermission sqs:CancelMessageMoveTask sqs:CreateQueue sqs:DeleteQueue sqs:PurgeQueue sqs:RemovePermission sqs:SetQueueAttributes  | 
| ssm |  ssm:AssociateOpsItemRelatedItem ssm:CancelCommand ssm:CancelMaintenanceWindowExecution ssm:CreateActivation ssm:CreateAssociation ssm:CreateAssociationBatch ssm:CreateDocument ssm:CreateMaintenanceWindow ssm:CreateOpsItem ssm:CreateOpsMetadata ssm:CreatePatchBaseline ssm:CreateResourceDataSync ssm:DeleteActivation ssm:DeleteAssociation ssm:DeleteDocument ssm:DeleteInventory ssm:DeleteMaintenanceWindow ssm:DeleteOpsItem ssm:DeleteOpsMetadata ssm:DeleteParameter ssm:DeleteParameters ssm:DeletePatchBaseline ssm:DeleteResourceDataSync ssm:DeleteResourcePolicy ssm:DeregisterManagedInstance ssm:DeregisterPatchBaselineForPatchGroup ssm:DeregisterTargetFromMaintenanceWindow ssm:DeregisterTaskFromMaintenanceWindow ssm:DescribeActivations ssm:DescribeAssociation ssm:DescribeAssociationExecutionTargets ssm:DescribeAssociationExecutions ssm:DescribeAutomationExecutions ssm:DescribeAutomationStepExecutions ssm:DescribeAvailablePatches ssm:DescribeDocument ssm:DescribeDocumentParameters ssm:DescribeDocumentPermission ssm:DescribeEffectiveInstanceAssociations ssm:DescribeEffectivePatchesForPatchBaseline ssm:DescribeInstanceAssociationsStatus ssm:DescribeInstanceInformation ssm:DescribeInstancePatchStates ssm:DescribeInstancePatchStatesForPatchGroup ssm:DescribeInstancePatches ssm:DescribeInstanceProperties ssm:DescribeInventoryDeletions ssm:DescribeMaintenanceWindowExecutionTaskInvocations ssm:DescribeMaintenanceWindowExecutionTasks ssm:DescribeMaintenanceWindowExecutions ssm:DescribeMaintenanceWindowSchedule ssm:DescribeMaintenanceWindowTargets ssm:DescribeMaintenanceWindowTasks ssm:DescribeMaintenanceWindows ssm:DescribeMaintenanceWindowsForTarget ssm:DescribeOpsItems ssm:DescribeParameters ssm:DescribePatchBaselines ssm:DescribePatchGroupState ssm:DescribePatchGroups ssm:DescribePatchProperties ssm:DescribeSessions ssm:DisassociateOpsItemRelatedItem ssm:GetAccessToken ssm:GetAutomationExecution ssm:GetCalendarState ssm:GetCommandInvocation ssm:GetConnectionStatus ssm:GetDefaultPatchBaseline ssm:GetDeployablePatchSnapshotForInstance ssm:GetDocument ssm:GetExecutionPreview ssm:GetInventory ssm:GetInventorySchema ssm:GetMaintenanceWindow ssm:GetMaintenanceWindowExecution ssm:GetMaintenanceWindowExecutionTask ssm:GetMaintenanceWindowExecutionTaskInvocation ssm:GetMaintenanceWindowTask ssm:GetOpsItem ssm:GetOpsMetadata ssm:GetOpsSummary ssm:GetParameter ssm:GetParameterHistory ssm:GetParameters ssm:GetParametersByPath ssm:GetPatchBaseline ssm:GetPatchBaselineForPatchGroup ssm:GetResourcePolicies ssm:GetServiceSetting ssm:LabelParameterVersion ssm:ListAssociationVersions ssm:ListAssociations ssm:ListCommandInvocations ssm:ListCommands ssm:ListComplianceItems ssm:ListComplianceSummaries ssm:ListDocumentMetadataHistory ssm:ListDocumentVersions ssm:ListDocuments ssm:ListInstanceAssociations ssm:ListInventoryEntries ssm:ListNodes ssm:ListNodesSummary ssm:ListOpsItemEvents ssm:ListOpsItemRelatedItems ssm:ListOpsMetadata ssm:ListResourceComplianceSummaries ssm:ListResourceDataSync ssm:ModifyDocumentPermission ssm:PutComplianceItems ssm:PutInventory ssm:PutParameter ssm:PutResourcePolicy ssm:RegisterDefaultPatchBaseline ssm:RegisterManagedInstance ssm:RegisterPatchBaselineForPatchGroup ssm:RegisterTargetWithMaintenanceWindow ssm:RegisterTaskWithMaintenanceWindow ssm:ResetServiceSetting ssm:ResumeSession ssm:SendAutomationSignal ssm:SendCommand ssm:StartAssociationsOnce ssm:StartAutomationExecution ssm:StartChangeRequestExecution ssm:StartSession ssm:StopAutomationExecution ssm:TerminateSession ssm:UnlabelParameterVersion ssm:UpdateAssociation ssm:UpdateAssociationStatus ssm:UpdateDocument ssm:UpdateDocumentDefaultVersion ssm:UpdateDocumentMetadata ssm:UpdateInstanceInformation ssm:UpdateMaintenanceWindow ssm:UpdateMaintenanceWindowTarget ssm:UpdateMaintenanceWindowTask ssm:UpdateManagedInstanceRole ssm:UpdateOpsItem ssm:UpdateOpsMetadata ssm:UpdatePatchBaseline ssm:UpdateResourceDataSync ssm:UpdateServiceSetting  | 
| ssm-incidents |  ssm-incidents:BatchGetIncidentFindings ssm-incidents:CreateReplicationSet ssm-incidents:CreateResponsePlan ssm-incidents:CreateTimelineEvent ssm-incidents:DeleteIncidentRecord ssm-incidents:DeleteReplicationSet ssm-incidents:DeleteResourcePolicy ssm-incidents:DeleteResponsePlan ssm-incidents:DeleteTimelineEvent ssm-incidents:GetIncidentRecord ssm-incidents:GetReplicationSet ssm-incidents:GetResourcePolicies ssm-incidents:GetResponsePlan ssm-incidents:GetTimelineEvent ssm-incidents:ListIncidentFindings ssm-incidents:ListIncidentRecords ssm-incidents:ListRelatedItems ssm-incidents:ListReplicationSets ssm-incidents:ListResponsePlans ssm-incidents:ListTimelineEvents ssm-incidents:PutResourcePolicy ssm-incidents:StartIncident ssm-incidents:UpdateDeletionProtection ssm-incidents:UpdateIncidentRecord ssm-incidents:UpdateRelatedItems ssm-incidents:UpdateReplicationSet ssm-incidents:UpdateResponsePlan ssm-incidents:UpdateTimelineEvent  | 
| ssm-sap |  ssm-sap:BackupDatabase ssm-sap:DeleteResourcePermission ssm-sap:DeregisterApplication ssm-sap:GetApplication ssm-sap:GetComponent ssm-sap:GetConfigurationCheckOperation ssm-sap:GetDatabase ssm-sap:GetOperation ssm-sap:GetResourcePermission ssm-sap:ListApplications ssm-sap:ListComponents ssm-sap:ListConfigurationCheckDefinitions ssm-sap:ListConfigurationCheckOperations ssm-sap:ListDatabases ssm-sap:ListOperationEvents ssm-sap:ListOperations ssm-sap:ListSubCheckResults ssm-sap:ListSubCheckRuleResults ssm-sap:PutResourcePermission ssm-sap:RegisterApplication ssm-sap:RestoreDatabase ssm-sap:StartApplication ssm-sap:StartApplicationRefresh ssm-sap:StartConfigurationChecks ssm-sap:StopApplication ssm-sap:UpdateApplicationSettings ssm-sap:UpdateHANABackupSettings  | 
| states |  states:CreateActivity states:CreateStateMachine states:CreateStateMachineAlias states:DeleteActivity states:DeleteStateMachine states:DeleteStateMachineAlias states:DeleteStateMachineVersion states:DescribeActivity states:DescribeExecution states:DescribeMapRun states:DescribeStateMachine states:DescribeStateMachineAlias states:DescribeStateMachineForExecution states:GetExecutionHistory states:ListActivities states:ListExecutions states:ListMapRuns states:ListStateMachineAliases states:ListStateMachineVersions states:ListStateMachines states:SendTaskFailure states:SendTaskHeartbeat states:SendTaskSuccess states:StartExecution states:StopExecution states:UpdateMapRun states:UpdateStateMachine states:UpdateStateMachineAlias states:ValidateStateMachineDefinition  | 
| sts |  sts:AssumeRole sts:AssumeRoleWithSAML sts:AssumeRoleWithWebIdentity sts:DecodeAuthorizationMessage sts:GetAccessKeyInfo sts:GetCallerIdentity sts:GetFederationToken sts:GetSessionToken sts:GetWebIdentityToken  | 
| swf |  swf:DeleteActivityType swf:DeleteWorkflowType swf:DeprecateActivityType swf:DeprecateDomain swf:DeprecateWorkflowType swf:DescribeActivityType swf:DescribeDomain swf:DescribeWorkflowType swf:ListActivityTypes swf:ListDomains swf:ListWorkflowTypes swf:RegisterActivityType swf:RegisterDomain swf:RegisterWorkflowType swf:UndeprecateActivityType swf:UndeprecateDomain swf:UndeprecateWorkflowType  | 
| synthetics |  synthetics:AssociateResource synthetics:CreateCanary synthetics:CreateGroup synthetics:DeleteCanary synthetics:DeleteGroup synthetics:DescribeCanaries synthetics:DescribeCanariesLastRun synthetics:DescribeRuntimeVersions synthetics:DisassociateResource synthetics:GetCanary synthetics:GetCanaryRuns synthetics:GetGroup synthetics:ListAssociatedGroups synthetics:ListGroupResources synthetics:ListGroups synthetics:StartCanary synthetics:StartCanaryDryRun synthetics:StopCanary synthetics:UpdateCanary  | 
| 标签 |  tag:DescribeReportCreation tag:GetComplianceSummary tag:GetResources tag:StartReportCreation  | 
| textract |  textract:AnalyzeDocument textract:AnalyzeExpense textract:AnalyzeID textract:CreateAdapter textract:CreateAdapterVersion textract:DeleteAdapter textract:DeleteAdapterVersion textract:DetectDocumentText textract:GetAdapter textract:GetAdapterVersion textract:GetDocumentAnalysis textract:GetDocumentTextDetection textract:GetExpenseAnalysis textract:GetLendingAnalysis textract:GetLendingAnalysisSummary textract:ListAdapterVersions textract:ListAdapters textract:StartDocumentAnalysis textract:StartDocumentTextDetection textract:StartExpenseAnalysis textract:StartLendingAnalysis textract:UpdateAdapter  | 
| timestream |  timestream:CancelQuery timestream:CreateDatabase timestream:CreateScheduledQuery timestream:CreateTable timestream:DeleteDatabase timestream:DeleteScheduledQuery timestream:DeleteTable timestream:DescribeAccountSettings timestream:DescribeDatabase timestream:DescribeScheduledQuery timestream:DescribeTable timestream:ExecuteScheduledQuery timestream:ListBatchLoadTasks timestream:ListDatabases timestream:ListScheduledQueries timestream:ListTables timestream:PrepareQuery timestream:UpdateAccountSettings timestream:UpdateDatabase timestream:UpdateScheduledQuery timestream:UpdateTable  | 
| tnb |  tnb:CancelSolNetworkOperation tnb:CreateSolFunctionPackage tnb:CreateSolNetworkInstance tnb:CreateSolNetworkPackage tnb:DeleteSolFunctionPackage tnb:DeleteSolNetworkInstance tnb:DeleteSolNetworkPackage tnb:GetSolFunctionInstance tnb:GetSolFunctionPackage tnb:GetSolFunctionPackageContent tnb:GetSolFunctionPackageDescriptor tnb:GetSolNetworkInstance tnb:GetSolNetworkOperation tnb:GetSolNetworkPackage tnb:GetSolNetworkPackageContent tnb:GetSolNetworkPackageDescriptor tnb:InstantiateSolNetworkInstance tnb:ListSolFunctionInstances tnb:ListSolFunctionPackages tnb:ListSolNetworkInstances tnb:ListSolNetworkOperations tnb:ListSolNetworkPackages tnb:PutSolFunctionPackageContent tnb:PutSolNetworkPackageContent tnb:TerminateSolNetworkInstance tnb:UpdateSolFunctionPackage tnb:UpdateSolNetworkInstance tnb:UpdateSolNetworkPackage tnb:ValidateSolFunctionPackageContent tnb:ValidateSolNetworkPackageContent  | 
| transcribe |  transcribe:CreateCallAnalyticsCategory transcribe:CreateLanguageModel transcribe:CreateMedicalVocabulary transcribe:CreateVocabulary transcribe:CreateVocabularyFilter transcribe:DeleteCallAnalyticsCategory transcribe:DeleteCallAnalyticsJob transcribe:DeleteLanguageModel transcribe:DeleteMedicalScribeJob transcribe:DeleteMedicalTranscriptionJob transcribe:DeleteMedicalVocabulary transcribe:DeleteTranscriptionJob transcribe:DeleteVocabulary transcribe:DeleteVocabularyFilter transcribe:DescribeLanguageModel transcribe:GetCallAnalyticsCategory transcribe:GetCallAnalyticsJob transcribe:GetMedicalScribeJob transcribe:GetMedicalTranscriptionJob transcribe:GetMedicalVocabulary transcribe:GetTranscriptionJob transcribe:GetVocabulary transcribe:GetVocabularyFilter transcribe:ListCallAnalyticsCategories transcribe:ListCallAnalyticsJobs transcribe:ListLanguageModels transcribe:ListMedicalScribeJobs transcribe:ListMedicalTranscriptionJobs transcribe:ListMedicalVocabularies transcribe:ListTranscriptionJobs transcribe:ListVocabularies transcribe:ListVocabularyFilters transcribe:StartCallAnalyticsJob transcribe:StartCallAnalyticsStreamTranscription transcribe:StartCallAnalyticsStreamTranscriptionWebSocket transcribe:StartMedicalScribeJob transcribe:StartMedicalStreamTranscription transcribe:StartMedicalStreamTranscriptionWebSocket transcribe:StartMedicalTranscriptionJob transcribe:StartStreamTranscription transcribe:StartStreamTranscriptionWebSocket transcribe:StartTranscriptionJob transcribe:UpdateCallAnalyticsCategory transcribe:UpdateMedicalVocabulary transcribe:UpdateVocabulary transcribe:UpdateVocabularyFilter  | 
| 转移 |  transfer:CreateAccess transfer:CreateAgreement transfer:CreateConnector transfer:CreateProfile transfer:CreateServer transfer:CreateUser transfer:CreateWebApp transfer:CreateWorkflow transfer:DeleteAccess transfer:DeleteAgreement transfer:DeleteCertificate transfer:DeleteConnector transfer:DeleteHostKey transfer:DeleteProfile transfer:DeleteServer transfer:DeleteSshPublicKey transfer:DeleteUser transfer:DeleteWebApp transfer:DeleteWebAppCustomization transfer:DeleteWorkflow transfer:DescribeAccess transfer:DescribeAgreement transfer:DescribeCertificate transfer:DescribeConnector transfer:DescribeExecution transfer:DescribeHostKey transfer:DescribeProfile transfer:DescribeSecurityPolicy transfer:DescribeServer transfer:DescribeUser transfer:DescribeWebApp transfer:DescribeWebAppCustomization transfer:DescribeWorkflow transfer:ImportCertificate transfer:ImportHostKey transfer:ImportSshPublicKey transfer:ListAccesses transfer:ListCertificates transfer:ListConnectors transfer:ListExecutions transfer:ListFileTransferResults transfer:ListHostKeys transfer:ListProfiles transfer:ListSecurityPolicies transfer:ListServers transfer:ListUsers transfer:ListWebApps transfer:ListWorkflows transfer:SendWorkflowStepState transfer:StartDirectoryListing transfer:StartFileTransfer transfer:StartRemoteDelete transfer:StartRemoteMove transfer:StartServer transfer:StopServer transfer:TestConnection transfer:TestIdentityProvider transfer:UpdateAccess transfer:UpdateAgreement transfer:UpdateCertificate transfer:UpdateConnector transfer:UpdateHostKey transfer:UpdateProfile transfer:UpdateServer transfer:UpdateUser transfer:UpdateWebApp transfer:UpdateWebAppCustomization  | 
| 翻译 |  translate:CreateParallelData translate:DeleteParallelData translate:DeleteTerminology translate:DescribeTextTranslationJob translate:GetParallelData translate:GetTerminology translate:ImportTerminology translate:ListLanguages translate:ListParallelData translate:ListTerminologies translate:ListTextTranslationJobs translate:StartTextTranslationJob translate:StopTextTranslationJob translate:TranslateDocument translate:TranslateText translate:UpdateParallelData  | 
| voiceid |  voiceid:AssociateFraudster voiceid:CreateDomain voiceid:CreateWatchlist voiceid:DeleteDomain voiceid:DeleteFraudster voiceid:DeleteSpeaker voiceid:DeleteWatchlist voiceid:DescribeDomain voiceid:DescribeFraudster voiceid:DescribeFraudsterRegistrationJob voiceid:DescribeSpeaker voiceid:DescribeSpeakerEnrollmentJob voiceid:DescribeWatchlist voiceid:DisassociateFraudster voiceid:EvaluateSession voiceid:ListDomains voiceid:ListFraudsterRegistrationJobs voiceid:ListFraudsters voiceid:ListSpeakerEnrollmentJobs voiceid:ListSpeakers voiceid:ListWatchlists voiceid:OptOutSpeaker voiceid:StartFraudsterRegistrationJob voiceid:StartSpeakerEnrollmentJob voiceid:UpdateDomain voiceid:UpdateWatchlist  | 
| vpc-lattice |  vpc-lattice:CreateAccessLogSubscription vpc-lattice:CreateListener vpc-lattice:CreateResourceConfiguration vpc-lattice:CreateResourceGateway vpc-lattice:CreateRule vpc-lattice:CreateService vpc-lattice:CreateServiceNetwork vpc-lattice:CreateServiceNetworkResourceAssociation vpc-lattice:CreateServiceNetworkServiceAssociation vpc-lattice:CreateServiceNetworkVpcAssociation vpc-lattice:CreateTargetGroup vpc-lattice:DeleteAccessLogSubscription vpc-lattice:DeleteAuthPolicy vpc-lattice:DeleteDomainVerification vpc-lattice:DeleteListener vpc-lattice:DeleteResourceConfiguration vpc-lattice:DeleteResourceEndpointAssociation vpc-lattice:DeleteResourceGateway vpc-lattice:DeleteResourcePolicy vpc-lattice:DeleteRule vpc-lattice:DeleteService vpc-lattice:DeleteServiceNetwork vpc-lattice:DeleteServiceNetworkResourceAssociation vpc-lattice:DeleteServiceNetworkServiceAssociation vpc-lattice:DeleteServiceNetworkVpcAssociation vpc-lattice:DeleteTargetGroup vpc-lattice:DeregisterTargets vpc-lattice:GetAccessLogSubscription vpc-lattice:GetAuthPolicy vpc-lattice:GetDomainVerification vpc-lattice:GetListener vpc-lattice:GetResourceConfiguration vpc-lattice:GetResourceGateway vpc-lattice:GetResourcePolicy vpc-lattice:GetRule vpc-lattice:GetService vpc-lattice:GetServiceNetwork vpc-lattice:GetServiceNetworkResourceAssociation vpc-lattice:GetServiceNetworkServiceAssociation vpc-lattice:GetServiceNetworkVpcAssociation vpc-lattice:GetTargetGroup vpc-lattice:ListAccessLogSubscriptions vpc-lattice:ListDomainVerifications vpc-lattice:ListListeners vpc-lattice:ListResourceConfigurations vpc-lattice:ListResourceEndpointAssociations vpc-lattice:ListResourceGateways vpc-lattice:ListRules vpc-lattice:ListServiceNetworkResourceAssociations vpc-lattice:ListServiceNetworkServiceAssociations vpc-lattice:ListServiceNetworkVpcAssociations vpc-lattice:ListServiceNetworkVpcEndpointAssociations vpc-lattice:ListServiceNetworks vpc-lattice:ListServices vpc-lattice:ListTargetGroups vpc-lattice:ListTargets vpc-lattice:PutAuthPolicy vpc-lattice:PutResourcePolicy vpc-lattice:RegisterTargets vpc-lattice:StartDomainVerification vpc-lattice:UpdateAccessLogSubscription vpc-lattice:UpdateListener vpc-lattice:UpdateResourceConfiguration vpc-lattice:UpdateResourceGateway vpc-lattice:UpdateRule vpc-lattice:UpdateService vpc-lattice:UpdateServiceNetwork vpc-lattice:UpdateServiceNetworkVpcAssociation vpc-lattice:UpdateTargetGroup  | 
| wafv2 |  wafv2:AssociateWebACL wafv2:CheckCapacity wafv2:CreateAPIKey wafv2:CreateIPSet wafv2:CreateRegexPatternSet wafv2:CreateRuleGroup wafv2:CreateWebACL wafv2:DeleteAPIKey wafv2:DeleteFirewallManagerRuleGroups wafv2:DeleteIPSet wafv2:DeleteLoggingConfiguration wafv2:DeletePermissionPolicy wafv2:DeleteRegexPatternSet wafv2:DeleteRuleGroup wafv2:DeleteWebACL wafv2:DescribeAllManagedProducts wafv2:DescribeManagedProductsByVendor wafv2:DescribeManagedRuleGroup wafv2:DisassociateWebACL wafv2:GenerateMobileSdkReleaseUrl wafv2:GetDecryptedAPIKey wafv2:GetIPSet wafv2:GetLoggingConfiguration wafv2:GetManagedRuleSet wafv2:GetMobileSdkRelease wafv2:GetRateBasedStatementManagedKeys wafv2:GetRegexPatternSet wafv2:GetRuleGroup wafv2:GetSampledRequests wafv2:GetWebACLForResource wafv2:ListAPIKeys wafv2:ListAvailableManagedRuleGroupVersions wafv2:ListAvailableManagedRuleGroups wafv2:ListIPSets wafv2:ListLoggingConfigurations wafv2:ListManagedRuleSets wafv2:ListMobileSdkReleases wafv2:ListRegexPatternSets wafv2:ListResourcesForWebACL wafv2:ListRuleGroups wafv2:ListWebACLs wafv2:PutLoggingConfiguration wafv2:PutManagedRuleSetVersions wafv2:UpdateIPSet wafv2:UpdateManagedRuleSetVersionExpiryDate wafv2:UpdateRegexPatternSet wafv2:UpdateRuleGroup wafv2:UpdateWebACL  | 
| wellarchitected |  wellarchitected:AssociateLenses wellarchitected:AssociateProfiles wellarchitected:CreateLensShare wellarchitected:CreateLensVersion wellarchitected:CreateMilestone wellarchitected:CreateProfile wellarchitected:CreateProfileShare wellarchitected:CreateReviewTemplate wellarchitected:CreateWorkload wellarchitected:CreateWorkloadShare wellarchitected:DeleteLens wellarchitected:DeleteLensShare wellarchitected:DeleteProfile wellarchitected:DeleteProfileShare wellarchitected:DeleteReviewTemplate wellarchitected:DeleteTemplateShare wellarchitected:DeleteWorkload wellarchitected:DeleteWorkloadShare wellarchitected:DisassociateLenses wellarchitected:DisassociateProfiles wellarchitected:ExportLens wellarchitected:GetAnswer wellarchitected:GetConsolidatedReport wellarchitected:GetGlobalSettings wellarchitected:GetLens wellarchitected:GetLensReview wellarchitected:GetLensReviewReport wellarchitected:GetLensVersionDifference wellarchitected:GetMilestone wellarchitected:GetProfile wellarchitected:GetProfileTemplate wellarchitected:GetReviewTemplate wellarchitected:GetReviewTemplateAnswer wellarchitected:GetReviewTemplateLensReview wellarchitected:GetWorkload wellarchitected:ImportLens wellarchitected:ListAnswers wellarchitected:ListCheckDetails wellarchitected:ListCheckSummaries wellarchitected:ListLensReviewImprovements wellarchitected:ListLensReviews wellarchitected:ListLensShares wellarchitected:ListLenses wellarchitected:ListMilestones wellarchitected:ListNotifications wellarchitected:ListProfileNotifications wellarchitected:ListProfileShares wellarchitected:ListProfiles wellarchitected:ListReviewTemplateAnswers wellarchitected:ListReviewTemplates wellarchitected:ListShareInvitations wellarchitected:ListTemplateShares wellarchitected:ListWorkloadShares wellarchitected:ListWorkloads wellarchitected:UpdateAnswer wellarchitected:UpdateGlobalSettings wellarchitected:UpdateIntegration wellarchitected:UpdateLensReview wellarchitected:UpdateProfile wellarchitected:UpdateReviewTemplate wellarchitected:UpdateReviewTemplateLensReview wellarchitected:UpdateShareInvitation wellarchitected:UpdateWorkload wellarchitected:UpdateWorkloadShare wellarchitected:UpgradeLensReview wellarchitected:UpgradeProfileVersion wellarchitected:UpgradeReviewTemplateLensReview  | 
| wisdom |  wisdom:CreateAssistant wisdom:CreateAssistantAssociation wisdom:CreateContent wisdom:CreateKnowledgeBase wisdom:CreateQuickResponse wisdom:CreateSession wisdom:DeleteAssistant wisdom:DeleteAssistantAssociation wisdom:DeleteContent wisdom:DeleteImportJob wisdom:DeleteKnowledgeBase wisdom:DeleteQuickResponse wisdom:GetAssistant wisdom:GetAssistantAssociation wisdom:GetContent wisdom:GetContentAssociation wisdom:GetContentSummary wisdom:GetImportJob wisdom:GetKnowledgeBase wisdom:GetRecommendations wisdom:GetSession wisdom:ListAssistantAssociations wisdom:ListAssistants wisdom:ListContentAssociations wisdom:ListContents wisdom:ListImportJobs wisdom:ListKnowledgeBases wisdom:ListQuickResponses wisdom:NotifyRecommendationsReceived wisdom:QueryAssistant wisdom:RemoveKnowledgeBaseTemplateUri wisdom:SearchContent wisdom:SearchQuickResponses wisdom:SearchSessions wisdom:StartContentUpload wisdom:StartImportJob wisdom:UpdateContent wisdom:UpdateKnowledgeBaseTemplateUri wisdom:UpdateQuickResponse wisdom:UpdateSession  | 
| worklink |  worklink:AssociateDomain worklink:AssociateWebsiteAuthorizationProvider worklink:AssociateWebsiteCertificateAuthority worklink:CreateFleet worklink:DeleteFleet worklink:DescribeAuditStreamConfiguration worklink:DescribeCompanyNetworkConfiguration worklink:DescribeDevice worklink:DescribeDevicePolicyConfiguration worklink:DescribeDomain worklink:DescribeFleetMetadata worklink:DescribeIdentityProviderConfiguration worklink:DescribeWebsiteCertificateAuthority worklink:DisassociateDomain worklink:DisassociateWebsiteAuthorizationProvider worklink:DisassociateWebsiteCertificateAuthority worklink:ListDevices worklink:ListDomains worklink:ListFleets worklink:ListWebsiteAuthorizationProviders worklink:ListWebsiteCertificateAuthorities worklink:RestoreDomainAccess worklink:RevokeDomainAccess worklink:SignOutUser worklink:UpdateAuditStreamConfiguration worklink:UpdateCompanyNetworkConfiguration worklink:UpdateDevicePolicyConfiguration worklink:UpdateDomainMetadata worklink:UpdateFleetMetadata worklink:UpdateIdentityProviderConfiguration  | 
| 工作区 |  workspaces:AcceptAccountLinkInvitation workspaces:AssociateConnectionAlias workspaces:AssociateIpGroups workspaces:AssociateWorkspaceApplication workspaces:CopyWorkspaceImage workspaces:CreateAccountLinkInvitation workspaces:CreateConnectClientAddIn workspaces:CreateConnectionAlias workspaces:CreateIpGroup workspaces:CreateStandbyWorkspaces workspaces:CreateUpdatedWorkspaceImage workspaces:CreateWorkspaceBundle workspaces:CreateWorkspaceImage workspaces:CreateWorkspaces workspaces:CreateWorkspacesPool workspaces:DeleteAccountLinkInvitation workspaces:DeleteClientBranding workspaces:DeleteConnectClientAddIn workspaces:DeleteConnectionAlias workspaces:DeleteIpGroup workspaces:DeleteWorkspaceBundle workspaces:DeleteWorkspaceImage workspaces:DeployWorkspaceApplications workspaces:DeregisterWorkspaceDirectory workspaces:DescribeAccount workspaces:DescribeAccountModifications workspaces:DescribeApplicationAssociations workspaces:DescribeApplications workspaces:DescribeBundleAssociations workspaces:DescribeClientBranding workspaces:DescribeClientProperties workspaces:DescribeConnectClientAddIns workspaces:DescribeConnectionAliasPermissions workspaces:DescribeConnectionAliases workspaces:DescribeCustomWorkspaceImageImport workspaces:DescribeImageAssociations workspaces:DescribeIpGroups workspaces:DescribeWorkspaceAssociations workspaces:DescribeWorkspaceBundles workspaces:DescribeWorkspaceDirectories workspaces:DescribeWorkspaceImagePermissions workspaces:DescribeWorkspaceSnapshots workspaces:DescribeWorkspaces workspaces:DescribeWorkspacesConnectionStatus workspaces:DescribeWorkspacesPoolSessions workspaces:DescribeWorkspacesPools workspaces:DisassociateConnectionAlias workspaces:DisassociateIpGroups workspaces:DisassociateWorkspaceApplication workspaces:GetAccountLink workspaces:ImportClientBranding workspaces:ImportWorkspaceImage workspaces:ListAccountLinks workspaces:ListAvailableManagementCidrRanges workspaces:MigrateWorkspace workspaces:ModifyAccount workspaces:ModifyCertificateBasedAuthProperties workspaces:ModifyClientProperties workspaces:ModifyEndpointEncryptionMode workspaces:ModifySamlProperties workspaces:ModifySelfservicePermissions workspaces:ModifyStreamingProperties workspaces:ModifyWorkspaceAccessProperties workspaces:ModifyWorkspaceCreationProperties workspaces:ModifyWorkspaceProperties workspaces:ModifyWorkspaceState workspaces:RebootWorkspaces workspaces:RebuildWorkspaces workspaces:RegisterWorkspaceDirectory workspaces:RejectAccountLinkInvitation workspaces:RestoreWorkspace workspaces:StartWorkspaces workspaces:StartWorkspacesPool workspaces:StopWorkspaces workspaces:StopWorkspacesPool workspaces:TerminateWorkspaces workspaces:TerminateWorkspacesPool workspaces:TerminateWorkspacesPoolSession workspaces:UpdateConnectClientAddIn workspaces:UpdateConnectionAliasPermission workspaces:UpdateWorkspaceBundle workspaces:UpdateWorkspaceImagePermission workspaces:UpdateWorkspacesPool  | 
| xray |  xray:CreateGroup xray:CreateSamplingRule xray:DeleteGroup xray:DeleteResourcePolicy xray:DeleteSamplingRule xray:GetEncryptionConfig xray:GetGroup xray:GetGroups xray:GetInsight xray:GetInsightEvents xray:GetInsightImpactGraph xray:GetInsightSummaries xray:GetSamplingRules xray:ListResourcePolicies xray:PutEncryptionConfig xray:PutResourcePolicy xray:UpdateGroup xray:UpdateSamplingRule  | 

# 策略摘要
<a name="access_policies_understand"></a>

IAM 控制台中提供了*策略摘要*表，这些表总结了策略中对每个服务允许或拒绝的访问级别、资源和条件。策略在三个表中概括：[策略摘要](access_policies_understand-policy-summary.md)、[服务摘要](access_policies_understand-service-summary.md)和[操作摘要](access_policies_understand-action-summary.md)。*策略摘要*表包含服务列表。选择其中的服务可查看*服务摘要*。该摘要表包含所选服务的操作和关联权限的列表。您可以选择该表中的操作以查看*操作摘要*。该表包含所选操作的资源和条件列表。

![\[阐释这 3 个表以及它们之间关系的策略摘要图\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policy_summaries-diagram.png)


您可以在**用户**或**角色**页上查看附加到该用户的所有策略 (托管和内联) 的策略摘要。可在 **Policies** 页面上查看所有托管策略的摘要。托管策略包括 AWS 托管策略、AWS 托管工作职能策略和客户托管策略。您可以在 **Policies (策略)** 页面上查看这些策略的摘要，无论它们是附加到用户还是其他 IAM 身份。

您可以使用策略摘要中的信息了解您的策略允许或拒绝的权限。策略摘要可帮助您[排查故障](troubleshoot_policies.md)并修复未提供您期望的权限的策略。

**Topics**
+ [策略摘要（服务列表）](access_policies_understand-policy-summary.md)
+ [策略摘要中的访问级别](access_policies_understand-policy-summary-access-level-summaries.md)
+ [服务摘要（操作列表）](access_policies_understand-service-summary.md)
+ [操作摘要（资源列表）](access_policies_understand-action-summary.md)
+ [策略摘要示例](access_policies_policy-summary-examples.md)

# 策略摘要（服务列表）
<a name="access_policies_understand-policy-summary"></a>

策略在三个表中概括：策略摘要、[服务摘要](access_policies_understand-service-summary.md)和[操作摘要](access_policies_understand-action-summary.md)。*策略摘要*表包括由所选策略定义的服务列表和权限摘要。

![\[阐释这 3 个表以及它们之间关系的策略摘要图\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policy_summaries-pol-sum.png)


策略摘要表分为 **Uncategorized services**、**Explicit deny** 和 **Allow** 几部分。如果策略包含 IAM 无法识别的服务，则该服务将包含在表的 **Uncategorized services**（未分类服务）部分中。如果 IAM 能够识别服务，则该服务将包含在表的 **Explicit deny**（显式拒绝）或 **Allow**（允许）部分下，具体取决于策略作用的结果（`Deny` 或 `Allow`）。

## 了解策略摘要的元素
<a name="understanding-elements-policy-summary"></a>

在以下策略详细信息页面示例中，**SummaryAllElements** 策略是直接附加到用户的管理型策略（客户管理型策略）。此策略已展开，显示了策略摘要。

![\[“Policy summary (策略摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-user-page-dialog.png)


在上图中，策略摘要在**策略**页面内可见：

1. **权限**选项卡包括策略中定义的权限。

1. 如果策略未向策略中定义的所有操作、资源和条件授予权限，则将在页面顶部显示警告或错误横幅。策略摘要中包含有关问题的详细信息。要了解策略摘要如何帮助您了解策略授予的权限并进行相关问题排查，请参阅[我的策略未授予预期权限](troubleshoot_policies.md#policy-summary-not-grant-permissions)。

1. 使用**摘要**和 **JSON** 按钮可在策略摘要和 JSON 策略文档之间切换。

1.  使用**搜索**框可减少服务列表，查找特定服务。

1. 展开的视图显示了 **SummaryAllElements** 策略的更多详细信息。

下面的策略摘要表图像显示在策略详细信息页面上已展开的 **SummaryAllElements** 策略。

![\[“Policy summary (策略摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-table-dialog.png)


在上图中，策略摘要在**策略**页面内可见：

1. 对于 IAM 识别的那些服务，它根据策略是允许还是显式拒绝使用该服务来安排服务。在此示例中，策略包含用于 Amazon S3 服务的 `Deny` 语句和用于账单、CodeDeploy 和 Amazon EC2 服务的 `Allow` 语句。

1. **Service**（服务）- 此列将列出在策略内定义的服务并提供每项服务的详细信息。策略摘要表中的每个服务名称都是指向*服务摘要* 表的一个链接，[服务摘要（操作列表）](access_policies_understand-service-summary.md)中对其进行了说明。在此示例中，为 Amazon S3、账单、CodeDeploy 和 Amazon EC2 服务定义了权限。

1. **访问级别** – 此列指出每个访问级别（`List`、`Read`、`Write`、`Permission Management` 和 `Tagging`）中的操作是具有策略中定义的 `Full` 还是 `Limited` 权限。有关访问权限级别摘要的更多详细信息和示例，请参阅[策略摘要中的访问级别](access_policies_understand-policy-summary-access-level-summaries.md)。
   + **Full access**（完全访问权限）- 此条目指示服务对该服务可用的全部四个访问权限级别中的所有操作都拥有访问权限。
   + <a name="full-vs-limited-access-summary"></a>如果该项不包含 **Full access**，则服务可以访问部分但不是全部用于该服务的操作。然后，通过对各个访问级别分类（`List`、`Read`、`Write`、`Permission Management` 和 `Tagging`）的说明来定义访问权限：

     **Full**：策略提供对列出的每个访问级别分类中的所有操作的访问权限。在此示例中，策略提供对所有账单 `Read` 操作的访问权限。

     **Limited**：策略提供对所列每个访问级别分类内的一个或多个但不是全部操作的访问权限。在此示例中，策略提供对部分账单 `Write` 操作的访问权限。

1. **Resource**（资源）- 此列显示策略为每项服务指定的资源。
   + **Multiple**（多个）- 策略包含服务内多个但不是全部资源。在此示例中，显式拒绝对多个 Amazon S3 资源的访问权限。
   + **所有资源** – 策略是为服务内的所有资源定义的。在此示例中，策略允许对所有账单资源执行列出的操作。
   + Resource text - 该策略包含服务内的一个资源。在此示例中，只允许对 `DeploymentGroupName` CodeDeploy 资源执行列出的操作。根据服务提供给 IAM 的信息，您可能会看到 ARN 或定义的资源类型。
**注意**  
此列可以包括来自不同服务的资源。如果包含资源的策略语句不包括来自同一服务的操作和资源，则您的策略将包括不匹配的资源。在创建策略或在策略摘要中查看策略时，IAM 不会就不匹配的资源向您发出警告。如果此列包含不匹配的资源，那么您应该查看策略中是否有错误。为了更好地了解您的策略，请始终使用[策略模拟器](access_policies_testing-policies.md)进行测试。

1. **Request condition**（请求操作）- 此列指示与资源关联的服务或操作是否受条件约束。
   + **None**（无）- 策略对服务不包含任何条件。在此示例中，没有条件适用于 Amazon S3 服务中拒绝的操作。
   + Condition text - 策略对服务包含一个条件。在此示例中，仅当源的 IP 地址与 `203.0.113.0/24` 匹配时，才允许执行列出的账单操作。
   + **Multiple**（多个）- 策略对服务包含多个条件。要查看策略多个条件中的每一个条件，请选择 **JSON** 查看策略文档。

1. **显示剩余服务** – 切换此按钮可展开表以包含策略未定义的服务。这些服务在该策略中被*隐式拒绝* (或默认拒绝)。但是，另一策略中的语句可能仍然允许或显式拒绝使用该服务。策略摘要汇总了单个策略的权限。要了解 AWS 服务如何决定是允许还是拒绝给定的请求，请参阅[策略评估逻辑](reference_policies_evaluation-logic.md)。

当策略或策略中的元素未授予权限时，IAM 在策略摘要中提供额外的警告和信息。下面的策略摘要表显示了在 **SummaryAllElements** 策略详细信息页面上展开的**显示剩余的服务**，并附带可能的警告。

![\[“Policy summary (策略摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-table-showremaining-dialog.png)


在上图中，您可以看到包含没有权限的既定操作、资源或条件的所有服务：

1. **Resource warnings**（资源警告）- 对于没有为所有包含的操作或资源提供权限的服务，您将在表的 **Resource**（资源）列中看到以下警告之一：
   + **![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/console-alert-icon.console.png) No resources are defined. (未定义任何资源。)** - 这意味着服务具有定义的操作，但策略不包含支持的资源。
   + **![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/console-alert-icon.console.png) One or more actions do not have an applicable resource. (一个或多个操作没有适用的资源。)** - 这意味着该服务具有定义的操作，但其中的一些操作没有支持的资源。
   + **![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/console-alert-icon.console.png) One or more resources do not have an applicable action. (一个或多个资源没有适用的操作。)** - 这意味着该服务具有定义的资源，但其中的一些资源没有支持的操作。

   如果服务同时包含没有适用资源的操作和有适用资源的资源，则显示警告：**一个或多个资源没有适用的操作。**这是因为：当您查看服务的服务摘要时，不会显示不适用于任何操作的资源。对于 `ListAllMyBuckets` 操作，该策略包含最后一条警告，因为该操作不支持资源级权限，也不支持 `s3:x-amz-acl` 条件键。如果修复了资源问题或条件问题，详细警告中将显示剩余问题。

1. **Request condition warnings**（请求条件警告）- 对于没有为所有包含的条件提供权限的服务，您将在表的 **Request condition**（请求条件）列中看到以下警告之一：
   + **![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/console-alert-icon.console.png) One or more actions do not have an applicable condition. (一个或多个操作没有适用的条件。)** - 这意味着服务具有定义的操作，但其中的一些操作没有支持的条件。
   + **![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/console-alert-icon.console.png) One or more conditions do not have an applicable action. (一个或多个条件没有适用的操作。)** - 这意味着服务定义了一些条件，但其中的一些条件没有支持的操作。

1. **Multiple \$1 ![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/console-alert-icon.console.png) One or more actions do not have an applicable resource. (一个或多个操作没有适用的资源。)** - Amazon S3 的 `Deny` 语句包含多个资源。它还包含多个操作，但其中一些操作支持资源，一些不支持。要查看该策略，请参阅 [**SummaryAllElements** JSON 策略文档](#policy-summary-example-json)。在这种情况下，策略包含所有 Amazon S3 操作，只拒绝可在存储桶或存储桶对象上执行的操作。

1. ** No resources are defined![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/console-alert-icon.console.png) ** 服务具有定义的操作，但策略中不包含支持的资源，因此服务不提供任何权限。在这种情况下，策略包含 CodeCommit 操作但不包含 CodeCommit 资源。

1. **DeploymentGroupName \$1 字符串示例 \$1 All, region \$1 字符串示例 \$1 us-west-2 \$1 ![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/console-alert-icon.console.png) 一个或多个资源没有适用的操作。**– 服务具有定义的操作和至少一个没有支持资源的操作。

1. **无 \$1 ![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/console-alert-icon.console.png) 一个或多个条件没有适用的操作。**– 服务具有至少一个没有支持操作的条件键。

## **SummaryAllElements** JSON 策略文档
<a name="policy-summary-example-json"></a>

**SummaryAllElements** 策略不适用于在账户中定义权限。包含它的目的在于演示您在查看策略摘要时可能会遇到的错误和警告。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "billing:Get*",
                "payments:List*",
                "payments:Update*",
                "account:Get*",
                "account:List*",
                "cur:GetUsage*"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": "203.0.113.0/24"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::customer",
                "arn:aws:s3:::customer/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:GetConsoleScreenshots"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "codedploy:*",
                "codecommit:*"
            ],
            "Resource": [
                "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup:*",
                "arn:aws:codebuild:us-east-1:123456789012:project/my-demo-project"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetObject",
                "s3:DeletObject",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:autoscling:us-east-2:123456789012:autoscalgrp"
            ],
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": [
                        "public-read"
                    ],
                    "s3:prefix": [
                        "custom",
                        "other"
                    ]
                }
            }
        }
    ]
}
```

------

# 查看策略摘要
<a name="access_policies_view-policy-summary"></a>

可以查看附加到 IAM 用户或角色的任何策略的策略摘要。对于托管式策略，可以在**策略**页面上查看策略摘要。如果您的策略不包含策略摘要，请参阅[缺少策略摘要](troubleshoot_policies.md#missing-policy-summary)了解原因。

## 从**策略**页面查看策略摘要
<a name="viewing-policy-summaries-from-the-policies-page"></a>

可以在 **Policies** 页面上查看托管策略的策略摘要。

**从 **Policies** 页面查看策略摘要**

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

1. 在导航窗格中，选择**策略**。

1. 在策略列表中，选择要查看的策略的名称。

1. 在策略的**策略详细信息**页面上，查看**权限**选项卡以查看策略摘要。

## 查看附加到用户的策略的策略摘要
<a name="viewing-policy-summaries-for-policies-attached-to-users"></a>

可以查看附加到 IAM 用户的任何策略的策略摘要。

**查看附加到用户的策略的摘要**

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

1. 从导航窗格中选择 **Users**。

1. 在用户列表中，选择要查看其策略的用户的名称。

1. 在用户的 **Summary** 页面上，查看 **Permissions** 选项卡，以查看直接附加到用户或从组附加到用户的策略列表。

1. 在用户的策略表中，展开要查看的策略的行。

## 查看附加到角色的策略的策略摘要
<a name="viewing-policy-summaries-for-policies-attached-to-roles"></a>

可以查看附加到角色的任何策略的策略摘要。

**查看附加到角色的策略的摘要**

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

1. 在导航窗格中，选择**角色**。

1. 在角色列表中，选择要查看其策略的角色的名称。

1. 在角色的 **Summary** 页面上，查看 **Permissions** 选项卡，以查看附加到角色的策略列表。

1. 在角色的策略表中，展开要查看的策略的行。

## 编辑策略以纠正警告
<a name="edit-policy-summary"></a>

在查看策略摘要时，您可能会发现拼写错误，或者注意到策略未提供所需的权限。您无法直接编辑策略摘要。不过，您可以使用可视化策略编辑器编辑客户管理的策略，该编辑器捕获策略摘要报告的很多相同的错误和警告。然后，您可以在策略摘要中查看更改以确认纠正了所有问题。要了解如何编辑内联策略，请参阅[编辑 IAM 策略](access_policies_manage-edit.md)。您无法编辑 AWS 托管策略。

可以使用**可视化**选项编辑策略摘要的策略。

**使用**可视化**选项为您的策略摘要编辑策略**

1. 按照上述步骤中的说明打开策略摘要。

1. 选择**编辑**。

   如果您已打开**用户**页面，请选择编辑附加到该用户的客户托管策略，之后您会被重定向到**策略**页面。您只能在 **Policies** 页面上编辑客户托管策略。

1. 请选择**可视化**选项以查看您的策略的可编辑可视化形式。IAM 可能会调整您的策略结构以针对可视化编辑器进行优化，并使您更轻松地查找和解决任何问题。页面上的警告和错误消息可以指导您解决策略中的任何问题。有关 IAM 如何调整策略结构的更多信息，请参阅 [调整策略结构](troubleshoot_policies.md#troubleshoot_viseditor-restructure)。

1. 编辑您的策略，然后选择**下一步**以查看策略摘要中是否反映了更改。如果仍出现问题，请选择**上一步**以返回到编辑屏幕。

1. 选择**保存更改**以保存您的更改。

可以使用 **JSON** 选项编辑策略摘要的策略。

**使用 **JSON** 选项编辑策略摘要的策略**

1. 按照上述步骤中的说明打开策略摘要。

1. 您可以使用**摘要**和 **JSON** 按钮比较策略摘要和 JSON 策略文档。您可以使用该信息来确定要更改策略文档中的哪些行。

1. 选择**编辑**，然后选择 **JSON** 选项以编辑 JSON 策略文档。
**注意**  
您可以随时在**可视化**和 **JSON** 编辑器选项卡之间切换。不过，如果您进行更改或在**可视化**编辑器选项中选择**下一步**，IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息，请参阅 [调整策略结构](troubleshoot_policies.md#troubleshoot_viseditor-restructure)。

   如果您已打开**用户**页面，请选择编辑附加到该用户的客户托管策略，之后您会被重定向到**策略**页面。您只能在 **Policies** 页面上编辑客户托管策略。

1. 编辑策略。解决[策略验证](access_policies_policy-validator.md)过程中生成的任何安全警告、错误或常规警告，然后选择**下一步**。如果仍出现问题，请选择**上一步**以返回到编辑屏幕。

1. 选择**保存更改**以保存您的更改。

# 策略摘要中的访问级别
<a name="access_policies_understand-policy-summary-access-level-summaries"></a>

## AWS 访问级别摘要
<a name="access_policies_access-level-summaries"></a>

策略摘要中包括一个访问级别摘要，用于描述为策略中提及的每项服务定义的操作权限。要了解策略摘要，请参阅[策略摘要](access_policies_understand.md)。访问级别摘要指出在策略中为每个访问级别中的操作（`List`、`Read`、`Tagging`、`Write` 和 `Permissions management`）定义的是 `Full` 还是 `Limited` 权限。要查看分配给服务中每个操作的访问级别分类，请参阅 [AWS 服务的操作、资源和条件键](reference_policies_actions-resources-contextkeys.html)。

下面的示例介绍策略为给定服务提供的访问权限。有关完整 JSON 策略文档及其相关摘要的示例，请参阅[策略摘要示例](access_policies_policy-summary-examples.md)。


****  

| 服务 | 访问级别 | 此策略提供以下访问权限 | 
| --- | --- | --- | 
| IAM | 完全访问 | 对 IAM 服务内所有操作的访问权限。 | 
| CloudWatch | Full: List | 对 List 访问级别中所有 CloudWatch 操作的访问权限，但无权访问 Read、Write或 Permissions management 访问级别分类的操作。 | 
| Data Pipeline | Limited: List, Read | 对于 List 和 Read 访问级别中至少一项但不是全部 AWS Data Pipeline 操作（但不是 Write 或 Permissions management 操作）的访问权限。 | 
| EC2 | Full: List, Read Limited: Write | 对所有 Amazon EC2List 和 Read 操作的访问权限以及对至少一项但不是全部 Amazon EC2 Write 操作的访问权限，但不具有对于 Permissions management 访问级别分类中的操作的访问权限。 | 
| S3 | Limited：Read、Write、Permissions management | 访问至少一个但并非全部 Amazon S3 Read、Write 和 Permissions management 操作。 | 
| codedploy | （空） | 未知访问权限，因为 IAM 无法识别此服务。 | 
| API Gateway | 无 | 策略中未定义任何访问权限。 | 
| CodeBuild | ![\[a white exclamation point on an orange triangle background\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/console-alert-icon.console.png) 未定义任何操作。 | 没有为服务定义任何操作，因而无法访问。要了解该问题和进行问题排查，请参阅[我的策略未授予预期权限](troubleshoot_policies.md#policy-summary-not-grant-permissions)。 | 

在策略摘要中，**完全访问权限**表示策略提供对服务内所有操作的访问权限。提供对服务内的部分但不是全部操作的访问权限的策略将根据访问级别分类进一步分组。这由下面的其中一个访问级别分组来指示：
+ **Full**：策略提供对指定访问级别分类中所有操作的访问权限。
+ **Limited**：策略提供对指定访问级别分类内的一个或多个但不是全部操作的访问权限。
+ **None**：策略未提供任何访问权限。
+ （空）：IAM 无法识别该服务。如果服务名称包含拼写错误，则该策略不允许访问该服务。如果服务名称正确，则服务可能不支持策略摘要或可能正处于预览状态。在这种情况下，策略可能会提供访问权限，但访问权限可能不会显示在策略摘要中。要为公开提供 (GA) 服务请求策略摘要支持，请参阅[服务不支持 IAM policy 摘要](troubleshoot_policies.md#unsupported-services-actions)。

包括对操作的有限（部分）访问权限的访问级别摘要使用 AWS 服务级别分类 `List`、`Read`、`Tagging`、`Write` 或 `Permissions management` 进行分组。

## AWS 访问级别
<a name="access_policies_access-level"></a>

AWS 为服务中的操作定义以下访问级别分类：
+ **List (列出)**：列出服务内的资源以确定某个对象是否存在的权限。此访问权限级别的操作可以列出对象，但是看不到资源的内容。例如，Amazon S3 操作 `ListBucket` 具有 **List**（列出）访问级别。
+ **Read (读取)**：读取服务中资源的内容和属性但不对其进行编辑的权限。例如，Amazon S3 操作 `GetObject` 和 `GetBucketLocation` 具有 **Read**（读取）访问权限级别。
+ **标记**：执行仅更改资源标签状态的操作的权限。例如，IAM 操作 `TagRole` 和 `UntagRole` 具有标记访问级别，因为它们仅允许**标记**或取消标记角色。不过，`CreateRole` 操作允许在创建角色时标记该角色资源。由于该操作并非仅添加标签，因此，它具有 `Write` 访问级别。
+ **Write (写入)**：在服务中创建、删除或修改资源的权限。例如，Amazon S3 操作 `CreateBucket`、`DeleteBucket` 和 `PutObject` 具有**写入**访问级别。`Write` 操作可能还允许修改资源标签。不过，仅允许更改标签的操作具有 `Tagging` 访问级别。
+ **权限管理**：权限管理是指控制 AWS 服务 内访问的操作，包括 IAM 和非 IAM 身份权限，但不包括安全组等网络级访问控制。例如，大多数 IAM 和 AWS Organizations 操作以及 Amazon S3 操作 `PutBucketPolicy` 和 `DeleteBucketPolicy` 具有**权限管理**访问级别。
**提示**  
要提高您的 AWS 账户 的安全性，请限制或定期监控具有 **Permissions management**（权限管理）访问级别分类的策略。

要查看分配给服务中每个操作的访问级别分类，请参阅 [AWS 服务的操作、资源和条件键](reference_policies_actions-resources-contextkeys.html)。

# 服务摘要（操作列表）
<a name="access_policies_understand-service-summary"></a>

策略在三个表中概括：策略摘要、[服务摘要](access_policies_understand-policy-summary.md)和[操作摘要](access_policies_understand-action-summary.md)。*服务摘要*表包括由所选服务的策略定义的操作列表和权限摘要。

![\[阐释这 3 个表以及它们之间关系的策略摘要图\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policy_summaries-svc-sum.png)


对于策略摘要中列出的每个授予权限的服务，您都可以查看服务摘要。该表分组为 **Uncategorized actions**、**Uncategorized resource types** 和访问级别部分。如果策略包含 IAM 无法识别的操作，则该操作将包含在表的 **Uncategorized actions**（无法识别的操作）部分中。如果 IAM 能够识别该操作，则它将包含在表的某个访问级别（**List**（列出）、**Read**（读取）、**Write**（写入）和 **Permissions management**（权限管理））部分下。要查看分配给服务中每个操作的访问级别分类，请参阅 [AWS 服务的操作、资源和条件键](reference_policies_actions-resources-contextkeys.html)。

## 了解服务摘要的元素
<a name="understanding-elements-service-summary"></a>

下面的示例是策略摘要许可的 Amazon S3 操作的服务摘要。此服务的操作按访问级别分组。例如，在服务可用的总计 52 个**读取**操作之中，定义了 35 个**读取**操作。

![\[“Service summary (服务摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-action-dialog.png)


托管策略的服务摘要页面上包含以下信息：

1. 如果策略未向策略中服务定义的所有操作、资源和条件授予权限，则将在页面顶部显示警告或错误横幅。服务摘要中包含有关该问题的详细信息。要了解策略摘要如何帮助您了解策略授予的权限并进行相关问题排查，请参阅[我的策略未授予预期权限](troubleshoot_policies.md#policy-summary-not-grant-permissions)。

1. 选择 **JSON** 可查看策略的其他详细信息。您可以执行此操作以查看应用于操作的所有条件。(如果您要查看直接附加到用户的内联策略的服务摘要，则必须关闭服务摘要对话框并返回到策略摘要以访问 JSON 策略文档。)

1. 要查看特定操作的摘要，请在**搜索**框中键入关键字以缩短可用操作列表。

1. 在**服务**返回箭头旁将显示服务的名称（在此例中为 **S3**）。此服务的服务摘要包括在策略中定义的允许或拒绝的操作的列表。如果服务显示在**权限**选项卡的**（显式拒绝）**下，则服务摘要表中列出的操作将被明确拒绝。如果服务出现在**权限**选项卡的**允许**下，则服务摘要表中列出的操作将被允许。

1. **操作** – 此列将列出在策略中定义的操作，并提供每个操作的资源和条件。如果策略向操作授予或拒绝权限，则操作名称链接到*[操作摘要](access_policies_understand-action-summary.md)*表。该表将操作分组为至少 1 个或最多 5 个部分，具体取决于策略允许或拒绝的访问权限级别。这些部分是**列表**、**读取**、**写入**、**权限管理**和**标记**。计数表示每个访问级别内提供权限的已识别操作的数量。总计是服务的已知操作数量。在此示例中，总共 52 个已知 Amazon S3 **读取**操作，有 35 个操作提供权限。要查看分配给服务中每个操作的访问级别分类，请参阅 [AWS 服务的操作、资源和条件键](reference_policies_actions-resources-contextkeys.html)。

1. **显示剩余操作** – 切换此按钮可展开或隐藏该表，以包含已知但未向此服务提供权限的操作。切换按钮还将显示未提供权限的任何元素的警告。

1. **Resource**（资源）- 此列显示策略为服务定义的资源。IAM 不检查资源是否适用于每个操作。在此示例中，只允许对 `developer_bucket` Amazon S3 桶资源执行 Amazon S3 服务中的操作。根据服务提供给 IAM 的信息，您可能会看到一个 ARN（如 `arn:aws:s3:::developer_bucket/*`），或者您可能会看到定义的资源类型（如 `BucketName = developer_bucket`）。
**注意**  
此列可以包括来自不同服务的资源。如果包含资源的策略语句不包括来自同一服务的操作和资源，则您的策略将包括不匹配的资源。在创建策略或在服务摘要中查看策略时，IAM 不会就不匹配的资源向您发出警告。IAM 也不会指示操作是否适用于资源，仅会指示服务是否匹配。如果此列包含不匹配的资源，那么您应该查看策略中是否有错误。为了更好地了解您的策略，请始终使用[策略模拟器](access_policies_testing-policies.md)进行测试。

1. **Request condition**（请求条件）- 此列指出与资源关联的操作是否受条件约束。要了解有关这些条件的更多信息，请选择 **JSON** 以查看 JSON 策略文档。

1. **(No access）**（无权访问）- 此策略包含未提供权限的操作。

1. **Resource warning**（资源警告）对于资源不提供完全权限的操作，您将看到以下警告之一：
   + **此操作不支持资源级权限。这需要为资源提供通配符 (\$1)。**- 这意味着策略包含资源级权限，但必须包含 `"Resource": ["*"]` 来提供此操作的权限。
   + **此操作没有适用的资源。**- 这意味着策略中包含该操作，但没有支持资源。
   + **This action does not have an applicable resource and condition. (此操作没有适用的资源和条件。)** - 这意味着策略中包含该操作，但没有支持资源和支持条件。在这种情况下，策略中还包含用于此服务的条件，但没有适用于此操作的条件。

1. 提供权限的操作包含指向操作摘要的链接。

# 查看服务摘要
<a name="access_policies_view-service-summary"></a>

对于策略摘要中列出的每个授予权限的服务，您都可以查看服务摘要。

## 从**策略**页面查看服务摘要
<a name="viewing-service-summaries-from-the-policies-page"></a>

您可以在**策略**页面上查看管理型策略的服务摘要。

**查看托管策略的服务摘要**

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

1. 在导航窗格中，选择**策略**。

1. 在策略列表中，选择要查看的策略的名称。

1. 在策略的**策略详细信息**页面上，查看**权限**选项卡以查看策略摘要。

1. 在服务的策略摘要列表中，选择您想要查看的服务的名称。

## 查看附加到用户的策略的服务摘要
<a name="viewing-service-summaries-for-policies-attached-to-users"></a>

可以查看附加到 IAM 用户的任何策略的服务摘要。

**查看附加到用户的策略的服务摘要**

1. 登录 AWS 管理控制台，单击 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择**用户**。

1. 在用户列表中，选择要查看其策略的用户的名称。

1. 在用户的 **Summary** 页面上，查看 **Permissions** 选项卡，以查看直接附加到用户或从组附加到用户的策略列表。

1. 在用户的策略表中，选择要查看的策略的名称。

   如果您已打开**用户**页面，并选择查看附加到该用户的策略的服务摘要，则您会被重定向到**策略**页面。您只能在**策略**页面上查看服务摘要。

1. 选择**摘要**。在服务的策略摘要列表中，选择您想要查看的服务的名称。
**注意**  
如果您选择的策略是直接附加到用户的内联策略，则将显示服务摘要表。如果策略是附加到组的内联策略，则您将看到该组的 JSON 策略文档。如果策略是托管策略，则您将在 **Policies** 页面中看到该策略的服务摘要。

## 查看附加到角色的策略的服务摘要
<a name="viewing-service-summaries-for-policies-attached-to-roles"></a>

可以查看附加到角色的任何策略的策略摘要。

**查看附加到角色的策略的服务摘要**

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

1. 从导航窗格中，选择 **Roles**。

1. 在角色列表中，选择要查看其策略的角色的名称。

1. 在角色的 **Summary** 页面上，查看 **Permissions** 选项卡，以查看附加到角色的策略列表。

1. 在角色的策略表中，选择要查看的策略的名称。

   如果您已打开**角色**页面，并选择查看附加到该用户的策略的服务摘要，则您会被重定向到**策略**页面。您只能在**策略**页面上查看服务摘要。

1. 在服务的策略摘要列表中，选择您想要查看的服务的名称。

# 操作摘要（资源列表）
<a name="access_policies_understand-action-summary"></a>

策略在三个表中概括：策略摘要、[服务摘要](access_policies_understand-policy-summary.md)和[操作摘要](access_policies_understand-service-summary.md)。*操作摘要* 表包含应用至所选操作的资源和相关条件的列表。

![\[阐释这 3 个表以及它们之间关系的策略摘要图。\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policy_summaries-action-sum.png)


要查看授予权限的每个操作的操作摘要，请在服务摘要中选择链接。操作摘要表包含资源的详细信息，其中包括资源的 **Region** 和 **Account**。您还可以查看适用于每个资源的条件。这将显示适用于某些资源而不是其他资源的条件。

## 了解操作摘要的元素
<a name="understanding-elements-action-summary"></a>

以下示例是 Amazon S3 服务摘要中 `PutObject`（写入）操作的操作摘要（请参阅 [服务摘要（操作列表）](access_policies_understand-service-summary.md)）。对于此操作，策略在单个资源上定义多个条件。



![\[“Action summary (操作摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-resource-dialog.png)


操作摘要页面包含以下信息：

1. 选择 **JSON** 可查看有关策略的其他详细信息，如查看适用于这些操作的多个条件。(如果您要查看直接附加到用户的内联策略的操作摘要，步骤则不同。这种情况下要访问 JSON 策略文档，则必须关闭服务摘要对话框并返回到策略摘要。)

1. 要查看特定资源的摘要，请在**搜索**框中键入关键字以缩短可用资源列表。

1. **操作**返回箭头旁边显示的是 `action name action in service` 格式的服务和操作名称（在本例中为 **S3 中的 PutObject 操作**）。此服务的操作摘要包括在策略中定义的资源列表。

1. **Resource**（资源）- 此列将列出策略为所选服务定义的资源。在此示例中，**PutObject** 操作被允许在所有对象路径上执行，但仅在 `developer_bucket` Amazon S3 存储桶资源上使用。根据服务提供给 IAM 的信息，您可能会看到一个 ARN（如 `arn:aws:s3:::developer_bucket/*`），或者您可能会看到定义的资源类型（如 `BucketName = developer_bucket, ObjectPath = All`）。

1. **Region**（区域）- 该列显示在其中定义资源的区域。可以为所有区域或单个区域定义资源。它们不能位于多个特定的区域中。
   + **所有区域** – 与资源关联的操作适用于所有区域。在此示例中，该操作属于一项全球服务 Amazon S3。属于全球服务的操作适用于所有区域。
   + Region text - 与资源关联的操作适用于一个区域。例如，策略可以为资源指定 `us-east-2` 区域。

1. **Account**（账户）- 此列指示与资源相关联的服务或操作是否适用于特定账户。资源可以存在于所有账户中，也可以存在于单个账户中。它们不能存在于多个特定账户中。
   + **All accounts**（所有账户）- 与资源相关联的操作适用于所有账户。在此示例中，该操作属于一项全球服务 Amazon S3。属于全球服务的操作适用于所有账户。
   + **此账户** – 与资源相关联的操作仅适用于当前账户。
   + Account number - 与该资源相关联的操作适用于一个账户（不是您当前登录的账户）。例如，如果策略为资源指定 `123456789012` 的账户，则账号将显示在策略摘要中。

1. **Request condition**（请求条件）- 此列显示与资源关联的操作是否受条件约束。此示例包含 `s3:x-amz-acl = public-read` 条件。要了解有关这些条件的更多信息，请选择 **JSON** 以查看 JSON 策略文档。

# 查看操作摘要
<a name="access_policies_view-action-summary"></a>

可以查看策略摘要中列出的授予权限的每个操作的操作摘要。

## 从**策略**页面查看操作摘要
<a name="viewing-action-summaries-from-the-policies-page"></a>

可以查看托管式策略的操作摘要。

**查看托管策略的操作摘要**

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

1. 在导航窗格中，选择**策略**。

1. 在策略列表中，选择要查看的策略的名称。

1. 在策略的**策略详细信息**页面上，查看**权限**选项卡以查看策略摘要。

1. 在服务的策略摘要列表中，选择您想要查看的服务的名称。

1. 在操作的服务摘要列表中，选择您想要查看的操作的名称。

## 查看附加到用户的策略的操作摘要
<a name="viewing-action-summaries-for-policies-attached-to-users"></a>

可以查看附加到用户的任何策略的操作摘要。

**查看附加到用户的策略的操作摘要**

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

1. 从导航窗格中选择 **Users**。

1. 在用户列表中，选择要查看其策略的用户的名称。

1. 在用户的 **Summary** 页面上，查看 **Permissions** 选项卡，以查看直接附加到用户或从组附加到用户的策略列表。

1. 在用户的策略表中，选择要查看的策略的名称。

   如果您已打开**用户**页面，并选择查看附加到该用户的策略的服务摘要，则您会被重定向到**策略**页面。您只能在**策略**页面上查看服务摘要。

1. 在服务的策略摘要列表中，选择您想要查看的服务的名称。
**注意**  
如果您选择的策略是直接附加到用户的内联策略，则将显示服务摘要表。如果策略是附加到组的内联策略，则您将看到该组的 JSON 策略文档。如果策略是托管策略，则您将在 **Policies** 页面中看到该策略的服务摘要。

1. 在操作的服务摘要列表中，选择您想要查看的操作的名称。

## 查看附加到角色的策略的操作摘要
<a name="viewing-action-summaries-for-policies-attached-to-roles"></a>

可以查看附加到角色的任何策略的操作摘要。

**查看附加到角色的策略的操作摘要**

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

1. 在导航窗格中，选择**角色**。

1. 在角色列表中，选择要查看其策略的角色的名称。

1. 在角色的 **Summary** 页面上，查看 **Permissions** 选项卡，以查看附加到角色的策略列表。

1. 在角色的策略表中，选择要查看的策略的名称。

   如果您已打开**角色**页面，并选择查看附加到该用户的策略的服务摘要，则您会被重定向到**策略**页面。您只能在**策略**页面上查看服务摘要。

1. 在服务的策略摘要列表中，选择您想要查看的服务的名称。

1. 在操作的服务摘要列表中，选择您想要查看的操作的名称。

# 策略摘要示例
<a name="access_policies_policy-summary-examples"></a>

以下示例包括 JSON 策略及其关联的[策略摘要](access_policies_understand-policy-summary.md)、[服务摘要](access_policies_understand-service-summary.md)和[操作摘要](access_policies_understand-action-summary.md)，可帮助您了解通过策略授予的权限。

## 策略 1：DenyCustomerBucket
<a name="example1"></a>

此策略展示对同一项服务的允许和拒绝。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "FullAccess",
            "Effect": "Allow",
            "Action": ["s3:*"],
            "Resource": ["*"]
        },
        {
            "Sid": "DenyCustomerBucket",
            "Action": ["s3:*"],
            "Effect": "Deny",
            "Resource": ["arn:aws:s3:::customer", "arn:aws:s3:::customer/*" ]
        }
    ]
}
```

------

***DenyCustomerBucket** 策略摘要：*

![\[“Policy summary (策略摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-example1-dialog.png)


***DenyCustomerBucket S3 (Explicit deny)** 服务摘要：*

![\[“Service summary (服务摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-action-example1-dialog.png)


***GetObject (Read)** 操作摘要：*

![\[“Action summary (操作摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-resource-example1-dialog.png)


## 策略2：DynamoDbRowCognitoID
<a name="policy_example2"></a>

该策略基于用户的 Amazon Cognito ID 提供对 Amazon DynamoDB 的行级别访问权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:DeleteItem",
                "dynamodb:GetItem",
                "dynamodb:PutItem",
                "dynamodb:UpdateItem"
            ],
            "Resource": [
                "arn:aws:dynamodb:us-west-1:123456789012:table/myDynamoTable"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "dynamodb:LeadingKeys": [
                        "${cognito-identity.amazonaws.com:sub}"
                    ]
                }
            }
        }
    ]
}
```

------

***DynamoDbRowCognitoID** 策略摘要：*

![\[“Policy summary (策略摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-example2-dialog.png)


***DynamoDbRowCognitoID DynamoDB (允许)** 服务摘要：*

![\[“Service summary (服务摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-action-example2-dialog.png)


***GetItem (List)** 操作摘要：*

![\[“Action summary (操作摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-resource-example2-dialog.png)


## 策略 3：MultipleResourceCondition
<a name="policy_example3"></a>

此策略包括多个资源和条件。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": ["arn:aws:s3:::Apple_bucket/*"],
            "Condition": {"StringEquals": {"s3:x-amz-acl": ["public-read"]}}
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": ["arn:aws:s3:::Orange_bucket/*"],
            "Condition": {"StringEquals": {
                "s3:x-amz-acl": ["custom"],
                "s3:x-amz-grant-full-control": ["1234"]
            }}
        }
    ]
}
```

------

***MultipleResourceCondition** 策略摘要：*

![\[“Policy summary (策略摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-example3-dialog.png)


***MultipleResourceCondition S3 (允许)** 服务摘要：*

![\[“Service summary (服务摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-action-example3-dialog.png)


***PutObject (Write)** 操作摘要：*

![\[“Action summary (操作摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-resource-example3-dialog.png)


## 策略 4：EC2\$1troubleshoot
<a name="policy_example4"></a>

以下策略允许用户获取正在运行的 Amazon EC2 实例的截图，这可以帮助排查 EC2 故障。该策略还允许查看有关 Amazon S3 开发人员存储桶中的项目的信息。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:GetConsoleScreenshot"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::developer"
            ]
        }
    ]
}
```

------

***EC2\$1Troubleshoot** 策略摘要：*

![\[“Policy summary (策略摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-example4-dialog.png)


***EC2\$1Troubleshoot S3 (允许) ** 服务摘要：*

![\[“Service summary (服务摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-action-example4-dialog.png)


***ListBucket (List)** 操作摘要：*

![\[“Action summary (操作摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-resource-example4-dialog.png)


## 策略 5：CodeBuild\$1CodeCommit\$1CodeDeploy
<a name="example6"></a>

此策略提供对特定 CodeBuild、CodeCommit 和 CodeDeploy 资源的访问。由于这些资源特定于每个服务，因此它们只与匹配的服务一起出现。如果您包含的资源与 `Action` 元素中的任何服务均不匹配，则该资源将出现在所有操作摘要中。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Stmt1487980617000",
            "Effect": "Allow",
            "Action": [
                "codebuild:*",
                "codecommit:*",
                "codedeploy:*"
            ],
            "Resource": [
                "arn:aws:codebuild:us-east-2:123456789012:project/my-demo-project",
                "arn:aws:codecommit:us-east-2:123456789012:MyDemoRepo",
                "arn:aws:codedeploy:us-east-2:123456789012:application:WordPress_App",
                "arn:aws:codedeploy:us-east-2:123456789012:instance/AssetTag*"
            ]
        }
    ]
}
```

------

***CodeBuild\$1CodeCommit\$1CodeDeploy** 策略摘要：*

![\[“Policy summary (策略摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-example6-dialog.png)


***CodeBuild\$1CodeCommit\$1CodeDeploy CodeBuild (Allow)** 服务摘要：*

![\[“Service summary (服务摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-action-example6-dialog.png)


***CodeBuild\$1CodeCommit\$1CodeDeploy StartBuild (Write)** 操作摘要：*

![\[“Action summary (操作摘要)”对话框图像\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/policies-summary-resource-example6-dialog.png)


# 访问 IAM 资源所需的权限
<a name="access_permissions-required"></a>

*Resources*（资源）是服务中的对象。IAM 资源包括组、用户、角色和策略。如果您使用 AWS 账户根用户 凭证进行登录，则在管理 IAM 凭证或 IAM 资源方面没有任何限制。不过，必须显式为 IAM 用户授予权限以管理凭证或 IAM 资源。您可以将基于身份的策略附加到用户以执行此操作。

**注意**  
在整个 AWS 文档中，在提及 IAM policy 而未提到任何特定类别时，我们指的是基于身份的客户管理型策略。有关策略类别的详细信息，请参阅[AWS Identity and Access Management 中的策略和权限](access_policies.md)。

## 用于管理 IAM 身份的权限
<a name="access_permissions-required-identities"></a>

管理 IAM 组、用户、角色和凭证所需的权限通常与该任务的 API 操作相对应。例如，要创建 IAM 用户，您必须具有执行相应 API 命令的 `iam:CreateUser` 权限：[https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html)。要允许 IAM 用户创建其他 IAM 用户，您可以将类似下面的 IAM policy 附加到该用户：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "iam:CreateUser",
    "Resource": "*"
  }
}
```

------

在策略中，`Resource` 元素的值取决于操作以及操作能够影响的资源。在上述示例中，策略允许用户创建任何用户 (`*` 是与所有字符串匹配的通配符)。相反，仅允许用户更改自己的访问密钥的策略（API 操作 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html) 和 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html)）通常具有一个 `Resource` 元素。在此情况下，ARN 包含一个解析为当前用户名的变量 (`${aws:username}`)，如以下示例中所示：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ListUsersForConsole",
            "Effect": "Allow",
            "Action": "iam:ListUsers",
            "Resource": "arn:aws:iam::*:*"
        },
        {
            "Sid": "ViewAndUpdateAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:UpdateAccessKey",
                "iam:CreateAccessKey",
                "iam:ListAccessKeys"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        }
    ]
}
```

------

在上述示例中，`${aws:username}` 是解析为当前用户的用户名的变量。有关策略变量的更多信息，请参阅 [IAM policy 元素：变量和标签](reference_policies_variables.md)。

一般来说，在操作名称中使用通配字符 (`*`) 可更轻松地为与特定任务相关的所有操作授予权限。例如，要允许用户执行任意 IAM 操作，您可以为操作使用 `iam:*`。要允许用户执行仅与访问密钥相关的操作，您可以在策略语句的 `iam:*AccessKey*` 元素中使用 `Action`。这可以授予用户执行 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html)、[https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteAccessKey.html)、[https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetAccessKeyLastUsed.html)、[https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAccessKeys.html) 和 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html) 操作的权限。（如果未来在 IAM 中添加了名称包含“AccessKey”的操作，为 `Action` 元素使用 `iam:*AccessKey*` 还会授予用户执行该新操作的权限。） 以下示例演示允许用户执行与自己的访问密钥有关的所有操作（将 `account-id` 替换为您的 AWS 账户 ID）的策略：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "iam:*AccessKey*",
        "Resource": "arn:aws:iam::111122223333:user/${aws:username}"
    }
}
```

------

有些任务（例如删除组）涉及多个操作：必须先从组中删除用户，再分离或删除组的策略，然后才能真正删除组。如果您希望一个用户能够删除群组，必须确保授予该用户执行所有相关操作的权限。

## 在 AWS 管理控制台中工作的权限
<a name="Credentials-Permissions-overview-console"></a>

上述示例演示允许用户使用 [AWS CLI](https://aws.amazon.com/cli/) 或 [AWS 开发工具包](https://aws.amazon.com/tools/)执行操作的策略。

在用户使用控制台时，控制台向 IAM 发出请求以列出组、用户、角色和策略并获取与组、用户或角色关联的策略。控制台还会发出请求以获取 AWS 账户 信息以及有关主体的信息。主体是在控制台中发出请求的用户。

通常，要执行某个操作，您必须仅在策略中包含匹配的操作。要创建用户，您需要具有调用 `CreateUser` 操作的权限。通常，在使用控制台执行操作时，您必须具有相应的权限才能在控制台中显示、列出、获取或以其他方式查看资源。您必须具有该权限，以便能够在控制台中导航以执行指定的操作。例如，如果用户 Jorge 要使用控制台更改自己的访问密钥，他可以访问 IAM 控制台并选择 **Users**（用户）。这种操作会导致控制台发出 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html) 请求。如果 Jorge 没有执行 `iam:ListUsers` 操作的权限，在控制台尝试列出用户时，将会被拒绝访问。因此，Jorge 无法获取自己的名称和访问密钥，即使他具有执行 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html) 和 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccessKey.html) 操作的权限。

如果要为用户授予权限以使用 AWS 管理控制台管理组、用户、角色、策略和凭证，您需要包含控制台执行的操作的权限。有关可用于向用户授予这些权限的部分策略示例，请参阅[管理 IAM 资源的策略示例](id_credentials_delegate-permissions_examples.md)。

## 向 AWS 帐户授予权限
<a name="UserPermissionsAcrossAccounts"></a>

您可以直接向自己账户中的 IAM 用户授予对您的资源的访问权限。如果其他账户中的用户需要访问您的资源，您可以创建 IAM 角色，该角色是一个实体，其包含权限，但不与特定用户相关联。随后，其他账户中的用户可以使用角色，并根据您分配给角色的权限来访问资源。有关更多信息，请参阅 [在您拥有的其他 AWS 账户 中 IAM 用户的访问权限](id_roles_common-scenarios_aws-accounts.md)。

**注意**  
有些服务支持基于资源的策略，如 [基于身份的策略和基于资源的策略](access_policies_identity-vs-resource.md) 中所述（例如 Amazon S3、Amazon SNS 和 Amazon SQS）。对于这些服务，使用角色的替代方法是将策略附加到要共享的资源（存储桶、主题或队列）。基于资源的策略可以指定具有访问资源权限的 AWS 账户。

## 某种服务访问其他服务的权限
<a name="UserPermissionsAcrossAWS_ARCHIVE"></a>

许多 AWS 服务都要访问其他 AWS 服务。例如，几个 AWS 服务（包括 Amazon EMR、Elastic Load Balancing 和 Amazon EC2 Auto Scaling）负责管理 Amazon EC2 实例。其他 AWS 服务利用 Amazon S3 存储桶、Amazon SNS 主题、Amazon SQS 队列等。

在这些情况下管理许可的方案根据服务的不同而各异。下面是一些如何针对不同服务处理许可的示例：
+ 在 Amazon EC2 Auto Scaling 中，用户必须拥有使用 Auto Scaling 的权限，但无需明确获得管理 Amazon EC2 实例的权限。
+ 在 AWS Data Pipeline 中，IAM 角色决定了管道可以执行哪些操作；用户需要权限来担任角色。（有关详细信息，请参阅 *AWS Data Pipeline 开发人员指南*中的[使用 IAM 向管道授予权限](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html)。） 

有关如何正确配置权限以便 AWS 服务能够完成您打算执行的任务的详细信息，请参阅您调用服务的文档。要了解如何为服务创建角色，请参阅[创建向 AWS 服务委派权限的角色](id_roles_create_for-service.md)。

**使用 IAM 角色配置服务以代表您工作**  
当要配置 AWS 服务代表您工作时，您通常要为 IAM 角色提供 ARN，用于定义允许该服务执行哪些操作。AWS 会检查并确保您有权将角色传递给该服务。有关更多信息，请参阅 [向用户授予权限以将角色传递给 AWS 服务](id_roles_use_passrole.md)。

## 所需的操作
<a name="access_permissions-required-dependent-actions"></a>

操作是可以对资源执行的操作，例如，查看、创建、编辑和删除该资源。操作是由每个 AWS 服务定义的。

要允许某个人执行操作，您必须在应用于进行调用的身份或受影响的资源的策略中包含所需的操作。通常，要提供执行某个操作所需的权限，您必须在策略中包括该操作。例如，要创建用户，您需要在策略中添加 CreateUser 操作。

在某些情况下，操作可能要求在策略中包含其他相关操作。例如，要为某个人提供在 AWS Directory Service 中使用 `ds:CreateDirectory` 操作创建目录的权限，您必须在策略中包含以下操作：
+ `ds:CreateDirectory`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeVpcs`
+ `ec2:CreateSecurityGroup`
+ `ec2:CreateNetworkInterface`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:AuthorizeSecurityGroupIngress`
+ `ec2:AuthorizeSecurityGroupEgress`

在使用可视化编辑器创建或编辑策略时，将显示警告和提示以帮助您选择您的策略所需的所有操作。

有关在 AWS Directory Service 中创建目录所需的权限的更多信息，请参阅[示例 2：允许用户创建目录](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/IAM_Auth_Access_IdentityBased.html#IAMPolicyExamples_DS_create_directory)。

# 管理 IAM 资源的策略示例
<a name="id_credentials_delegate-permissions_examples"></a>

以下 IAM policy 示例允许用户执行与管理 IAM 用户、组和凭证相关的任务。这包括允许用户管理自己的密码、访问密钥和多重验证 (MFA) 设备的策略。

有关允许用户执行对其他 AWS 服务（如 Amazon S3、Amazon EC2 和 DynamoDB）的任务的策略的示例，请参阅 [IAM 基于身份的策略示例](access_policies_examples.md)。

**Topics**
+ [允许用户列出账户的组、用户、策略等，以供报告之用](#iampolicy-example-userlistall)
+ [允许用户管理组的成员资格](#iampolicy-example-usermanagegroups)
+ [允许用户管理 IAM 用户](#creds-policies-users)
+ [允许用户设置账户密码策略](#creds-policies-set-password-policy)
+ [允许用户生成和检索 IAM 凭证报告](#iampolicy-generate-credential-report)
+ [允许所有 IAM 操作（管理员访问）](#creds-policies-all-iam)

## 允许用户列出账户的组、用户、策略等，以供报告之用
<a name="iampolicy-example-userlistall"></a>

以下策略允许用户调用以字符串 `Get` 或 `List` 开头的任何 IAM 操作，并生成报告。要查看示例策略，请参阅[IAM：允许对 IAM 控制台进行只读访问](reference_policies_examples_iam_read-only-console.md)。

## 允许用户管理组的成员资格
<a name="iampolicy-example-usermanagegroups"></a>

以下策略允许用户更新名为 *MarketingGroup* 的组的成员资格。要查看示例策略，请参阅[IAM：允许以编程方式和在控制台中管理组的成员资格](reference_policies_examples_iam_manage-group-membership.md)。

## 允许用户管理 IAM 用户
<a name="creds-policies-users"></a>

以下策略允许用户执行所有与管理 IAM 用户相关的任务，但是不允许对其他实体执行操作，如创建组或策略。允许的操作包括这些：
+ 创建用户（[https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html) 操作）。
+ 删除用户。此任务需要授予执行以下所有操作的权限：[https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSigningCertificate.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteSigningCertificate.html)、[https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteLoginProfile.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteLoginProfile.html)、[https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveUserFromGroup.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_RemoveUserFromGroup.html) 和 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUser.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUser.html)。
+ 列出账户和组中的用户（[https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html)、[https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html) 和 [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupsForUser.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListGroupsForUser.html) 操作）。
+ 列出和删除用户的策略（[https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUserPolicies.html)、[https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedUserPolicies.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListAttachedUserPolicies.html)、[https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DetachUserPolicy.html)、[https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPolicy.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUserPolicy.html) 操作） 
+ 重命名或更改用户的路径（[https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateUser.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateUser.html) 操作）。`Resource` 元素必须包括涉及源路径和目标路径的 ARN。有关路径的更多信息，请参阅[易记名称和路径](reference_identifiers.md#identifiers-friendly-names)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowUsersToPerformUserActions",
            "Effect": "Allow",
            "Action": [
                "iam:ListPolicies",
                "iam:GetPolicy",
                "iam:UpdateUser",
                "iam:AttachUserPolicy",
                "iam:ListEntitiesForPolicy",
                "iam:DeleteUserPolicy",
                "iam:DeleteUser",
                "iam:ListUserPolicies",
                "iam:CreateUser",
                "iam:RemoveUserFromGroup",
                "iam:AddUserToGroup",
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:PutUserPolicy",
                "iam:ListAttachedUserPolicies",
                "iam:ListUsers",
                "iam:GetUser",
                "iam:DetachUserPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowUsersToSeeStatsOnIAMConsoleDashboard",
            "Effect": "Allow",
            "Action": [
                "iam:GetAccount*",
                "iam:ListAccount*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

上述策略中包含的很多权限允许用户在 AWS 管理控制台中执行任务。仅从 [AWS CLI](https://aws.amazon.com/cli/)、[AWS SDK](https://aws.amazon.com/tools/) 或 IAM HTTP 查询 API 执行与用户相关的任务的用户可能不需要特定权限。例如，如果用户已知道从用户分离的策略的 ARN，则不需要 `iam:ListAttachedUserPolicies` 权限。用户所需权限的确切列表取决于用户管理其他用户时必须执行的任务。

以下策略中的权限允许通过 AWS 管理控制台访问用户任务：
+ `iam:GetAccount*`
+ `iam:ListAccount*`

## 允许用户设置账户密码策略
<a name="creds-policies-set-password-policy"></a>

您可以授予某些用户获取和更新您的 AWS 账户 的[密码策略](id_credentials_passwords_account-policy.md)的权限。要查看示例策略，请参阅[IAM：允许以编程方式和在控制台中设置账户密码要求](reference_policies_examples_iam_set-account-pass-policy.md)。

## 允许用户生成和检索 IAM 凭证报告
<a name="iampolicy-generate-credential-report"></a>

您可以授予用户生成和下载报告的权限，该报告列出了您 AWS 账户 中的所有用户。该报告还列出了各种用户凭证的状态，包括密码、访问密钥、MFA 设备和签名证书。有关凭证报告的更多信息，请参阅[为您的 AWS 账户 生成凭证报告](id_credentials_getting-report.md)。要查看示例策略，请参阅[IAM：生成和检索 IAM 凭证报告](reference_policies_examples_iam-credential-report.md)。

## 允许所有 IAM 操作（管理员访问）
<a name="creds-policies-all-iam"></a>

您可以授予某些用户在 IAM 中执行所有操作的管理员权限，包括管理密码、访问密钥、MFA 设备和用户凭证。以下示例策略授予这些权限。

**警告**  
当您向用户授予对 IAM 的完全访问权时，对用户可以向自己或他人授予的权限没有限制。用户可以创建新的 IAM 实体（用户或角色）并授予这些实体对您 AWS 账户 中所有资源的完全访问权限。您向用户授予对 IAM 的完全访问权限时，实际上是向用户授予对您 AWS 账户 中所有资源的完全访问权限。其中包括删除所有资源的权限。您应该仅将这些权限授予信任的管理员，还应对这些管理员强制采用多重身份验证 (MFA)。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "iam:*",
    "Resource": "*"
  }
}
```

------

# IAM 临时委派
<a name="access_policies-temporary-delegation"></a>

## 概述
<a name="temporary-delegation-overview"></a>

临时委派可以加快 Amazon 和 AWS 合作伙伴提供的与您的 AWS 账户集成产品的载入速度并简化管理。您无需手动配置多项 AWS 服务，而是可以委派临时的有限权限，允许产品提供商通过自动部署工作流程在几分钟内代表您完成设置任务。您可以通过批准要求和权限边界保持管理控制，而产品提供商的权限将在经过批准的持续时间后自动过期，无需手动清理。如果产品需要持续访问权限才能进行持续操作，则提供商可以使用临时委派来创建一个 IAM 角色，其权限边界定义了该角色的最大权限。所有产品提供商的活动都通过 AWS CloudTrail 进行跟踪，以进行合规和安全监控。

**注意**  
临时委派请求只能由已完成功能载入过程的 Amazon 产品和符合资格的 AWS 合作伙伴创建。客户可审核并批准这些请求，但无法直接创建请求。如果您是想要将 IAM 临时委派集成到产品中的 AWS 合作伙伴，请参阅[合作伙伴集成指南](access_policies-temporary-delegation-partner-guide.md)以获取载入和集成说明。

## 临时委派的工作原理
<a name="temporary-delegation-how-it-works"></a>

临时委派可让 Amazon 和 AWS 合作伙伴请求对您的账户进行临时、有限的访问。在您批准后，他们可以使用委派权限代表您采取行动。委派请求定义了产品提供商在您的 AWS 账户中部署或配置资源所需的 AWS 服务和操作的特定权限。这些权限仅在有限的时间内可用，并在经过请求中指定的持续时间后自动过期。

**注意**  
委派访问的最长持续时间为 12 小时。但是，根用户只能批准持续时间不超过 4 小时的委派请求。如果请求指定的时间超过 4 小时，则必须使用非根用户身份来批准该请求。有关详细信息，请参阅[权限模拟测试版功能](temporary-delegation-initiate-request.md#temporary-delegation-permission-simulation)。

对于正在进行的任务（例如从 Amazon S3 存储桶读取），委派请求可以包括创建一个 IAM 角色，允许在临时访问权限到期后继续访问资源和操作。产品提供商必须为通过临时委派创建的任何 IAM 角色附加权限边界。权限边界限制角色的最大权限，但不能自行授予权限。在批准请求之前，您可以查看作为请求一部分的权限边界。有关详细信息，请参阅[权限边界](access_policies_boundaries.md)。

具体流程如下：

1. 您可登录 Amazon 或 AWS 合作伙伴产品以将其与您的 AWS 环境集成。

1. 产品提供商代表您发起委派请求，并将您重定向到 AWS 管理控制台。

1. 您可以查看所请求的权限，并决定是批准、拒绝还是将该请求转发给您的管理员。

1. 您或您的管理员批准请求后，产品提供商就可以获得批准者的临时凭证来执行所需任务。

1. 产品提供商访问权限将在经过指定的时间段后自动过期。但是，通过临时委派请求创建的任何 IAM 角色在该期限过后仍然存在，从而允许产品提供商继续访问资源和操作以执行持续的管理任务。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/delegation-flow.png)


**注意**  
只有当您拥有临时委派请求中所包含服务和操作的权限时，您才能将权限委派给产品提供商。如果您无权访问请求的服务和操作，则在您批准请求后，产品提供商不会获得这些权限。

如果权限检查表明其很可能成功，则可以批准临时委派请求并继续该工作流程。

如果权限检查表明您可能没有足够的权限，请将请求转发给您的管理员进行批准。我们建议使用您偏好的方式（例如电子邮件或工单）将此请求通知您的管理员。

管理员批准请求后，接下来会发生什么取决于产品提供商的配置：
+ 如果产品提供商请求立即访问，他们将自动获得临时权限，访问持续时间随即开始计时。
+ 如果产品提供商请求所有者（初始接收者）发布，则您必须在访问持续时间开始之前返回该请求，以显式共享临时账户访问权限。当产品提供商需要您输入其他信息（例如资源选择或配置详细信息）才能完成所需任务时，其通常会使用此选项。

# 发起临时委派请求
<a name="temporary-delegation-initiate-request"></a>

您只能从受支持的 Amazon 或 AWS 合作伙伴产品发起临时委派请求。在支持临时委派的工作流程中，系统将提示您授予产品提供商临时的有限权限，以在您的账户中配置所需的 AWS 资源。这种自动化方法无需您手动配置这些资源，从而提供了更加简化的体验。

授予访问权限之前，您可以查看委派请求的详细信息，例如产品提供商所需的特定 IAM 角色、策略和 AWS 服务。如果您有足够的权限，则可以自行批准请求，也可以将请求转发给您的账户管理员进行批准。所有产品提供商的访问权限均有时间限制，可以根据需要进行监控和撤销。

**发起临时委派请求**

1. 前往需要与您的 AWS 账户集成的、Amazon 或 AWS 合作伙伴提供的受支持产品的控制台。

1. 选择*使用 IAM 临时委派进行部署*。请注意，选项名称可能因支持的产品而有所不同。有关详细信息，请参阅产品提供商的文档。
**注意**  
如果您尚未登录 AWS 管理控制台，会打开一个指向 AWS 登录页面的新窗口。我们建议您在从产品控制台发起临时委派请求之前登录您的 AWS 账户。有关如何根据用户类型和要访问的 AWS 资源进行登录的更多信息，请参阅 [AWS 登录用户指南](docs---aws.amazon.com.rproxy.goskope.comsignin/latest/userguide/what-is-sign-in.html)。

1. 查看请求详情以确认产品提供商的产品名称和 AWS 账户。您还可以查看产品提供商代表您执行操作时将使用的 AWS 身份。

1. 查看*访问权限详细信息*，了解批准此请求后将临时委派的权限。
   + *权限摘要*部分提供由 AI 生成的高级概述，可帮助您了解可以访问哪些类别的 AWS 服务以及可以在每项服务中执行哪些类型的操作。
   + 选择*查看 JSON* 以查看产品提供商需要在您的 AWS 账户中部署的特定权限，包括访问范围和资源限制。
   + 如果产品提供商在临时委派请求中创建 IAM 角色，则必须为该角色附加权限边界。这些 IAM 角色拥有在请求的访问持续时间到期后继续允许访问资源和操作的权限。选择*查看详细信息*以查看权限边界，该边界定义角色可以拥有的最大权限。产品提供商将在创建过程中对角色应用其他策略，以定义其实际权限。这些策略可能看起来比权限边界更狭窄或更广泛，具体取决于产品提供商如何定义这些策略。但是，权限边界可以保证，无论角色附加哪些策略，该角色的有效权限绝不会超过您在请求批准期间看到的权限。有关更多信息，请参阅[权限边界](access_policies_boundaries.md)。

1. 查看权限模拟结果。权限模拟功能会根据请求中包含的权限自动评估您身份的权限。根据此分析，将显示一条建议，指示是使用您的当前身份批准请求，还是将请求转发给管理员。有关详细信息，请参阅[权限模拟测试版功能](#temporary-delegation-permission-simulation)。

1. 在对话框中，选择您希望如何继续。
   + 当您的身份具有足够的权限允许产品提供商代表您执行载入程序时，请选择*允许访问*。选择此选项后，产品提供商的访问持续时间将在您提供访问权限后开始。
   + 如果您的身份没有足够的权限允许产品提供商代表您执行载入程序，请选择*请求批准*。然后，选择*创建审批请求*。选择此选项后，将创建一个临时委派请求链接，您可以与账户管理员共享该链接。您的管理员可以访问 AWS 管理控制台或使用访问链接审查临时委派请求，以批准请求并与请求者共享临时访问权限。

**注意**  
授予产品提供商访问权限需要两个操作：接受委派请求（`AcceptDelegationRequest`）和发放交换令牌（`SendDelegatedToken`）。当您批准请求后，AWS 管理控制台会自动执行这两个步骤。如果您使用 AWS CLI 或 API，则必须分别执行这两个步骤。

## 权限模拟功能（测试版）
<a name="temporary-delegation-permission-simulation"></a>

收到临时委派请求时，您可以自行批准该请求，也可以将其转发给您的账户管理员进行批准。只有当您拥有临时委派请求中所包含服务和操作的权限时，您才能将权限委派给产品提供商。如果您无权访问所请求的服务和操作，那么即使请求中包含这些权限，产品提供商也无法获得这些权限。

例如，临时委派请求要求能够创建 Amazon S3 存储桶、启动和停止 Amazon EC2 中的实例以及代入 IAM 角色。批准该请求的身份可以启动和停止 Amazon EC2 中的实例，并代入 IAM 角色，但没有创建 Amazon S3 存储桶的权限。该身份批准请求时，即使临时委派请求中包含这些权限，产品提供商也无法创建 Amazon S3 存储桶。

由于您只能委派自己已经拥有的权限，因此在批准之前评估自己是否拥有所请求的权限至关重要。权限模拟测试版功能可将您的权限与请求中包含的权限进行比较，从而帮助进行此评估。评测表明您是可以使用当前身份批准请求，还是需要将其转发给管理员。如果分析无法验证您是否拥有足够的权限，请将该请求转发给管理员进行审查。此评测基于模拟权限分析，可能与您的真实 AWS 环境有所不同，因此在继续之前请仔细检查请求的权限。

## 后续步骤
<a name="temporary-delegation-next-steps"></a>

发起临时委派请求后，您可以在请求的整个生命周期中对其进行管理和监控。以下程序可帮助您跟踪、批准和控制临时访问权限：
+ [审查临时委派请求](temporary-delegation-review-requests.md)：监控您的访问请求的状态，并查看有关批准或拒绝临时委派请求的请求详细信息。
+ [撤销临时委派访问权限](temporary-delegation-revoke-access.md)：在活动临时委派会话自然过期之前立即终止这些会话。

# 审查临时委派请求
<a name="temporary-delegation-review-requests"></a>

发起临时委派请求后，您可以在 IAM 控制台中监控、批准和拒绝请求。临时委派请求页面提供所有请求的集中视图，包括待批准、已完成或已拒绝的请求。作为管理员，您可以审查这些请求以授予产品提供商访问 AWS 资源的权限，也可以根据组织的安全策略、业务要求或合规性标准拒绝这些请求。这种可见性可帮助您跟踪产品提供商访问权限的生命周期，并保持对临时权限的监督。

**注意**  
您必须拥有 iam:AcceptDelegationRequest 权限才能批准临时委派请求。

**批准临时委派请求**

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

1. 在左侧导航窗格中，选择*临时委派请求*。

1. 主页面将显示临时委派请求列表，包含以下信息：
   + *请求 ID*：请求的唯一标识符
   + *状态*：当前状态（待处理、已批准、已拒绝、已共享、已过期）
   + *请求者*：与请求关联的产品提供商
   + *发起者*：向产品提供商发起请求的账户中的 IAM 主体
   + *请求创建时间*：提交请求的时间
   + *请求过期时间*：请求过期或即将过期的时间

1. （可选）使用筛选选项按状态查看请求：
   + *所有请求*：查看所有请求，无论状态如何
   + *待处理*：查看等待管理员批准的请求
   + *已批准*：查看已批准的请求
   + *已共享*：查看已共享访问权限的请求
   + *已拒绝*：查看已拒绝的请求及拒绝原因

1. 要查看有关特定请求的详细信息或查看待批准的请求，请选择请求 ID。

1. 查看详细的请求信息：
   + 产品提供商信息
   + 请求原因和理由
   + 请求持续时间
   + 请求 AWS 权限

1. 如果您是审查待处理请求的管理员，请选择以下选项之一：
   + 要批准请求，请选择*批准*。在批准对话框中，您可以查看权限模拟的结果。有关更多信息，请参阅[权限模拟测试版功能](temporary-delegation-initiate-request.md#temporary-delegation-permission-simulation)。确认访问持续时间和您的 AWS 身份后，选择*批准*以授予访问权限。如果产品提供商请求立即访问，他们将自动获得临时权限，访问持续时间随即开始计时。否则，请通知发起请求的人员向产品提供商发放访问权限。
   + 要拒绝请求，请选择*拒绝*。
     + 在拒绝对话框中，提供明确的拒绝原因，以帮助请求者了解拒绝其请求的原因。
     + 选择*拒绝*以拒绝访问。

1. 请求列表会自动刷新以显示最新的状态信息。您还可以手动刷新页面以查看状态更新。

# 撤销临时委派访问权限
<a name="temporary-delegation-revoke-access"></a>

尽管产品提供商访问会话设计为经过批准的持续时间后自动过期，但在某些情况下，您可能需要立即终止访问。当出现安全问题、产品提供商的工作提前完成或业务需求发生变化时，撤销活跃的产品提供商访问权限可提供一种紧急控制机制。请求发起者和管理员都可以撤销访问权限以维护安全性和运营控制。

**撤销临时委派访问权限**

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

1. 在左侧导航窗格中，选择*临时委派请求*。

1. 找到希望撤销的访问会话的请求 ID。

1. 选择*操作*，然后选择*撤销访问权限*。

1. 在对话框中，选择*撤销访问权限*以确认希望立即终止访问会话。

撤销访问权限后，产品提供商将无法再访问您的 AWS 资源。出于审计目的，撤销记录在 AWS CloudTrail 中。

**重要**  
撤销访问权限会立即终止产品提供商访问会话。任何使用该访问权限正在进行的工作或进程都将中断。确保撤销不会中断关键操作。

**注意**  
您无法撤销使用根用户批准的请求的访问权限。AWS 建议您避免使用根用户批准委派请求。改用具有适当权限的 IAM 角色。

## 管理委派请求的权限
<a name="temporary-delegation-managing-permissions"></a>

管理员可以授予 IAM 主体权限，使其能够管理来自产品提供商的委派请求。当您想要将批准权限委派给组织中的特定用户或团队，或者需要控制谁可以对委派请求执行特定操作时，此功能非常有用。

以下 IAM 权限可用于管理委派请求：


| 权限 | 说明 | 
| --- | --- | 
| iam:AssociateDelegationRequest | 将未分配的委派请求与您的 AWS 账户关联 | 
| iam:GetDelegationRequest | 查看委派请求的详细信息 | 
| iam:UpdateDelegationRequest | 将委派请求转发给管理员以供批准 | 
| iam:AcceptDelegationRequest | 批准委派请求 | 
| iam:SendDelegationToken | 批准后将交换令牌发放给产品提供商 | 
| iam:RejectDelegationRequest | 拒绝委派请求 | 
| iam:ListDelegationRequests | 列出您账户的委派请求 | 

**注意**  
默认情况下，发起委派请求的 IAM 主体会自动获得管理该特定请求的权限。他们可以将其与自己的账户关联、查看请求详细信息、拒绝请求、将其转发给管理员进行批准、在管理员批准后将交换令牌发放给产品提供商以及列出其拥有的委派请求。

# 通知
<a name="temporary-delegation-notifications"></a>

IAM 临时委派与 AWS 用户通知服务集成，可帮助您随时了解委派请求状态变更。对于需要审查和批准委派请求的管理员来说，通知服务尤其有用。

使用 AWS 用户通知服务，您可以将警报配置为通过多种渠道发送，包括电子邮件、Amazon Simple Notification Service（SNS）、AWS Chatbot for Slack 或 Microsoft Teams 以及 AWS 控制台移动应用程序。这可确保在正确的时间通知正确的人员，从而能够更快地响应待批准的请求或感知访问权限变化。您还可以根据组织的需求和安全要求，自定义触发通知的事件。

## 可用通知事件
<a name="temporary-delegation-notification-events"></a>

您可订阅以接收以下 IAM 临时委派事件的通知：
+ IAM 临时委派请求已创建
+ IAM 临时委派请求已分配
+ IAM 临时委派请求待批准
+ IAM 临时委派请求已拒绝
+ IAM 临时委派请求已接受
+ IAM 临时委派请求已最终确定
+ IAM 临时委派请求已过期

## 配置 通知
<a name="temporary-delegation-configuring-notifications"></a>

要配置 IAM 临时委派事件的通知，请执行以下操作：

1. 打开 AWS 用户通知服务控制台

1. 创建或更新通知配置

1. 选择 AWS IAM 作为服务

1. 选择希望接收相关通知的委派请求事件

1. 配置发送渠道（电子邮件、AWS Chatbot 等）

有关配置 AWS 用户通知服务（包括设置发送渠道和管理通知规则）的详细说明，请参阅 AWS 用户通知服务文档。

# CloudTrail
<a name="temporary-delegation-cloudtrail"></a>

产品提供商使用临时委派访问权限执行的所有操作都会自动记录在 AWS CloudTrail 中。这为 AWS 账户中的产品提供商活动提供了全面的可见性和可审计性。您可以确定产品提供商采取了哪些操作、操作发生的时间以及执行这些操作的产品提供商账户。

为帮助您区分自己的 IAM 主体采取的操作和具有委派访问权限的产品提供商采取的操作，CloudTrail 事件在 `userIdentity` 元素下包含了一个名为 `invokedByDelegate` 的新字段。此字段包含产品提供商的 AWS 账户 ID，可以轻松筛选和审计所有委派的操作。

## CloudTrail 事件结构
<a name="temporary-delegation-cloudtrail-event-structure"></a>

以下示例显示产品提供商使用临时委派访问权限执行操作的 CloudTrail 事件：

```
{
    "eventVersion": "1.09",		 	 	 
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:Role-Session-Name",
        "arn": "arn:aws:sts::111122223333:assumed-role/Role-Name/Role-Session-Name",
        "accountId": "111122223333",
        "accessKeyId": "[REDACTED:AWS_ACCESS_KEY]",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/Admin",
                "accountId": "111122223333",
                "userName": "Admin"
            },
            "attributes": {
                "creationDate": "2024-09-09T17:50:16Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedByDelegate": {
            "accountId": "444455556666"
        }
    },
    "eventTime": "2024-09-09T17:51:44Z",
    "eventSource": "iam.amazonaws.com",
    "eventName": "GetUserPolicy",
    "awsRegion": "us-east-1",
    "requestParameters": {
        "userName": "ExampleIAMUserName",
        "policyName": "ExamplePolicyName"
    },
    "eventType": "AwsApiCall",
    "recipientAccountId": "111122223333"
}
```

`invokedByDelegate` 字段包含使用委派访问权限执行操作的产品提供商的 AWS 账户 ID。在此示例中，账户 444455556666（产品提供商）在账户 111122223333（客户账户）中执行了一项操作。

# AWS 合作伙伴的 IAM 临时委派
<a name="access_policies-temporary-delegation-partner-guide"></a>

## 概述
<a name="temporary-delegation-partner-overview"></a>

IAM 临时委派使 AWS 客户能够通过交互式指导工作流程将 AWS 合作伙伴产品无缝载入和/或集成到其 AWS 环境中。客户可以授予 AWS 合作伙伴有限的临时访问权限，以配置所需的 AWS 服务，从而减少载入摩擦并加快价值实现时间。

IAM 临时委派使合作伙伴能够：
+ 通过自动资源预置简化客户载入
+ 通过消除手动配置步骤来降低集成复杂性
+ 通过透明、经客户批准的权限建立信任
+ 使用权限边界实现具有长期访问模式的持续运行

## 工作原理
<a name="temporary-delegation-how-it-works"></a>

1. *合作伙伴创建委派请求*：合作伙伴创建请求，指定其需要哪些权限以及持续多长时间

1. *AWS 管理控制台中的客户审查*：客户可以准确查看合作伙伴请求的权限和原因

1. *客户批准*：客户批准请求并发放交换令牌。令牌将发送给此指定 SNS 主题的合作伙伴。

1. *合作伙伴接收临时凭证*：合作伙伴交换临时 AWS 凭证的令牌

1. *合作伙伴配置资源*：合作伙伴使用凭证在客户账户中设置所需的资源

## 合作伙伴资格认证
<a name="temporary-delegation-partner-qualification"></a>

要获得临时委派集成资格，合作伙伴必须满足以下要求：
+ *ISV Accelerate 参与*：您必须加入 [ISV Accelerate（ISVA）](https://aws.amazon.com/partners/programs/isv-accelerate/)计划。
+ *AWS Marketplace 上架商品*：您的产品必须已在 AWS Marketplace 上架，并带有“已在 AWS 上部署”徽章。

## 激活流程
<a name="temporary-delegation-onboarding-process"></a>

完成以下步骤以将临时委派集成到您的产品中：

1. *第 1 步：查看要求*

   查看此文档以了解资格认证要求并填写下面的合作伙伴问卷。

1. *第 2 步：提交您的载入请求*

   发送电子邮件至 aws-iam-partner-onboarding@amazon.com 或联系您的 AWS 代表。请随附填好的合作伙伴问卷，包括下面表格中的所有必填字段。

1. *第 3 步：AWS 验证和审查*

   AWS 会：
   + 验证您是否符合资格认证标准
   + 审查您的策略模板和权限边界
   + 提供您所提交构件的反馈

1. *第 4 步：优化您的策略*

   回复 AWS 反馈，根据需要提交更新的策略模板或权限边界。

1. *步骤 5：完成注册*

   获得批准后，AWS 将：
   + 为您指定的账户启用 API 访问权限
   + 共享您的策略模板和权限边界的 ARN（如果适用）

   载入完成后，您将收到确认信息。然后，您可以从注册的账户访问临时委派 API、CreateDelegationRequest 和 GetDelegatedAccessToken，并开始将委派请求工作流程集成到产品中。

## 合作伙伴问卷
<a name="temporary-delegation-partner-questionnaire"></a>

下表列出合作伙伴载入所需的信息：


| 信息 | 说明 | 必填 | 
| --- | --- | --- | 
| 合作伙伴中心账户 ID | 您在 [AWS 合作伙伴中心](https://partnercentral.awspartner.com/partnercentral2/s/login)注册 AWS 账户的账户 ID。 | 是 | 
| PartnerId | [AWS 合作伙伴中心](https://partnercentral.awspartner.com/partnercentral2/s/login)提供的合作伙伴 ID。 | 否 | 
| AWS Marketplace 产品 ID | [AWS 合作伙伴中心](https://partnercentral.awspartner.com/partnercentral2/s/login)所提供产品的产品 ID。 | 是 | 
| AWS accountIDs | 您要用于调用临时委派 API 的 AWS 账户 ID 列表。此列表应包含您的生产账户和非生产/测试账户。 | 是 | 
| 合作伙伴名称 | 客户查看您的临时委派请求时，此名称会在 AWS 管理控制台中向其显示。 | 是 | 
| 联系电子邮件 | 可用于与您联系集成相关事宜的一个或多个电子邮件地址。 | 是 | 
| 请求者域 | 您的域（例如 www.example.com） | 是 | 
| 集成描述 | 简要描述您希望使用此功能解决的使用案例。您可以包含指向您的文档或其他公开材料的参考链接。 | 是 | 
| 架构图 | 展示您的集成使用案例的架构图。 | 否 | 
| 策略模板 | 您必须为此功能注册至少一个策略模板。策略模板定义您要在客户 AWS 账户中请求的临时权限。有关更多信息，请参阅“策略模板”部分。 | 是 | 
| 策略模板名称 | 要注册的策略模板的名称。 | 是 | 
| 权限边界 | 如果您希望使用临时权限在客户的账户中创建 IAM 角色，则必须向 IAM 注册权限边界。权限边界将附加到您创建的 IAM 角色上，以限制该角色的最大权限。您可以使用选定的 AWS 托管策略作为权限边界，也可以注册新的自定义权限边界（JSON）。有关更多信息，请参阅“权限边界”部分。 | 否 | 
| 权限边界名称 | 权限边界的名称。格式为：arn:aws:iam::partner:policy/permission\$1boundary/<partner\$1domain>/<policy\$1name>\$1<date> 策略名称必须包含创建日期作为后缀。创建权限边界后，该名称将无法更新。如果您使用现有的 AWS 托管策略，请改为提供托管策略 ARN。 | 否 | 
| 权限边界描述 | 权限边界的描述。创建权限边界后，此描述将无法更新。 | 否 | 

# 了解您的集成
<a name="temporary-delegation-understanding-integration"></a>

完成载入流程后，您可以构建与 IAM 临时委派的集成。完整的集成通常涉及三个主要工作类别：

## 1. 用户体验和工作流程设计
<a name="temporary-delegation-user-experience"></a>

在合作伙伴应用程序中构建前端体验，指导客户完成临时委派工作流程。合作伙伴应用程序应该：
+ 提供清晰的载入或配置流程，客户可以在其中授予临时访问权限。明确标注此操作，例如“使用 IAM 临时委派进行部署”。
+ 使用 CreateDelegationRequest API 返回的控制台链接将客户重定向到 AWS 管理控制台以查看和批准委派请求
+ 提供适当的消息，说明正在请求哪些权限以及请求的原因。客户可以在委派请求详细信息页面上看到此消息。
+ 客户在 AWS 中完成批准后，处理其返回您应用程序的流程。

## 2. API 集成
<a name="temporary-delegation-api-integration"></a>

使用 IAM 临时委派 API 发送和管理委派请求。注册 AWS 账户后，您可访问以下 API：
+ *IAM CreateDelegationRequest*：为客户的 AWS 账户创建委派请求。此 API 会返回一个控制台链接，您可以将客户重定向到该链接以审查和批准请求。
+ *AWS STS GetDelegatedAccessToken*：在客户批准您的委派请求后检索临时 AWS 凭证。使用这些凭证在客户的账户中执行操作。

您的集成应处理委派请求的整个生命周期，包括创建请求、监控其状态以及在获得批准后检索临时凭证。

## 3. 资源配置与编排
<a name="temporary-delegation-resource-configuration"></a>

获得临时凭证后，编排必要的工作流程以配置客户 AWS 账户中的资源。这可能包括：
+ 直接调用 AWS 服务 API 创建和配置资源
+ 使用 AWS CloudFormation 模板部署基础设施
+ 创建用于持续访问的 IAM 角色（需要使用权限边界）

您的编排逻辑应具有幂等性，并且可以从容地处理故障，因为客户可能需要重试或修改其委派批准。

# 了解权限
<a name="temporary-delegation-understanding-permissions"></a>

作为功能载入流程的一部分，您需要向 IAM 注册策略，这些策略定义您要在客户 AWS 账户中请求的权限。注册流程为客户提供了更加一致的体验，并有助于避免策略制定中的常见陷阱。

在注册期间，AWS 根据一组验证来评估您的策略。这些验证旨在标准化策略格式和结构，并提供针对已知反模式的基本保护。验证还可以降低权限升级、意外跨账户访问以及广泛访问客户账户中高价值资源的风险。

## 权限类型
<a name="temporary-delegation-permission-types"></a>

AWS 将考虑两类权限：临时权限和长期权限。

### 临时权限
<a name="temporary-delegation-temporary-permissions"></a>

临时权限限制分配给任何临时委派访问会话的权限。临时权限如应用于委派会话的策略模板中所述。这些模板支持您在创建委派请求时提供的参数。这些参数值随后将绑定到会话。临时权限的工作方式与 AWS STS 目前提供的会话策略相同：这些策略限制了底层用户的能力，但不授予任何其他访问权限。有关更多信息，请参阅 AWS STS 文档中的会话策略。

### 长期权限
<a name="temporary-delegation-long-term-permissions"></a>

长期权限限制通过临时访问创建或管理的任何角色的权限。长期权限以 IAM 权限边界的形式实现。作为载入的一部分，您可以向 AWS 提交一个或多个权限边界。获得批准后，AWS 将与您共享一个策略 ARN，供您在策略中引用。

这些边界策略有两个值得注意的特征。首先，它们是不可变的。如果要更新权限，您可以注册新的权限边界。然后，您可以通过发送新的委派请求将新权限边界附加到客户的角色。其次，这些策略并非模板化。由于相同的边界策略是全局共享的，因此无法根据每个客户进行更改。

**重要**  
权限边界的最大大小限制为 6144 个字符。

**注意**  
如果您想更新权限边界或策略模板，请通过 aws-iam-partner-onboarding@amazon.com 与 IAM 联系。注册新的权限边界后，您可以向客户发送委派请求，以更新 IAM 角色并附加新注册的权限边界。有关更多详细信息，请参阅“示例”部分。

## 示例使用案例：数据处理工作负载
<a name="temporary-delegation-example-use-case"></a>

假设产品提供商在客户账户中运行数据处理工作负载。该提供商需要在初始载入期间设置基础设施，还需要持续访问权限才能运行工作负载。

*临时权限（用于初始设置）：*
+ 创建 Amazon EC2 实例、VPC 和安全组
+ 创建用于处理后数据的 Amazon S3 存储桶
+ 创建用于持续运行的 IAM 角色
+ 将权限边界附加到 IAM 角色

*长期权限（用于持续运行、具有权限边界的 IAM 角色）：*
+ 启动和停止 Amazon EC2 实例以运行处理作业
+ 从 Amazon S3 存储桶读取输入数据
+ 将处理的结果写入 Amazon S3 存储桶

临时权限仅在载入期间使用一次，用于配置基础设施。在此过程中创建的 IAM 角色具有权限边界，其最大权限仅限于持续工作负载管理所需的操作。这样便可确保即使修改了角色的策略，也不会超过边界中定义的权限。

# 策略评估指南
<a name="temporary-delegation-policy-evaluation-guidelines"></a>

AWS 将根据一组指南评估您提交的策略。相同的评估指南适用于策略模板和权限边界，但会酌情注明细微的差异。

出于评估目的，我们将服务分为不同的组。最重要的区别在于管理访问权限、凭证和密钥安全敏感型服务。授予对这些服务访问权限的策略需要严格限定于正在进行的工作。安全敏感型服务包括以下服务：AWS Identity and Access Management（IAM）、AWS Key Management Service（KMS）、AWS Resource Access Manager（RAM）、AWS IAM Identity Center、AWS Organizations 和 AWS Secrets Manager。

第二个区别是可以跨账户边界访问数据的服务。这些服务的策略必须包括保护措施，以防止意外的跨账户访问。

## 通用验证
<a name="temporary-delegation-common-validations"></a>

所有策略语句必须遵循以下指南：
+ 所有语句都必须依次包含 Effect、Action（或 NotAction）、Resource 和 Condition 字段
+ 单个语句中的所有操作必须按字母顺序列出
+ 策略中包含的所有 ARN 都必须遵循相关服务公共文档中定义的语法
+ NotAction 字段只能在 Deny 语句中使用
+ Allow 语句中的 Action 必须包含服务代码。不允许使用通用通配符 ("\$1")

## 安全敏感型服务限制
<a name="temporary-delegation-security-sensitive-restrictions"></a>

以下限制适用于上述安全敏感型服务：
+ Allow 语句中的 Action 必须比 [service] 更具体：\$1
+ 临时访问策略模板的 Allow 语句中的 Action 不得包含通配符
+ iam:PassRole 或 iam:CreateServiceLinkedRole 等敏感操作需要额外的范围限制，例如特定资源或条件检查。这些操作包括：
  + IAM 角色传递
  + IAM 角色修改操作
  + IAM 策略修改操作
  + AWS KMS 写入或加密操作
  + AWS RAM 写入或共享操作
  + 用于检索或修改密钥或者修改资源策略的 AWS Secrets Manager 操作
+ 可能使用通配符资源的其他操作，例如 iam:ListUsers 或 iam:GetPolicy
+ 管理凭证的操作（例如 iam:CreateAccessKey）将被阻止

## IAM 特定限制
<a name="temporary-delegation-iam-specific-restrictions"></a>

对于 IAM：
+ 只允许对 IAM 角色和策略执行有限的写入操作。您无法请求对用户、组和证书等其他 IAM 资源的权限。
+ 策略附件或内联策略管理操作仅限于具有权限边界的角色。权限边界必须由合作伙伴提供，或者位于允许的 AWS 托管策略列表中。如果 AWS 托管策略未授予高权限或管理权限，则可能会允许这些策略。例如，针对特定工作职能的 AWS 托管策略或 SecurityAudit 策略可能可接受。AWS 将在载入过程中根据具体情况审查每个 AWS 托管策略。
+ 只允许对具有以下合作伙伴特定路径的策略进行策略管理：arn:aws:iam::@\$1AccountId\$1:policy/partner\$1domain.com/[feature]\$1
+ 标签只能在资源创建期间应用，并且仅用于角色和策略
+ iam:PassRole 检查必须匹配特定名称或路径前缀

## AWS STS 特定限制
<a name="temporary-delegation-sts-specific-restrictions"></a>

对于 AWS STS：
+ sts:AssumeRole 必须限定为特定角色 ARN、角色 ARN 前缀，或仅限于一组账户或组织 ID /组织单位

## IAM Identity Center 限制
<a name="temporary-delegation-identity-center-restrictions"></a>

对于 AWS IAM Identity Center，将阻止以下操作：
+ 所有涉及权限管理的操作（例如，sso:AttachCustomerManagedPolicyReferenceToPermissionSet）
+ AWS Identity Store 的用户、组和成员资格修改
+ 标签管理

## AWS Organizations 限制
<a name="temporary-delegation-organizations-restrictions"></a>

对于 AWS Organizations，只允许读取操作。

## 其他服务特定验证
<a name="temporary-delegation-additional-service-validations"></a>
+ 获取密钥或凭证的操作（例如 glue:GetConnection 或 redshift:GetClusterCredentials）必须包含匹配完整 ARN、ARN 前缀或标签的条件
+ 对于 Amazon Redshift：redshift:GetClusterCredentials 只允许对特定数据库名称使用，而 redshift:GetClusterCredentialsWithIAM 只允许对特定工作组名称使用

**注意**  
管理账户中的 IAM 资源时，我们建议使用包含您名称的路径，例如 arn:aws:iam::111122223333:role/partner.com/rolename。这将有助于区分与您的集成关联的资源，让客户更轻松地进行发现、审计和分析。

## 跨账户访问要求
<a name="temporary-delegation-cross-account-requirements"></a>

可能允许跨账户访问的语句必须至少包含以下各项之一：
+ 指定资源账户或组织的条件（例如，与一个或多个预期值匹配的 aws:ResourceOrgId）
+ 包含特定账户的资源字段（例如，arn:aws:sqs:\$1:111122223333:\$1）
+ 包含非通配符账户和完整资源名称（例如，arn:aws:s3:::full-bucket-name）的资源字段

**注意**  
跨账户访问是一项敏感功能，需要明确的业务理由。AWS 将在载入过程中仔细审查是否需要跨账户访问。

# 策略模板
<a name="temporary-delegation-policy-templates"></a>

策略模板是一种新的 IAM 构造，旨在定义合作伙伴在客户账户中请求的临时权限。与常规 IAM 策略一样，其使用包含 Effect、Action、Resource 和 Condition 元素的语句来定义权限。关键区别在于，策略模板包含的参数（例如 @\$1bucketName\$1）在您创建委派请求时会替换为实际值。

## 策略模板工作原理
<a name="temporary-delegation-how-policy-templates-work"></a>

作为载入过程的一部分，您可以向 AWS 注册策略模板。AWS 为每个模板分配一个唯一的 ARN，您在创建委派请求时会引用该 ARN。

创建委派请求时，您将指定：
+ 策略模板 ARN
+ 要替换到模板中的参数值

AWS 将模板与您的参数值相结合，生成标准 IAM 策略。客户在批准您的委派请求时会审查这一最终呈现的策略，从而确切地了解将授予哪些权限。

**注意**  
最终呈现策略的最大大小限制为 2048 个字符。

以下是一个简单的示例，展示模板替换的工作原理。

策略模板：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::@{bucketName}/*"
        }
    ]
}
```

委派请求中提供的参数：

```
{
    "Name": "bucketName",
    "Values": ["customer-data-bucket"],
    "Type": "String"
}
```

最终呈现的策略（客户看到的内容）：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::customer-data-bucket/*"
        }
    ]
}
```

## 模板语法
<a name="temporary-delegation-template-syntax"></a>

策略模板使用两项关键功能来提供灵活性：参数替换和条件语句。参数替换允许您在模板中定义占位符，这些占位符在创建委派请求时会替换为实际值。条件语句允许您根据参数值包含或排除整个策略语句。

### 参数替换和类型
<a name="temporary-delegation-parameter-substitution"></a>

使用 @\$1parameterName\$1 语法在策略模板中定义参数。创建委派请求时，您必须指定每个参数的类型。

#### 字符串
<a name="temporary-delegation-string-type"></a>

直接替换到模板中的单个值。

模板：

```
"Resource": "arn:aws:s3:::@{bucketName}/*"
```

参数：

```
{
    "Name": "bucketName",
    "Values": ["my-bucket"],
    "Type": "String"
}
```

呈现的结果：

```
"Resource": "arn:aws:s3:::my-bucket/*"
```

#### StringList
<a name="temporary-delegation-stringlist-type"></a>

生成多个资源条目的多个值。在资源 ARN 中使用 StringList 参数时，它会扩展为针对每个值创建单独的资源条目。

模板：

```
"Resource": "arn:aws:s3:::@{bucketNames}/*"
```

参数：

```
{
    "Name": "bucketNames",
    "Values": ["bucket-1", "bucket-2"],
    "Type": "StringList"
}
```

呈现的结果：

```
"Resource": [
    "arn:aws:s3:::bucket-1/*",
    "arn:aws:s3:::bucket-2/*"
]
```

#### 交叉乘积行为
<a name="temporary-delegation-cross-product-behavior"></a>

在同一个资源 ARN 中使用多个参数时，StringList 参数会创建所有组合的交叉乘积。

模板：

```
"Resource": "arn:aws:s3:::@{bucketNames}/@{prefix}/*"
```

参数：

```
[
    {
        "Name": "bucketNames",
        "Values": ["bucket-1", "bucket-2"],
        "Type": "StringList"
    },
    {
        "Name": "prefix",
        "Values": ["data"],
        "Type": "String"
    }
]
```

呈现的结果：

```
"Resource": [
    "arn:aws:s3:::bucket-1/data/*",
    "arn:aws:s3:::bucket-2/data/*"
]
```

### 条件语句
<a name="temporary-delegation-conditional-statements"></a>

使用 @Enabled 指令可根据参数值有条件地包含或排除整个语句。

语法：
+ @Enabled: "parameterName"：参数值为“True”时包含语句
+ @Enabled: "\$1parameterName"：参数值不为“True”（否定）时包含语句

模板：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["s3:GetObject"],
            "Resource": "*"
        },
        {
            "@Enabled": "ENABLE_S3_WRITE",
            "Effect": "Allow",
            "Action": ["s3:PutObject"],
            "Resource": "arn:aws:s3:::@{bucketName}/*"
        }
    ]
}
```

参数（ENABLE\$1S3\$1WRITE 为“True”时）：

```
[
    {
        "Name": "bucketName",
        "Values": ["my-bucket"],
        "Type": "String"
    },
    {
        "Name": "ENABLE_S3_WRITE",
        "Values": ["True"],
        "Type": "String"
    }
]
```

呈现的结果：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["s3:GetObject"],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": ["s3:PutObject"],
            "Resource": "arn:aws:s3:::my-bucket/*"
        }
    ]
}
```

参数（ENABLE\$1S3\$1WRITE 为“False”时）：

```
[
    {
        "Name": "bucketName",
        "Values": ["my-bucket"],
        "Type": "String"
    },
    {
        "Name": "ENABLE_S3_WRITE",
        "Values": ["False"],
        "Type": "String"
    }
]
```

呈现的结果：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": ["s3:GetObject"],
            "Resource": "*"
        }
    ]
}
```

ENABLE\$1S3\$1WRITE 设置为“True”时，将包含条件语句。设置为“False”时，将从呈现的策略中排除该语句。

## 其他示例
<a name="temporary-delegation-additional-examples"></a>

以下示例展示在临时委派中使用策略模板的常见模式。其重点介绍如何创建具有权限边界的 IAM 角色以实现长期访问，并展示将权限范围限定为特定资源的不同策略。这些示例说明如何使用 ARN 前缀、资源标记和权限边界更新等技术，在灵活性与安全性之间取得平衡。

### 示例 1：授予对特定资源的长期访问权限
<a name="temporary-delegation-example-1"></a>

以下权限边界作为“partner.com”的“SQSAccessorBoundary”提交：

```
{
    "Effect": "Allow",
    "Action": [
        "sqs:DeleteMessage",
        "sqs:ReceiveMessage",
        "sqs:SendMessage"
    ],
    "Resource": "arn:aws:sqs:*:*:*",
    "Condition": {
        "StringEquals": {
            "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
    }
}
```

**注意**  
这包括一个同账户条件，以避免向其他账户中具有开放资源策略的队列授予访问权限。由于该边界在所有客户之间共享且无法进行模板化，因此不能直接引用客户的账户 ID。

由于这是此策略的第一个版本，其 ARN 为 arn:aws:iam::partner:policy/permissions-boundary/partner.com/SQSAccessorBoundary\$12025\$101\$115

已提交以下策略模板用于获取临时访问权限：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sqs:ListQueues"
            ],
            "Resource": "arn:aws:sqs:*:*:*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:PutRolePermissionsBoundary",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::@{AccountId}:role/partner.com/SQSAccessor",
            "Condition": {
                "StringEquals": {
                    "iam:PermissionsBoundary": "arn:aws:iam::partner:policy/permissions-boundary/partner.com/SQSAccessorBoundary_2025_01_15"
                }
            }
        }
    ]
}
```

### 示例 2：使用 ARN 前缀
<a name="temporary-delegation-example-2"></a>

权限边界可以指定资源 ARN 前缀来限制访问权限：

```
"Resource": "arn:aws:sqs:*:@{AccountId}:PartnerPrefix*"
```

这可将访问仅限于带有该前缀的资源，从而缩小可访问资源的范围。

### 示例 3：使用标签进行资源访问控制
<a name="temporary-delegation-example-3"></a>

您可以在临时委派的访问期间为资源添加标签，并依靠这些标签进行长期访问控制。

允许访问带标签资源的权限边界：

```
{
    "Effect": "Allow",
    "Action": [
        "sqs:DeleteMessage",
        "sqs:ReceiveMessage",
        "sqs:SendMessage"
    ],
    "Resource": "arn:aws:sqs:*:*:*",
    "Condition": {
        "Null": {
            "aws:ResourceTag/ManagedByPartnerDotCom": "false"
        },
        "StringEquals": {
            "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
    }
}
```

在创建新队列时为其添加标签的策略模板：

```
{
    "Effect": "Allow",
    "Action": [
        "sqs:CreateQueue",
        "sqs:TagQueue"
    ],
    "Resource": "arn:aws:sqs:*:*:*",
    "Condition": {
        "Null": {
            "aws:RequestTag/ManagedByPartnerDotCom": "false"
        }
    }
}
```

为既有队列添加标签并创建角色的策略模板：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sqs:TagQueue"
            ],
            "Resource": "arn:aws:sqs:*:@{AccountId}:@{QueueName}",
            "Condition": {
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": "ManagedByPartnerDotCom"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:PutRolePermissionsBoundary",
                "iam:PutRolePolicy"
            ],
            "Resource": "arn:aws:iam::@{AccountId}:role/partner.com/SQSAccessor",
            "Condition": {
                "StringEquals": {
                    "iam:PermissionsBoundary": "arn:aws:iam::partner:policy/permissions-boundary/partner.com/SQSAccessorBoundary_2025_01_15"
                }
            }
        }
    ]
}
```

这种方法允许客户显式确认可以长期访问哪些特定资源。

### 示例 4：更新权限边界
<a name="temporary-delegation-example-4"></a>

要更新权限边界，请注册带有新日期后缀的新版本，并请求替换该版本的权限。

具有额外权限的更新权限边界：

```
{
    "Effect": "Allow",
    "Action": [
        "sqs:DeleteMessage",
        "sqs:PurgeQueue",
        "sqs:ReceiveMessage",
        "sqs:SendMessage"
    ],
    "Resource": "arn:aws:sqs:*:*:*",
    "Condition": {
        "StringEquals": {
            "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
    }
}
```

作为第二个版本，此策略的 ARN 为：arn:aws:iam::partner:policy/permissions-boundary/partner.com/SQSAccessorBoundary\$12025\$101\$120

更新现有角色权限边界的策略模板：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:PutRolePermissionsBoundary"
            ],
            "Resource": "arn:aws:iam::@{AccountId}:role/partner.com/SQSAccessor",
            "Condition": {
                "StringEquals": {
                    "iam:PermissionsBoundary": "arn:aws:iam::partner:policy/permissions-boundary/partner.com/SQSAccessorBoundary_2025_01_20"
                }
            }
        }
    ]
}
```

客户必须批准此委派请求，才能更新现有角色的权限边界。

# 构建您的集成
<a name="temporary-delegation-building-integration"></a>

## 了解请求生命周期
<a name="temporary-delegation-request-lifecycle"></a>

在构建集成之前，了解委派请求从创建到完成的过程非常重要。

### 请求状态
<a name="temporary-delegation-request-states"></a>

委派请求会经历以下状态：


| 州 | 说明 | 
| --- | --- | 
| 未分配 | 请求已创建，但尚未与客户账户和 IAM 主体关联。该请求可能是在未指定目标账户的情况下创建的，也可能已指定目标账户 ID 但账户所有者尚未认领。 | 
| 已分配 | 与客户账户关联且正在等待审查的请求 | 
| 待批准 | 客户已将请求转发给管理员进行批准 | 
| 已接受 | 请求已获得客户批准，但交换令牌尚未发放 | 
| 已最终确定 | 交换令牌已发放给产品提供商。委派期限（交换令牌有效期）从请求达到“已最终确定”状态时开始 | 
| 已拒绝 | 请求被客户拒绝 | 
| 已过期 | 由于不活动或超时，请求已过期 | 

### 状态变换
<a name="temporary-delegation-state-transitions"></a>

*正常流程（批准路径）*
+ 未分配 → 已分配：客户将请求与其账户关联
+ “已分配 → 已接受”或“已分配 → 待批准”：客户直接批准请求或转发给管理员进行审查
+ 待批准 → 已接受：管理员批准该请求
+ 已接受 → 已最终确定：客户发放交换令牌

*拒绝路径*
+ 已分配 → 已拒绝：客户拒绝该请求
+ 待批准 → 已拒绝：管理员拒绝该请求
+ 已接受 → 已拒绝：客户在发放令牌之前撤销批准

*到期路径*

如果在指定时间范围内未采取任何行动，则请求将自动过期：
+ 未分配 → 已过期（1 天）
+ 已分配 → 已过期（7 天）
+ 待批准 → 已过期（7 天）
+ 已接受 → 已过期（7 天）
+ 已拒绝 → 已过期（7 天）
+ 已最终确定 → 已过期（7 天）

*终端状态*

以下状态是终止状态（不再有进一步的转换）：
+ 已最终确定：交换令牌已发送
+ 已拒绝：请求被拒绝
+ 已过期：请求超时或委派期限结束

保留期过后，过期的请求最终会从系统中删除。

### 管理应用程序中的委派请求状态
<a name="temporary-delegation-managing-states"></a>

作为合作伙伴，您必须在系统中跟踪委派请求状态，并将其呈现给客户。当您收到有关状态变更的 SNS 通知时，请将这些更新存储在后端，并在面向客户的 UI 中显示。请特别注意“待批准”状态：当客户将请求转发给管理员进行审查时，AWS 会向您发送待批准通知。在等待管理员操作期间，请求可以保持此状态长达 7 天。在此期间，在您的应用程序中向客户展示其请求正在等待管理员的批准。考虑提供指向 AWS 管理控制台的深层链接，客户可以在其中查看请求状态或与其管理员跟进沟通。正确处理后端的状态机并在每个阶段向客户呈现正确的状态信息对于获得良好的集成体验非常重要。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/images/delegation-states.png)


## 配置 通知
<a name="temporary-delegation-configuring-notifications"></a>

IAM 使用 Amazon Simple Notification Service（SNS）向您传达委派请求状态的更改。创建委派请求时，必须提供注册 AWS 账户中的 SNS 主题 ARN。IAM 将向该主题发布重要事件的消息，包括客户批准或拒绝请求时以及交换令牌准备就绪时。

**注意**  
SNS 主题不能位于可选择加入的 AWS 区域。您的 SNS 主题必须位于默认启用的 AWS 区域中。有关选择加入区域的列表，请参阅 AWS 账户管理指南中的“管理 AWS 区域”。

### SNS 主题配置
<a name="temporary-delegation-sns-topic-configuration"></a>

要接收委派请求通知，您必须将 SNS 主题配置为授予向其发布消息的 IAM 权限。将以下策略语句添加到 SNS 主题策略：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowIAMServiceToPublish",
            "Effect": "Allow",
            "Principal": {
                "Service": "iam.amazonaws.com"
            },
            "Action": "SNS:Publish",
            "Resource": "arn:aws:sns:REGION:ACCOUNT-ID:TOPIC-NAME"
        }
    ]
}
```

**重要**  
SNS 主题必须位于您的其中一个注册 AWS 账户中。IAM 不接受来自其他账户的 SNS 主题。如果主题策略配置不正确，您将不会收到状态更改通知或交换令牌。

### 通知类型
<a name="temporary-delegation-notification-types"></a>

IAM 发送两种类型的通知：

*StateChange 通知*

当委派请求转换到新状态（已分配、待批准、已接受、已最终确定、已拒绝、已过期）时发送。

*ExchangeToken 通知*

当客户发放委派令牌时发送（状态为“已最终确定”）。此通知包含您获取凭证所需的交换令牌。

### 通知系统
<a name="temporary-delegation-notification-states"></a>

您将收到以下委派请求状态的通知：


| 州 | 通知类型 | 说明 | 
| --- | --- | --- | 
| 已分配 | StateChange | 请求已与客户账户关联 | 
| 待批准 | StateChange | 客户已将请求转发给管理员进行批准 | 
| 已接受 | StateChange | 客户已批准请求，但尚未发放令牌 | 
| 已最终确定 | StateChange | 客户已发放交换令牌 | 
| 已最终确定 | ExchangeToken | 此通知包含交换令牌 | 
| REJECTED | StateChange | 客户已拒绝该请求 | 
| EXPIRED | StateChange | 请求在完成前已过期 | 

### 通知消息格式
<a name="temporary-delegation-notification-message-format"></a>

IAM 发布标准 SNS 通知。委派请求信息以 JSON 字符串的形式包含在“消息”字段中。

*常用字段（所有通知）*


| 字段 | Type | 说明 | 
| --- | --- | --- | 
| 类型 | 字符串 | “StateChange”或“ExchangeToken” | 
| RequestId | 字符串 | IAM 委派请求 ID | 
| RequestorWorkflowId | 字符串 | 您在创建请求时提供的工作流程 ID | 
| 州 | 字符串 | 请求的当前状态 | 
| OwnerAccountId | 字符串 | 客户的 AWS 账户 ID | 
| UpdatedAt | 字符串 | 状态更改时的时间戳（ISO 8601 格式） | 

*其他字段（仅限 ExchangeToken 通知）*


| 字段 | Type | 说明 | 
| --- | --- | --- | 
| ExchangeToken | 字符串 | 使用 AWS STS GetDelegatedAccessToken API 交换凭证的令牌 | 
| ExpiresAt | 字符串 | 委派访问权限过期时间（ISO 8601 格式） | 

### 示例通知
<a name="temporary-delegation-example-notifications"></a>

*StateChange 通知*

```
{
  "Type": "Notification",
  "MessageId": "61ee8ad4-6eec-56b5-8f3d-eba57556aa13",
  "TopicArn": "arn:aws:sns:us-east-1:123456789012:partner-notifications",
  "Message": "{\"RequestorWorkflowId\":\"workflow-12345\",\"Type\":\"StateChange\",\"RequestId\":\"dr-abc123\",\"State\":\"ACCEPTED\",\"OwnerAccountId\":\"111122223333\",\"UpdatedAt\":\"2025-01-15T10:30:00.123Z\"}",
  "Timestamp": "2025-01-15T10:30:00.456Z",
  "SignatureVersion": "1",
  "Signature": "...",
  "SigningCertURL": "...",
  "UnsubscribeURL": "..."
}
```

*ExchangeToken 通知*

```
{
  "Type": "Notification",
  "MessageId": "e44e5435-c72c-5333-aba3-354406782f5b",
  "TopicArn": "arn:aws:sns:us-east-1:123456789012:partner-notifications",
  "Message": "{\"RequestId\":\"dr-abc123\",\"RequestorWorkflowId\":\"workflow-12345\",\"State\":\"FINALIZED\",\"OwnerAccountId\":\"111122223333\",\"ExchangeToken\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\"ExpiresAt\":\"2025-01-15T18:30:00.123Z\",\"UpdatedAt\":\"2025-01-15T10:30:00.456Z\",\"Type\":\"ExchangeToken\"}",
  "Timestamp": "2025-01-15T10:30:00.789Z",
  "SignatureVersion": "1",
  "Signature": "...",
  "SigningCertURL": "...",
  "UnsubscribeURL": "..."
}
```

## 交换令牌
<a name="temporary-delegation-exchange-tokens"></a>

当客户接受并最终确定委派请求时，IAM 会发布交换令牌或交易令牌。产品提供商使用此交换或交易令牌调用 AWS AWS STS GetDelegatedAccessToken API 以获取具有客户批准权限的临时 AWS 凭证。交换令牌本身不授予对 AWS 资源的访问权限；必须通过 AWS STS 将其交换为实际凭证。

交换令牌只能由创建委派请求的产品提供商账户兑换。请求账户嵌入在令牌中，确保只有授权的产品提供商才能获得访问客户账户的凭证。

### 访问持续时间
<a name="temporary-delegation-access-duration"></a>

委派期限从客户发放交换令牌时开始，而不是从产品提供商兑换令牌时开始。客户发放令牌后：
+ 产品提供商通过 SNS 通知接收令牌
+ 其可以立即用该令牌交换凭证
+ 凭证到期时间：发放时间 \$1 批准的持续时间
+ 如果需要，产品提供商可以在令牌到期前多次交换该令牌以获取新的凭证

### 多次兑换
<a name="temporary-delegation-multiple-redemptions"></a>

产品提供商可以在有效期内多次交换令牌以获得新的凭证。但是，根据您发放令牌的时间，从同一个交换令牌获得的所有凭证会同时过期。

示例：如果您批准了 2 小时的委派请求并在上午 10:00 发放令牌：


| 令牌发放时间 | 令牌交换时间 | 凭证到期时间 | 可用时间 | 
| --- | --- | --- | --- | 
| 10:00 am | 10:00 am | 12:00 pm | 2 小时 | 
| 10:00 am | 10:20 am | 12:00 pm | 1 小时 40 分钟 | 
| 10:00 am | 11:40 am | 12:00 pm | 20 分钟 | 
| 10:00 am | 12:10 pm | 失效（令牌已过期） | 0 分钟 | 

如表中所示，在有效期内较晚的时间交换令牌会导致产品提供商的可用时间缩短。