為 EKS 自動模式啟用含客戶自管 KMS 金鑰的 EBS 磁碟區加密 - Amazon EKS

協助改進此頁面

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

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

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

為 EKS 自動模式啟用含客戶自管 KMS 金鑰的 EBS 磁碟區加密

您可使用客戶管理的 KMS 金鑰來加密 EKS 自動模式執行個體的暫時性根磁碟區。

Amazon EKS Auto Mode 使用服務連結角色,在管理 Kubernetes 叢集的加密 EBS 磁碟區 AWS 時,將許可委派給其他服務。本主題描述在為 EKS 自動模式指定客戶管理金鑰以進行 Amazon EBS 加密時,所需設定的金鑰政策。

考量:

  • EKS Auto Mode 不需要額外的授權,即可使用預設 AWS 受管金鑰來保護您帳戶中的加密磁碟區。

  • 本主題涵蓋加密暫時性磁碟區,即 EC2 執行個體的根磁碟區。有關加密用於工作負載的資料磁碟區的更多資訊,請參閱 建立儲存類別

概觀

當 EKS Auto Mode 啟動執行個體時,下列 AWS KMS 金鑰可用於 Amazon EBS 根磁碟區加密:

  • AWS 受管金鑰 – 在您的帳戶中由 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:iam::123456789012: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:iam::123456789012:role/ClusterServiceRole" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }

請務必將 取代<account-id>為您實際 AWS 的帳戶 ID。

在設定金鑰政策時:

  • ClusterServiceRole 必須擁有必要的 IAM 許可,才能使用 KMS 金鑰進行加密操作

  • kms:GrantIsForAWSResource 條件可確保只能為 AWS 服務建立授予

步驟 2:使用您的客戶管理金鑰設定 NodeClass

設定金鑰政策後,在 EKS 自動模式 NodeClass 組態中參考 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: kms:<region>:<account-id>:key/<key-id>"

使用您的實際值取代預留位置的值:

  • <region> 您的 AWS 區域

  • <account-id> 使用 AWS 您的帳戶 ID

  • <key-id> 取代為您的 KMS 金鑰 ID

您可使用下列任何格式指定 KMS 金鑰:

  • KMS 金鑰 ID:1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d

  • KMS 金鑰 ARN: arn:aws: kms:us-west-2:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d

  • 金鑰別名名稱:alias/eks-auto-mode-key

  • 金鑰別名 ARN: arn:aws: kms:us-west-2:111122223333:alias/eks-auto-mode-key

使用 kubectl 套用 NodeClass 組態:

kubectl apply -f nodeclass.yaml