阿里雲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資料解密並最終返回給使用者。
前提條件
在新建立的ACK Pro叢集中開啟Secret落盤加密
- 在左側導覽列,單擊叢集。
在叢集列表頁面,單擊頁面右上方的叢集模板。
- 在選擇叢集模板,選擇Pro託管叢集,然後單擊建立。
- 在ACK託管版頁簽找到Secret落盤加密,選中選擇KMS密鑰,在下拉式清單中選擇KMS密鑰ID。
- 根據控制台提示完成其他參數設定。具體操作,請參見建立ACK Pro版叢集。
在已建立的ACK Pro叢集中開啟Secret落盤加密
- 在叢集列表頁面,單擊目標Pro叢集名稱。
- 單擊基本資料頁簽,在基本資料地區中開啟Secret落盤加密開關。
- 在Secret落盤加密對話方塊,在下拉式清單中選擇KMS密鑰ID,然後單擊確定。當叢集狀態由更新中變為運行中時,說明該叢集Secret落盤加密的特性已變更完成。
執行結果
如果您在Action Trail控制台的事件查詢頁面擷取到使用AliyunCSManagedSecurityRole系統角色的加密和解密操作事件,則說明該叢集已成功開啟Secret落盤加密特性,此時您可以通過Action Trail控制台查看對KMS的所有調用記錄。