阿里云容器服務Kubernetes版(簡稱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落盤加密的特性已變更完成。
執行結果
如果您在操作審計控制臺的事件查詢頁面獲取到使用AliyunCSManagedSecurityRole系統角色的加密和解密操作事件,則說明該集群已成功開啟Secret落盤加密特性,此時您可以通過操作審計控制臺查看對KMS的所有調用記錄。
文檔內容是否對您有幫助?