EKS 叢集的 KMS 信封加密 - Eksctl 使用者指南

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

EKS 叢集的 KMS 信封加密

注意

Amazon Elastic Kubernetes Service (Amazon EKS) 為執行 Kubernetes 1.28 版或更新版本的 EKS 叢集中的所有 Kubernetes API 資料提供預設信封加密。如需詳細資訊,請參閱《EKS 使用者指南》中所有 Kubernetes API 資料的預設信封加密

EKS 支援使用 AWS KMS 金鑰來提供存放在 EKS 中 Kubernetes 秘密的信封加密。信封加密為存放在 Kubernetes 叢集中的應用程式秘密或使用者資料新增了額外的客戶受管加密層。

先前,Amazon EKS 支援僅在叢集建立期間使用 KMS 金鑰啟用信封加密。現在,您可以隨時啟用 Amazon EKS 叢集的信封加密。

閱讀 AWS 容器部落格上的使用 EKS 加密供應商支援defense-in-depth文章。

在啟用 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 金鑰。