创建 AWS KMS 密钥

概览

GKE on AWS 使用客户管理的 AWS Key Management Service (KMS) 对称密钥来加密:

在生产环境中,我们建议为配置和卷加密使用不同的密钥。为了进一步降低密钥泄露的风险,您还可以为以下每个项目创建不同的密钥:

为了提高安全性,您可以创建 AWS KMS 密钥政策,并仅分配最小权限集。如需了解详情,请参阅创建具有特定权限的 KMS 密钥

创建 AWS KMS 密钥

如需创建密钥,请运行以下命令:

aws --region AWS_REGION kms create-key \
    --description "KEY_DESC"

替换以下内容:

  • AWS_REGION 替换为您的 AWS 区域的名称
  • KEY_DESC 替换为密钥的文本说明

对于您创建的每个密钥,请保存此命令的输出中名为 KeyMetadata.Arn 的值,以备稍后使用。

创建具有特定权限的 KMS 密钥

如果您为不同的功能创建单独的密钥,则需要为每个密钥提供 KMS 密钥政策,以授予对该密钥的适当权限。如果您在创建密钥时未指定密钥政策,则 AWS KMS 将创建默认密钥政策,该政策将提供所属账号中的所有主账号对该密钥的所有操作的无限制使用权限。

创建密钥政策时,您必须允许 AWS IAM 政策访问密钥政策。密钥政策还必须向您的账号授予使用 IAM 政策的权限。如果没有密钥政策的权限,允许权限的 IAM 政策将无效。如需了解详情,请参阅 AWS KMS 中的密钥政策

下表介绍了 GKE on AWS 使用的每个 AWS IAM 角色的权限。

GKE Multi-Cloud API 服务代理角色 控制层面角色 节点池角色 自动扩缩的 AWS Service 角色
集群控制层面配置加密 kms:Encrypt kms:Decrypt 不适用 不适用
集群控制层面数据库加密 不适用 kms:Encrypt
kms:Decrypt
不适用 不适用
集群控制层面主卷加密 kms:GenerateDataKeyWithoutPlaintext kms:CreateGrant 不适用 不适用
集群控制层面根卷加密 不适用 不适用 不适用 请参阅允许访问客户管理的密钥的关键政策部分
节点池配置加密 kms:Encrypt 不适用 kms:Decrypt 不适用
节点池根卷加密 不适用 不适用 不适用 请参阅允许访问客户管理的密钥的关键政策部分
其他要求 kms:DescribeKey 不适用 不适用 不适用

后续步骤