本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用客户管理的密钥加密集群密钥
默认情况下, AWS PCS 使用 AWS Secrets Manager 加密方式存储集群密钥 AWS 托管式密钥。 AWS PCS 不需要额外的授权即可使用 AWS 托管式密钥. 或者,您可以使用客户管理的密钥对集群密钥进行加密。客户管理的密钥必须是与集群相同的 AWS 账户 对称加密密钥 (SYMMETRIC_DEFAULT,ENCRYPT_DECRYPT)。 AWS 区域
附加到 AWS PCS 服务相关角色 (AWSServiceRoleForPCS) 的 AWS 托管策略AWSPCSServiceRolePolicy不授予任何kms:权限。如果您在不编辑密钥策略的情况下将客户管理的密钥附加到密钥,则服务相关角色无法访问该密钥。结果,机密轮换和计算节点操作失败。有关 AWS PCS 服务相关角色的更多信息,请参阅Service-linked 的角色 AWS 个。
必需的密钥政策
将以下语句添加到客户管理密钥的密钥策略中。account-id用你的 AWS 账户 ID 替换。此声明授予 AWS PCS 服务相关角色 (AWSServiceRoleForPCS) 使用客户管理的密钥保护集群密钥的权限。
{ "Sid": "Allow service-linked role use of the customer managed key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:role/aws-service-role/pcs.amazonaws.com/AWSServiceRoleForPCS" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "*" }
有关更多信息,请参阅:
-
命令参考中的 put-key-policy AWS CLI
-
命令参考中的 create-key AWS CLI
-
在AWS Key Management Service 开发者指南中查找密钥 ID 和密钥 ARN
-
《AWS Key Management Service 开发人员指南》中的AWS Key Management Service
-
AWS PCS 集群密钥作为托管密钥存储在中 AWS Secrets Manager。
更改加密密钥的权限
上一节中的权限适用于 AWS PCS 服务相关角色。更改附加到密钥的加密密钥的 IAM 委托人需要自己的权限,这些权限与服务相关角色是分开的。委托人需要以下权限:
-
secretsmanager:UpdateSecret在集群密钥上。 -
kms:Decrypt在传出密钥(当前加密密钥的密钥)上。 -
kms:GenerateDataKeykms:Encrypt、以及传入密钥(新密钥)kms:Decrypt上。
当您更改密钥时, AWS Secrets Manager 会重新加密密钥的每个存储版本,包括AWSCURRENT和AWSPREVIOUS版本。
有关附上密钥的过程,请参阅附上密钥并旋转密钥。
附上密钥并旋转密钥
您可以通过 AWS Secrets Manager
UpdateSecret操作将客户管理的密钥附加到集群密钥。 AWS PCS 没有为密钥的加密密钥提供 API 参数。
以下示例将客户管理的密钥附加到集群密钥。用你的值替换占位符。
aws secretsmanager update-secret \ --regionregion\ --secret-idsecret-arn\ --kms-key-idkey-arn
注意
客户管理的密钥必须是 AWS 账户 与 AWS 区域 密钥相同的对称加密密钥。您需要中列出的权限更改加密密钥的权限。
连接客户管理的密钥后,继续轮换,以便 AWS PCS 生成一个使用新连接的客户管理密钥加密的新集群密钥。有关旋转过程,请参见轮换集群密钥 AWS 个。