

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

# RBAC 为 AWS KMS
<a name="rbac"></a>

基于角色的访问控制（RBAC）是一种授权策略，仅为用户提供履行其工作职责所需的权限，仅此而已。 AWS KMS 支持 RBAC，允许您通过在[密钥政策](key-policies.md)中精细指定密钥用法权限来控制对密钥的访问。密钥政策指定授予密钥访问权限的资源、操作、效果、主体和可选条件。

要在中实现 RBAC AWS KMS，我们建议将密钥用户和密钥管理员的权限分开。

------
#### [ Key users ]

以下密钥政策示例允许 `ExampleUserRole` IAM 角色使用 KMS 密钥。

```
{
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws: iam::111122223333:role/ExampleUserRole"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
  }
```

 您的密钥用户需要的权限可能少于本示例中的用户。请仅分配用户需要的权限。使用以下问题帮助您确定并进一步优化权限。
+ 哪些 IAM 主体（角色或用户）需要访问密钥？
+ 每位主体需要使用密钥来执行哪些操作？ 例如，主体是否只需要加密和签名权限？
+ 用户是人类还是 AWS 服务？ 如果是 AWS 服务，则可以使用[条件密钥将密钥](conditions-kms.md#conditions-kms-via-service)的使用限制为特定 AWS 服务。

------
#### [ Key administrators ]



以下密钥政策示例允许 `ExampleAdminRole` IAM 角色管理 KMS 密钥。

```
{
            "Sid": "Allow access for Key Administrators",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws: iam::111122223333:role/ExampleAdminRole"
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion"
            ],
            "Resource": "*"
    }
```

 在本示例中，您的密钥管理员需要的权限可能少于管理员的权限。仅分配密钥管理员所需的权限。

------

仅向用户授予履行其角色所需的权限。用户的权限可能有所不同，具体取决于密钥是在测试环境中使用还是在生产环境中使用。如果您在某些非生产环境中使用限制较少的权限，请先实施流程来测试策略，然后再将其发布到生产环境中。

**了解详情**
+ [IAM 身份（用户、用户组和角色）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)
+ [访问控制的类型](https://docs.aws.amazon.com/prescriptive-guidance/latest/saas-multitenant-api-access-authorization/access-control-types.html)