

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

# 的身份和访问管理 AWS Key Management Service
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) 可帮助您安全地控制对 AWS 资源的访问权限。管理员控制谁可以*进行身份验证*（登录）和*授权*（拥有权限）使用 AWS KMS 资源。有关更多信息，请参阅 [将 IAM 策略与配合使用 AWS KMS](iam-policies.md)。

[密钥策略](key-policies.md)是控制中对 KMS 密钥的访问的主要机制 AWS KMS。每个 KMS 密钥都必须有一个密钥策略。您可以使用 [IAM policy](iam-policies.md) 和[授权](grants.md)以及密钥政策来控制对您的 KMS 密钥的访问。有关更多信息，请参阅 [KMS 密钥访问权限和权限](control-access.md)。

如果您使用的是亚马逊虚拟私有云（亚马逊 VPC），则可以[创建一个接口 VPC 终端节点](kms-vpc-endpoint.md)来 AWS KMS 提供支持[AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/)。您还可以使用 VPC 终端节点策略来确定哪些委托人可以访问您的 AWS KMS 终端节点、他们可以进行哪些 API 调用以及他们可以访问哪个 KMS 密钥。

**Topics**
+ [AWS 的托管策略 AWS Key Management Service](security-iam-awsmanpol.md)
+ [将服务相关角色用于 AWS KMS](using-service-linked-roles.md)

# AWS 的托管策略 AWS Key Management Service
<a name="security-iam-awsmanpol"></a>

 AWS 托管策略是由创建和管理的独立策略 AWS。 AWS 托管策略旨在为许多常见用例提供权限，以便您可以开始为用户、组和角色分配权限。

请记住， AWS 托管策略可能不会为您的特定用例授予最低权限权限，因为它们可供所有 AWS 客户使用。我们建议通过定义特定于使用案例的[客户管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)来进一步减少权限。

您无法更改 AWS 托管策略中定义的权限。如果 AWS 更新 AWS 托管策略中定义的权限，则更新会影响该策略所关联的所有委托人身份（用户、组和角色）。 AWS 最有可能在启动新的 API 或现有服务可以使用新 AWS 服务 的 API 操作时更新 AWS 托管策略。

有关更多信息，请参阅《IAM 用户指南》**中的 [AWS 托管式策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

## AWS 托管策略： AWSKeyManagementServicePowerUser
<a name="security-iam-awsmanpol-AWSKeyManagementServicePowerUser"></a>

您可以将 `AWSKeyManagementServicePowerUser` 策略附加到 IAM 身份。

您可以使用 `AWSKeyManagementServicePowerUser` 托管式策略为您账户中的 IAM 主体授予高级用户的权限。高级用户可以创建 KMS 密钥、使用和管理他们创建的 KMS 密钥，以及查看所有 KMS 密钥和 IAM 身份。具有 `AWSKeyManagementServicePowerUser` 托管式策略的主体还可以从其他来源获取权限，包括密钥策略、其他 IAM policy 和授权。

`AWSKeyManagementServicePowerUser`是一项 AWS 托管 IAM 策略。有关 AWS 托管策略的更多信息，请参阅 *IAM 用户指南*中的[AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

**注意**  
此策略中特定于 KMS 密钥的权限（例如 `kms:TagResource` 和 `kms:GetKeyRotationStatus`）仅在该 KMS 密钥的密钥策略[明确允许 AWS 账户 使用 IAM policy](key-policy-default.md#key-policy-default-allow-root-enable-iam) 以控制对密钥的访问时才有效。要确认权限是否特定于 KMS 密钥，请参阅 [AWS KMS 权限](kms-api-permissions-reference.md) 并在 **Resources**（资源）列中查找 **KMS 密钥**的值。  
此策略授予高级用户对任何 KMS 密钥执行操作的权限，以及允许该操作的密钥策略。对于跨账户权限（例如 `kms:DescribeKey` 和 `kms:ListGrants`），这可能包括不可信 AWS 账户中的 KMS 密钥。有关详细信息，请参阅 [IAM policy 的最佳实践](iam-policies-best-practices.md) 和 [允许其他账户中的用户使用 KMS 密钥](key-policy-modifying-external-accounts.md)。要确认权限是否对其他账户中的 KMS 密钥有效，请参阅 [AWS KMS 权限](kms-api-permissions-reference.md) 并查找 **Cross-account use**（跨账户使用）列中 **Yes**（是）的值。  
为了让委托人能够毫无错误地查看 AWS KMS 控制台，委托人需要[标记：permis GetResources sion，该标签](https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html)未包含在`AWSKeyManagementServicePowerUser`策略中。您可以在单独的 IAM policy 中允许此权限。

[AWSKeyManagementServicePowerUser](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSKeyManagementServicePowerUser) 托管 IAM 策略必须包含以下权限。
+ 允许主体创建 KMS 密钥。由于此过程包括设置密钥策略，因此高级用户可以授予自己和其他人使用和管理他们创建的 KMS 密钥的权限。
+ 允许主体创建和删除所有 KMS 密钥上的[别名](kms-alias.md)和[标签](tagging-keys.md)。更改标签或别名可以允许或拒绝使用和管理 KMS 密钥的权限。有关更多信息，请参阅 [ABAC for AWS KMS](abac.md)。
+ 允许主体获取有关所有 KMS 密钥的详细信息，包括其密钥 ARN、加密配置、密钥策略、别名、标签和[轮换状态](rotate-keys.md)。
+ 允许主体列出 IAM 用户、组和角色。
+ 此策略不允许主体使用或管理他们未创建的 KMS 密钥。但他们可以更改所有 KMS 密钥上的别名和标签，这可能会允许或拒绝其使用或管理 KMS 密钥的权限。

要查看此策略的权限，请参阅《 AWS 托管策略参考》[AWSKeyManagementServicePowerUser](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AWSKeyManagementServicePowerUser.html)中的。

## AWS 托管策略： AWSServiceRoleForKeyManagementServiceCustomKeyStores
<a name="security-iam-awsmanpol-AWSServiceRoleForKeyManagementServiceCustomKeyStores"></a>

您不能将 `AWSServiceRoleForKeyManagementServiceCustomKeyStores` 附加到自己的 IAM 实体。此策略附加到服务相关角色，该角色 AWS KMS 允许查看与您的 AWS CloudHSM 密钥库关联的 AWS CloudHSM 集群，并创建网络以支持您的自定义密钥库与其 AWS CloudHSM 集群之间的连接。有关更多信息，请参阅 [授权 AWS KMS 管理 AWS CloudHSM 和 Amazon EC2 资源](authorize-kms.md)。

## AWS 托管策略： AWSServiceRoleForKeyManagementServiceMultiRegionKeys
<a name="security-iam-awsmanpol-AWSServiceRoleForKeyManagementServiceMultiRegionKeys"></a>

您不能将 `AWSServiceRoleForKeyManagementServiceMultiRegionKeys` 附加到自己的 IAM 实体。此策略会附加到一个向 AWS KMS 授予相关权限的服务相关角色，以将对多区域主密钥的密钥材料做出的任何更改同步到其副本密钥。有关更多信息，请参阅 [授权同步多 AWS KMS 区域密钥](multi-region-auth-slr.md)。

## AWS KMS AWS 托管策略的更新
<a name="security-iam-awsmanpol-updates"></a>

查看 AWS KMS 自该服务开始跟踪这些更改以来 AWS 托管策略更新的详细信息。要获得有关此页面更改的自动提示，请订阅 AWS KMS [文档历史记录](dochistory.md) 页面上的 RSS 源。


| 更改 | 描述 | 日期 | 
| --- | --- | --- | 
|  [AWSKeyManagementServiceMultiRegionKeysServiceRolePolicy](multi-region-auth-slr.md) – 对现有策略的更新  |  AWS KMS 在策略版本 v2 的托管策略中添加了声明 ID (`Sid`) 字段。  |  2024 年 11 月 21 日  | 
|  [AWSKeyManagementServiceCustomKeyStoresServiceRolePolicy](authorize-kms.md) - 对现有策略的更新  |  AWS KMS 添加了`ec2:DescribeVpcs``ec2:DescribeNetworkAcls`、和`ec2:DescribeNetworkInterfaces`权限以监控包含您的 AWS CloudHSM 集群的 VPC 中的变化，以便在出现故障时 AWS KMS 可以提供清晰的错误消息。  |  2023 年 11 月 10 日  | 
|  AWS KMS 已开始跟踪更改  |  AWS KMS 开始跟踪其 AWS 托管策略的更改。  |  2023 年 11 月 10 日  | 

# 将服务相关角色用于 AWS KMS
<a name="using-service-linked-roles"></a>

AWS Key Management Service 使用 AWS Identity and Access Management (IAM) [服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服务相关角色是一种与之直接关联的 IAM 角色的独特类型。 AWS KMS服务相关角色由服务定义 AWS KMS 并包含该服务代表您调用其他 AWS 服务所需的所有权限。

服务相关角色使设置变得 AWS KMS 更加容易，因为您不必手动添加必要的权限。 AWS KMS 定义其服务相关角色的权限，除非另有定义，否则 AWS KMS 只能担任其角色。定义的权限包括信任策略和权限策略，而且权限策略不能附加到任何其他 IAM 实体。

只有在先删除相关资源后，才能删除服务相关角色。这样可以保护您的 AWS KMS 资源，因为您不会无意中删除访问资源的权限。

有关支持服务相关角色的其他服务的信息，请参阅[使用 IAM 的AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)并查找**服务相关角色**列中显示为**是**的服务。选择**是**和链接，查看该服务的服务关联角色文档。

要查看有关本主题中所讨论服务相关角色的更新的详细信息，请参阅 [AWS KMS AWS 托管策略的更新](security-iam-awsmanpol.md#security-iam-awsmanpol-updates)。

**Topics**
+ [授权 AWS KMS 管理 AWS CloudHSM 和 Amazon EC2 资源](authorize-kms.md)
+ [授权同步多 AWS KMS 区域密钥](multi-region-auth-slr.md)

# 授权 AWS KMS 管理 AWS CloudHSM 和 Amazon EC2 资源
<a name="authorize-kms"></a>

要支持您的 AWS CloudHSM 密钥存储， AWS KMS 需要获得有关您的 AWS CloudHSM 集群信息的权限。它还需要权限才能创建将您的 AWS CloudHSM 密钥库连接到其 AWS CloudHSM 集群的网络基础架构。要获得这些权限， AWS KMS 请在 AWS 账户中创建**AWSServiceRoleForKeyManagementServiceCustomKeyStores**服务相关角色。创建 AWS CloudHSM 密钥存储库的用户必须拥有允许他们创建服务相关角色的`iam:CreateServiceLinkedRole`权限。

要查看有关**AWSKeyManagementServiceCustomKeyStoresServiceRolePolicy**托管策略更新的详细信息，请参阅[AWS KMS AWS 托管策略的更新](security-iam-awsmanpol.md#security-iam-awsmanpol-updates)。

**Topics**
+ [关于 AWS KMS 服务相关角色](#about-key-store-slr)
+ [创建服务相关角色](#create-key-store-slr)
+ [编辑服务相关角色描述](#edit-key-store-slr)
+ [删除服务相关角色](#delete-key-store-slr)

## 关于 AWS KMS 服务相关角色
<a name="about-key-store-slr"></a>

[服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)是一个 IAM 角色，它授予一项 AWS 服务代表您调用其他 AWS 服务的权限。它旨在让您更轻松地使用多种集成 AWS 服务的功能，而无需创建和维护复杂的 IAM 策略。有关更多信息，请参阅 [将服务相关角色用于 AWS KMS](using-service-linked-roles.md)。

对于 AWS CloudHSM 密钥存储，使用**AWSKeyManagementServiceCustomKeyStoresServiceRolePolicy**托管策略 AWS KMS 创建**AWSServiceRoleForKeyManagementServiceCustomKeyStores**服务相关角色。此策略向该角色授予以下权限：
+ [cloudhsm: describe\$1](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) — 检测连接到您的自定义密钥存储 AWS CloudHSM 库的集群中的更改。
+ [ec2: CreateSecurityGroup](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html) — 在[连接 AWS CloudHSM 密钥存储库](connect-keystore.md)以创建安全组时使用，该组允许 AWS CloudHSM 集群 AWS KMS 之间的网络流量流动。
+ [ec2: AuthorizeSecurityGroupIngress](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AuthorizeSecurityGroupIngress.html) — 当您[连接 AWS CloudHSM 密钥存储](connect-keystore.md)以允许网络访问包含您的 AWS CloudHSM 集群的 VPC 时使用。 AWS KMS 
+ [ec2: CreateNetworkInterface](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html) — 在[连接 AWS CloudHSM 密钥库](connect-keystore.md)以创建用于 AWS CloudHSM 集群 AWS KMS 之间通信的网络接口时使用。
+ [ec2: RevokeSecurityGroupEgress](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RevokeSecurityGroupEgress.html) — 当您[连接 AWS CloudHSM 密钥存储](connect-keystore.md)库以从 AWS KMS 创建的安全组中删除所有出站规则时使用。
+ [ec2: DeleteSecurityGroup](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteSecurityGroup.html) — 用于[断开 AWS CloudHSM 密钥存储](disconnect-keystore.md)的连接，以删除连接 AWS CloudHSM 密钥库时创建的安全组。
+ [ec2: DescribeSecurityGroups](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html) — 用于监控在包含您的 AWS CloudHSM 集群的 VPC 中 AWS KMS 创建的安全组中的更改，以便在出现故障时 AWS KMS 可以提供清晰的错误消息。
+ [ec2: DescribeVpcs](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html) — 用于监控包含您的 AWS CloudHSM 集群的 VPC 中的更改， AWS KMS 以便在出现故障时提供清晰的错误消息。
+ [ec2: DescribeNetworkAcls](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkAcls.html) — 用于监控包含您的 AWS CloudHSM 集群的 VPC 的网络 ACLs变化， AWS KMS 以便在出现故障时提供清晰的错误消息。
+ [ec2: DescribeNetworkInterfaces](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html) — 用于监控在包含您的 AWS CloudHSM 集群的 VPC 中 AWS KMS 创建的网络接口的变化，以便在出现故障时 AWS KMS 可以提供清晰的错误消息。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "cloudhsm:Describe*",
        "ec2:CreateNetworkInterface",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:CreateSecurityGroup",
        "ec2:DescribeSecurityGroups",
        "ec2:RevokeSecurityGroupEgress",
        "ec2:DeleteSecurityGroup",
        "ec2:DescribeVpcs",
        "ec2:DescribeNetworkAcls",
        "ec2:DescribeNetworkInterfaces"
      ],
      "Resource": "*"
    }
  ]
}
```

------

由于**AWSServiceRoleForKeyManagementServiceCustomKeyStores**服务相关角色仅受信任`cks.kms.amazonaws.com`，因此 AWS KMS 只能担任此服务相关角色。此角色仅限于查看您的 AWS CloudHSM 集群以及将 AWS CloudHSM 密钥库连接到其关联 AWS CloudHSM 集群 AWS KMS 所需的操作。它不提供 AWS KMS 任何其他权限。例如， AWS KMS 无权创建、管理或删除您的 AWS CloudHSM 集群或备份。 HSMs

**区域**

与 AWS CloudHSM 密钥库功能一样，该**AWSServiceRoleForKeyManagementServiceCustomKeyStores**角色在所有可用 AWS 区域 的地方 AWS KMS AWS CloudHSM 都受支持。有关每项服务支持的列表 AWS 区域 ，请参阅中的[AWS Key Management Service 终端节点和配额](https://docs.aws.amazon.com/general/latest/gr/kms.html)以及[AWS CloudHSM 终端节点和配额*Amazon Web Services 一般参考*](https://docs.aws.amazon.com/general/latest/gr/cloudhsm.html)。

有关服务如何使用 AWS 服务相关角色的更多信息，请参阅 IAM 用户指南中的[使用服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)。

## 创建服务相关角色
<a name="create-key-store-slr"></a>

AWS KMS 如果该角色**AWSServiceRoleForKeyManagementServiceCustomKeyStores**尚不存在，则在您创建 AWS CloudHSM 密钥库 AWS 账户 时会自动在中创建该角色。您无法直接创建或重新创建此服务相关角色。

## 编辑服务相关角色描述
<a name="edit-key-store-slr"></a>

您无法在**AWSServiceRoleForKeyManagementServiceCustomKeyStores** 服务相关角色中编辑角色名称或策略语句，但可以编辑角色描述。有关说明，请参阅《IAM 用户指南》**中的[编辑服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 删除服务相关角色
<a name="delete-key-store-slr"></a>

AWS KMS AWS 账户 即使您已经删除了[所有 AWS CloudHSM 密钥库，也不会从中删除**AWSServiceRoleForKeyManagementServiceCustomKeyStores**](delete-keystore.md)服务相关角色。尽管目前没有删除**AWSServiceRoleForKeyManagementServiceCustomKeyStores**服务相关角色的程序， AWS KMS 但除非您有有效的 AWS CloudHSM 密钥存储，否则不要代入该角色或使用其权限。

# 授权同步多 AWS KMS 区域密钥
<a name="multi-region-auth-slr"></a>

要支持[多区域密钥](multi-region-keys-auth.md)， AWS KMS 需要权限才能将多区域主键的[共享属性](multi-region-keys-overview.md#mrk-sync-properties)与其副本密钥同步。要获得这些权限， AWS KMS 请在 AWS 账户中创建**AWSServiceRoleForKeyManagementServiceMultiRegionKeys**服务相关角色。创建多区域密钥的用户必须具有能让其创建服务相关角色的 `iam:CreateServiceLinkedRole` 权限。

您可以在 AWS CloudTrail 日志中查看记录 AWS KMS 同步共享属性的[SynchronizeMultiRegionKey](ct-synchronize-multi-region-key.md) CloudTrail 事件。

要查看有关**AWSKeyManagementServiceMultiRegionKeysServiceRolePolicy**托管策略更新的详细信息，请参阅[AWS KMS AWS 托管策略的更新](security-iam-awsmanpol.md#security-iam-awsmanpol-updates)。

**Topics**
+ [关于多区域密钥的服务相关角色](#about-multi-region-slr)
+ [创建服务相关角色](#create-mrk-slr)
+ [编辑服务相关角色描述](#edit-mrk-slr)
+ [删除服务相关角色](#delete-mrk-slr)

## 关于多区域密钥的服务相关角色
<a name="about-multi-region-slr"></a>

[服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)是一个 IAM 角色，它授予一项 AWS 服务代表您调用其他 AWS 服务的权限。它旨在让您更轻松地使用多种集成 AWS 服务的功能，而无需创建和维护复杂的 IAM 策略。

对于多区域密钥，使用**AWSKeyManagementServiceMultiRegionKeysServiceRolePolicy**托管策略 AWS KMS 创建**AWSServiceRoleForKeyManagementServiceMultiRegionKeys**服务相关角色。此策略将授予角色 `kms:SynchronizeMultiRegionKey` 权限，从而允许它同步多区域密钥的共享属性。

由于**AWSServiceRoleForKeyManagementServiceMultiRegionKeys**服务相关角色仅受信任`mrk.kms.amazonaws.com`，因此 AWS KMS 只能担任此服务相关角色。此角色仅限于 AWS KMS 需要同步多区域共享属性的操作。它不提供 AWS KMS 任何其他权限。例如， AWS KMS 没有创建、复制或删除任何 KMS 密钥的权限。

有关服务如何使用 AWS 服务相关角色的更多信息，请参阅 IAM 用户指南中的[使用服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement" : [
        {
            "Sid" : "KMSSynchronizeMultiRegionKey",
            "Effect" : "Allow",
            "Action" : [
                "kms:SynchronizeMultiRegionKey"
            ],
            "Resource" : "*"
        }
    ]
}
```

------

## 创建服务相关角色
<a name="create-mrk-slr"></a>

AWS KMS 如果您创建多区域密钥 AWS 账户 时会自动在中创建**AWSServiceRoleForKeyManagementServiceMultiRegionKeys**服务相关角色（如果该角色尚不存在）。您无法直接创建或重新创建此服务相关角色。

## 编辑服务相关角色描述
<a name="edit-mrk-slr"></a>

您无法编辑**AWSServiceRoleForKeyManagementServiceMultiRegionKeys**服务相关角色中的角色名称或策略声明，但可以编辑角色描述。有关说明，请参阅 *IAM 用户指南*中的[编辑服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 删除服务相关角色
<a name="delete-mrk-slr"></a>

AWS KMS 不会从您的中删除**AWSServiceRoleForKeyManagementServiceMultiRegionKeys**服务相关角色 AWS 账户 ，也无法将其删除。但是，除非您的 AWS 账户 和区域中有多区域密钥，否则 AWS KMS 不会代入该**AWSServiceRoleForKeyManagementServiceMultiRegionKeys**角色或使用其任何权限。