阿里云容器服務Kubernetes版(簡稱ACK)通過您指定的KMS主密鑰,對Kubernetes集群Secret進行落盤加密,您只需一鍵配置即可實現對Kubernetes集群的安全保護。
使用場景
Kubernetes擁有強大的運維編排管理能力,依賴大量的跨產品、跨服務、跨模塊調用所必須使用的機密信息,例如:密碼、證書、憑據、訪問密鑰等。Kubernetes集群使用Secret模型存儲和管理集群系統和集群中業(yè)務應用的敏感信息,并且通過內部的etcd集群進行保存,同時在etcd集群的副本中進行分布式復制存儲。
例如:部署一個沒有任何業(yè)務負載的Kubernetes集群,初始情況下有大約50個Secret。其中任何一個Secret的泄露,都可能對Kubernetes集群、業(yè)務系統,甚至是企業(yè)的運行產生不可估量的損失。因此您在享受Kubernetes為您帶來的便利時,也需要對Kubernetes集群中托管的大量憑據進行必要的保護,防止來自各方面的安全威脅。
加密機制
在ACK Pro托管集群中,您可以使用在KMS中創(chuàng)建的用戶主密鑰(CMK)加密Kubernetes Secret,加密過程基于Kubernetes提供的KMS Encryption Provider機制,使用信封加密的方式對存儲在etcd中的Kubernetes Secret密鑰進行自動加密和解密。關于信封加密的詳情,請參見使用KMS信封加密在本地加密和解密數據。Kubernetes Secret密鑰加密和解密的過程如下:
- 當一個業(yè)務密鑰需要通過Kubernetes Secret API存儲時,數據會首先被API Server生成的一個隨機的數據密鑰加密,然后該數據密鑰會被指定的KMS用戶主密鑰(CMK)加密為一個密文密鑰存儲在etcd中。
- 解密Kubernetes Secret密鑰時,系統會首先調用KMS的解密API進行密文密鑰的解密,然后使用解密后的明文密鑰對Secret數據解密并最終返回給用戶。
前提條件
- 您需要為使用Kubernetes的賬號授予AliyunCSManagedSecurityRole角色的權限。如果您使用的賬號未授權,在創(chuàng)建Pro集群或修改已有Pro集群過程中開啟Secret落盤加密時,系統會提示您進行安全系統角色授權。
- 如果您使用RAM用戶登錄,請確保RAM用戶具備AliyunKMSCryptoAdminAccess權限。具體操作,請參見為RAM用戶授權。
- 請確保您已在KMS控制臺創(chuàng)建用戶主密鑰(CMK)。具體操作,請參見創(chuàng)建密鑰。說明 僅支持Aliyun_AES_256類型的用戶主密鑰(CMK)。
在新創(chuàng)建的ACK Pro集群中開啟Secret落盤加密
登錄容器服務管理控制臺。
- 在左側導航欄,單擊集群。
在集群列表頁面,單擊頁面右上角的集群模板。
- 在選擇集群模板,選擇Pro托管集群,然后單擊創(chuàng)建。
- 在ACK托管版頁簽找到Secret落盤加密,選中選擇KMS密鑰,在下拉列表中選擇KMS密鑰ID。
- 根據控制臺提示完成其他參數設置。具體操作,請參見創(chuàng)建ACK Pro版集群。
在已創(chuàng)建的ACK Pro集群中開啟Secret落盤加密
- 在集群列表頁面,單擊目標Pro集群名稱。
- 單擊基本信息頁簽,在基本信息區(qū)域中打開Secret落盤加密開關。
- 在Secret落盤加密對話框,在下拉列表中選擇KMS密鑰ID,然后單擊確定。當集群狀態(tài)由更新中變?yōu)?b data-tag="uicontrol" id="uicontrol-el3-l5f-eew" class="uicontrol">運行中時,說明該集群Secret落盤加密的特性已變更完成。
執(zhí)行結果
如果您在操作審計控制臺的事件查詢頁面獲取到使用AliyunCSManagedSecurityRole系統角色的加密和解密操作事件,則說明該集群已成功開啟Secret落盤加密特性,此時您可以通過操作審計控制臺查看對KMS的所有調用記錄。
文檔內容是否對您有幫助?