本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
EKS 集群的 KMS 信封加密
注意
对于运行 Kubernetes 1.28 或更高版本的 EKS 集群,Amazon Elastic Kubernetes Service(Amazon EKS)为所有 Kubernetes API 数据提供了默认信封加密。有关更多信息,请参阅 EKS 用户指南中的所有 Kubernetes API 数据的默认信封加密。
EKS 支持使用 AWS KMS
以前,Amazon EKS 仅支持在创建集群期间使用 KMS 密钥启用信封加密
在 AWS 容器博客上阅读有关使用 EKS
创建启用 KMS 加密的集群
# kms-cluster.yaml # A cluster with KMS encryption enabled --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: kms-cluster region: us-west-2 managedNodeGroups: - name: ng # more config secretsEncryption: # KMS key used for envelope encryption of Kubernetes secrets keyARN: arn:aws:kms:us-west-2:<account>:key/<key>
eksctl create cluster -f kms-cluster.yaml
在现有集群上启用 KMS 加密
要在尚未启用 KMS 加密的集群上启用 KMS 加密,请运行
eksctl utils enable-secrets-encryption -f kms-cluster.yaml
或者没有配置文件:
eksctl utils enable-secrets-encryption --cluster=kms-cluster --key-arn=arn:aws:kms:us-west-2:<account>:key/<key> --region=<region>
除了在 EKS 集群上启用 KMS 加密外,eksctl 还使用新的 KMS 密钥对所有现有的 Kubernetes 密钥进行重新加密,方法是使用注释对其进行更新。eksctl.io/kms-encryption-timestamp
可以通过传递来禁用此行为--encrypt-existing-secrets=false
,例如:
eksctl utils enable-secrets-encryption --cluster=kms-cluster --key-arn=arn:aws:kms:us-west-2:<account>:key/<key> --encrypt-existing-secrets=false --region=<region>
如果集群已经启用了 KMS 加密,eksctl 将继续重新加密所有现有密钥。
注意
启用 KMS 加密后,无法将其禁用或更新为使用其他 KMS 密钥。