選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

在現有叢集上使用 KMS 加密 Kubernetes 秘密

焦點模式
在現有叢集上使用 KMS 加密 Kubernetes 秘密 - Amazon EKS

協助改善此頁面

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

若要提供此使用者指南,請選擇位於每個頁面右窗格的在 GitHub 上編輯此頁面連結。

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

協助改善此頁面

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

若要提供此使用者指南,請選擇位於每個頁面右窗格的在 GitHub 上編輯此頁面連結。

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

重要

此程序僅適用於執行 Kubernetes 1.27 版或更舊版本的 EKS 叢集。如果您執行的是 Kubernetes 1.28 版或更新版本,根據預設,您的 Kubernetes 秘密會受到信封加密保護。如需詳細資訊,請參閱所有 Kubernetes API 資料的預設信封加密

如果您啟用秘密加密,則會使用您選取的 AWS KMS 金鑰來加密 Kubernetes 秘密。KMS 金鑰必須滿足以下條件:

  • 對稱

  • 可加密和解密資料

  • 在與叢集相同的 AWS 區域中建立

  • 如果 KMS 金鑰是在其他帳戶中建立,則 IAM p主體必須具有 KMS 金鑰的存取權。

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的允許其他帳戶中的 IAM 主體使用 KMS 金鑰

警告

您無法在啟用秘密加密之後停用秘密加密。此動作不可復原。

eksctl

此程序僅適用於執行 Kubernetes 1.27 版或更舊版本的 EKS 叢集。如需詳細資訊,請參閱所有 Kubernetes API 資料的預設信封加密

您可以在以兩種方式啟用加密:

  • 使用單一命令將加密新增至叢集。

    若要自動重新加密您的秘密,請執行下列命令。

    eksctl utils enable-secrets-encryption \ --cluster my-cluster \ --key-arn arn:aws: kms:region-code:account:key/key

    若要退出自動重新加密您的密碼,請執行下列命令。

    eksctl utils enable-secrets-encryption --cluster my-cluster \ --key-arn arn:aws: kms:region-code:account:key/key \ --encrypt-existing-secrets=false
  • 使用 kms-cluster.yaml 檔案將加密新增到您的叢集中。

    apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code secretsEncryption: keyARN: arn:aws: kms:region-code:account:key/key

    若要讓您的秘密自動重新加密,請執行下列命令。

    eksctl utils enable-secrets-encryption -f kms-cluster.yaml

    若要退出自動重新加密您的密碼,請執行下列命令。

    eksctl utils enable-secrets-encryption -f kms-cluster.yaml --encrypt-existing-secrets=false
    AWS Management Console
    1. 此程序僅適用於執行 Kubernetes 1.27 版或更舊版本的 EKS 叢集。如需詳細資訊,請參閱所有 Kubernetes API 資料的預設信封加密

    2. 開啟 Amazon EKS 主控台

    3. 選擇您要向其新增 KMS 加密的叢集。

    4. 選擇 Overview (概觀) 索引標籤 (預設選取此項)。

    5. 向下捲動到 Secrets encryption (私密加密) 區段,然後選擇 Enable (啟用)。

    6. 從下拉式清單中選取金鑰,然後選擇 Enable (啟用) 按鈕。如果未列出任何金鑰,您必須先建立一個。如需詳細資訊,請參閱建立金鑰

    7. 選擇 Confirm (確認) 按鈕以使用選擇的金鑰。

    AWS CLI
    1. 此程序僅適用於執行 Kubernetes 1.27 版或更舊版本的 EKS 叢集。如需詳細資訊,請參閱所有 Kubernetes API 資料的預設信封加密

    2. 使用下列 CLI AWS 命令,將秘密加密組態與叢集建立關聯。使用自己的取代範例值

      aws eks associate-encryption-config \ --cluster-name my-cluster \ --encryption-config '[{"resources":["secrets"],"provider":{"keyArn":"arn:aws: kms:region-code:account:key/key"}}]'

      範例輸出如下。

      {   "update": {     "id": "3141b835-8103-423a-8e68-12c2521ffa4d",     "status": "InProgress",     "type": "AssociateEncryptionConfig",     "params": [       {         "type": "EncryptionConfig",         "value": "[{\"resources\":[\"secrets\"],\"provider\":{\"keyArn\":\"arn:aws: kms:region-code:account:key/key\"}}]"       }     ],     "createdAt": 1613754188.734,     "errors": []   } }
    3. 您可以使用下列命令來監控您的加密更新的狀態。使用之前輸出傳回的特定 cluster nameupdate ID。顯示 Successful 狀態時,即表示更新已完成。

      aws eks describe-update \ --region region-code \ --name my-cluster \ --update-id 3141b835-8103-423a-8e68-12c2521ffa4d

      範例輸出如下。

      {   "update": {     "id": "3141b835-8103-423a-8e68-12c2521ffa4d",     "status": "Successful",     "type": "AssociateEncryptionConfig",     "params": [       {         "type": "EncryptionConfig",         "value": "[{\"resources\":[\"secrets\"],\"provider\":{\"keyArn\":\"arn:aws: kms:region-code:account:key/key\"}}]"       }     ],     "createdAt": 1613754188.734>,     "errors": []   } }
    4. 若要驗證您的叢集中是否已啟用加密,請執行 describe-cluster 命令。回應包含 EncryptionConfig 字串。

      aws eks describe-cluster --region region-code --name my-cluster

在叢集上啟用加密之後,您須使用新金鑰來加密所有現有的密碼:

注意

如果您使用 eksctl,則僅當您選擇退出自動重新加密秘密時,才需要執行以下命令。

kubectl get secrets --all-namespaces -o json | kubectl annotate --overwrite -f - kms-encryption-timestamp="time value"
警告

如果您為現有叢集啟用秘密加密,且您使用的 KMS 金鑰曾經遭到刪除,則無法復原叢集。若刪除 KMS 金鑰,即會永久使叢集處於降級狀態。如需詳細資訊,請參閱刪除 AWS KMS 金鑰

注意

根據預設, create-key命令會建立對稱加密 KMS 金鑰,其中包含金鑰政策,該政策可讓帳戶根管理員存取 AWS KMS 動作和資源。如果您想要縮小許可範圍,請確保要呼叫 create-cluster API 之主體的政策上允許 kms:DescribeKeykms:CreateGrant 動作。

對於使用 KMS 封套加密的叢集,需要 kms:CreateGrant 許可。CreateCluster 動作不支援條件 kms:GrantIsForAWSResource,並且不應在 KMS 政策中使用該條件來控制執行 CreateCluster 的使用者的 kms:CreateGrant 許可。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。