View a markdown version of this page

使用客户管理的密钥加密集群密钥 - AWS 个

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

使用客户管理的密钥加密集群密钥

默认情况下, 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": "*" }

有关更多信息,请参阅:

更改加密密钥的权限

上一节中的权限适用于 AWS PCS 服务相关角色。更改附加到密钥的加密密钥的 IAM 委托人需要自己的权限,这些权限与服务相关角色是分开的。委托人需要以下权限:

  • secretsmanager:UpdateSecret在集群密钥上。

  • kms:Decrypt在传出密钥(当前加密密钥的密钥)上。

  • kms:GenerateDataKeykms:Encrypt、以及传入密钥(新密钥)kms:Decrypt上。

当您更改密钥时, AWS Secrets Manager 会重新加密密钥的每个存储版本,包括AWSCURRENTAWSPREVIOUS版本。

有关附上密钥的过程,请参阅附上密钥并旋转密钥

附上密钥并旋转密钥

您可以通过 AWS Secrets Manager UpdateSecret操作将客户管理的密钥附加到集群密钥。 AWS PCS 没有为密钥的加密密钥提供 API 参数。

以下示例将客户管理的密钥附加到集群密钥。用你的值替换占位符。

aws secretsmanager update-secret \ --region region \ --secret-id secret-arn \ --kms-key-id key-arn
注意

客户管理的密钥必须是 AWS 账户 与 AWS 区域 密钥相同的对称加密密钥。您需要中列出的权限更改加密密钥的权限

连接客户管理的密钥后,继续轮换,以便 AWS PCS 生成一个使用新连接的客户管理密钥加密的新集群密钥。有关旋转过程,请参见轮换集群密钥 AWS 个