全部產品
Search
文件中心

Key Management Service:使用KMS一鍵加密Kubernetes叢集Secret

更新時間:Jul 06, 2024

阿里雲Container ServiceKubernetes版(簡稱ACK)通過您指定的KMS主要金鑰,對Kubernetes叢集Secret進行落盤加密,您只需一鍵配置即可實現對Kubernetes叢集的安全保護。

使用情境

Kubernetes擁有強大的營運編排管理能力,依賴大量的跨產品、跨服務、跨模組調用所必須使用的機密資訊,例如:密碼、認證、憑據、存取金鑰等。Kubernetes叢集使用Secret模型儲存和管理叢集系統和叢集中業務應用的敏感資訊,並且通過內部的etcd叢集進行儲存,同時在etcd叢集的副本中進行分布式複製儲存。

例如:部署一個沒有任何業務負載的Kubernetes叢集,初始情況下有大約50個Secret。其中任何一個Secret的泄露,都可能對Kubernetes叢集、業務系統,甚至是企業的運行產生不可估量的損失。因此您在享受Kubernetes為您帶來的便利時,也需要對Kubernetes叢集中託管的大量憑據進行必要的保護,防止來自各方面的安全威脅。

加密機制

在ACK Pro託管叢集中,您可以使用在KMS中建立的使用者主要金鑰(CMK)加密Kubernetes Secret,加密過程基於Kubernetes提供的KMS Encryption Provider機制,使用信封加密的方式對儲存在etcd中的Kubernetes Secret密鑰進行自動加密和解密。關於信封加密的詳情,請參見使用KMS信封加密在本地加密和解密資料。Kubernetes Secret祕密金鑰加密和解密的過程如下:
  • 當一個業務密鑰需要通過Kubernetes Secret API儲存時,資料會首先被API Server產生的一個隨機的資料祕密金鑰加密,然後該資料密鑰會被指定的KMS使用者主要金鑰(CMK)加密為一個密文金鑰儲存區在etcd中。
  • 解密Kubernetes Secret密鑰時,系統會首先調用KMS的解密API進行密文密鑰的解密,然後使用解密後的清除金鑰對Secret資料解密並最終返回給使用者。

前提條件

  • 您需要為使用Kubernetes的帳號授予AliyunCSManagedSecurityRole角色的許可權。如果您使用的帳號未授權,在建立Pro叢集或修改已有Pro叢集過程中開啟Secret落盤加密時,系統會提示您進行安全系統角色授權。
  • 如果您使用RAM使用者登入,請確保RAM使用者具備AliyunKMSCryptoAdminAccess許可權。具體操作,請參見為RAM使用者授權
  • 請確保您已在KMS控制台建立使用者主要金鑰(CMK)。具體操作,請參見建立密鑰
    說明 僅支援Aliyun_AES_256類型的使用者主要金鑰(CMK)。

在新建立的ACK Pro叢集中開啟Secret落盤加密

  1. 登入Container Service管理主控台

  2. 在左側導覽列,單擊叢集
  3. 叢集列表頁面,單擊頁面右上方的叢集模板

  4. 選擇叢集模板,選擇Pro託管叢集,然後單擊建立
  5. ACK託管版頁簽找到Secret落盤加密,選中選擇KMS密鑰,在下拉式清單中選擇KMS密鑰ID。
  6. 根據控制台提示完成其他參數設定。
    具體操作,請參見建立ACK Pro版叢集

在已建立的ACK Pro叢集中開啟Secret落盤加密

  1. 叢集列表頁面,單擊目標Pro叢集名稱。
  2. 單擊基本資料頁簽,在基本資料地區中開啟Secret落盤加密開關。
  3. Secret落盤加密對話方塊,在下拉式清單中選擇KMS密鑰ID,然後單擊確定
    當叢集狀態由更新中變為運行中時,說明該叢集Secret落盤加密的特性已變更完成。

執行結果

如果您在Action Trail控制台的事件查詢頁面擷取到使用AliyunCSManagedSecurityRole系統角色的加密和解密操作事件,則說明該叢集已成功開啟Secret落盤加密特性,此時您可以通過Action Trail控制台查看對KMS的所有調用記錄。