帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
在 EKS 自动模式下使用客户自主管理型 KMS 密钥启用 EBS 卷加密
您可以使用客户自主管理型 KMS 密钥对 EKS 自动模式实例的临时根卷进行加密。
在管理 Kubernetes 集群的加密 EBS 卷时,Amazon EKS 自动模式使用服务相关角色向其他 Amazon 服务委派权限。本主题介绍当您为 Amazon EBS 加密指定客户自主管理型密钥时,如何设置所需的密钥策略。
注意事项:
-
EKS 自动模式无需额外授权,即可使用默认的 Amazon 托管式密钥来保护您账户中的加密卷。
-
本主题介绍加密临时卷,即 EC2 实例的根卷。有关加密用于工作负载的数据卷的更多信息,请参阅创建存储类。
概览
以下 Amazon KMS 密钥可在 EKS 自动模式启动实例时用于加密 Amazon EBS 根卷:
-
Amazon 托管式密钥:您账户中由 Amazon EBS 创建、拥有和管理的加密密钥。这是新账户的默认加密密钥。
-
客户托管密钥:您创建、拥有和管理的自定义加密密钥。
注意
密钥必须是对称的。Amazon EBS 不支持非对称客户托管密钥。
第 1 步:配置密钥策略
您的 KMS 密钥必须具有相应的密钥策略,以允许 EKS 自动模式启动具有使用客户自主管理型密钥加密的 Amazon EBS 卷的实例。
请使用以下结构配置密钥策略:
注意
此策略仅包含 EKS 自动模式的权限。如果其他身份需要使用密钥或管理授权,则此密钥策略可能需要额外的权限。
{ "Version": "2012-10-17", "Id": "MyKeyPolicy", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws-cn:iam::<account-id>:role/ClusterServiceRole" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws-cn:iam::<account-id>:role/ClusterServiceRole" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }
请务必将 <account-id>
替换为实际的 Amazon 账户 ID。
配置密钥策略时:
-
ClusterServiceRole
必须具有使用该 KMS 密钥执行加密操作所需的 IAM 权限 -
kms:GrantIsForAWSResource
条件可确保只能为 Amazon 服务创建授权
第 2 步:使用客户自主管理型密钥配置节点类
配置密钥策略后,在 EKS 自动模式的节点类配置中引用该 KMS 密钥:
apiVersion: eks.amazonaws.com/v1 kind: NodeClass metadata: name: my-node-class spec: # Insert existing configuration ephemeralStorage: size: "80Gi" # Range: 1-59000Gi or 1-64000G or 1-58Ti or 1-64T iops: 3000 # Range: 3000-16000 throughput: 125 # Range: 125-1000 # KMS key for encryption kmsKeyID: "arn:aws-cn:kms:<region>:<account-id>:key/<key-id>"
请将占位符值替换为实际的值:
-
请将
<region>
替换为您所在的 Amazon 区域 -
请将
<account-id>
替换为您的 Amazon 账户 ID -
请将
<key-id>
替换为您的 KMS 密钥 ID
您可以使用以下任意一种格式指定 KMS 密钥:
-
KMS 密钥 ID:
1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d
-
KMS 密钥 ARN:
arn:aws-cn:kms:us-west-2:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d
-
密钥别名名称:
alias/eks-auto-mode-key
-
密钥别名 ARN:
arn:aws-cn:kms:us-west-2:111122223333:alias/eks-auto-mode-key
使用 kubectl 应用节点类配置:
kubectl apply -f nodeclass.yaml
相关资源
-
有关更多信息,请参阅《Amazon Key Management Service 开发人员指南》。