PolarDB PostgreSQL版(兼容Oracle)提供了透明數據加密TDE(Transparent Data Encryption)功能。TDE可對數據文件執行實時I/O加密和解密,數據在寫入磁盤之前進行加密,從磁盤讀入內存時進行解密。TDE不會增加數據文件的大小,開發人員無需更改任何應用程序,即可使用TDE功能。
前提條件
已開通KMS。具體操作請參見開通密鑰管理服務。
已授權PolarDB訪問KMS。具體操作請參見授權PolarDB訪問KMS。
背景信息
TDE通過在數據庫層執行靜態數據加密,阻止可能的攻擊者繞過數據庫直接從存儲中讀取敏感信息。經過數據庫身份驗證的應用和用戶可以繼續透明地訪問應用數據(不需要更改應用代碼或配置),而嘗試讀取表空間文件中的敏感數據的OS用戶以及嘗試讀取磁盤或備份信息的不法之徒將不允許訪問明文數據。
PolarDB PostgreSQL版(兼容Oracle) TDE加密使用的密鑰由密鑰管理服務(KMS)產生和管理,PolarDB不提供加密所需的密鑰和證書。您不僅可以使用阿里云自動生成的密鑰,也可以使用自帶的密鑰材料生成數據密鑰,然后授權PolarDB使用。
注意事項
TDE功能開通后無法關閉。
支持在PolarDB PostgreSQL版(兼容Oracle)2.0.14.23.1及以上版本中開啟TDE,也支持創建集群的過程中開啟TDE。
對于I/O密集型(I/O bound)場景,開通TDE后可能會對數據庫性能產生一定影響。
操作步驟
創建集群過程中開啟TDE,請參考創建PolarDB PostgreSQL版(兼容Oracle)集群。以下為您介紹如何在已存在PolarDB集群開啟TDE功能。
啟用TDE加密會導致PolarDB集群重啟,請謹慎操作。
登錄PolarDB控制臺。
在左側導航欄單擊集群列表。
在左上角,選擇集群所在地域。
找到目標集群,單擊集群ID。
在左側導航欄單擊 。
在TDE配置頁簽,打開TDE狀態開關。
在設置TDE對話框中,選擇使用服務密鑰(阿里云自動生成)或使用已有自定義密鑰。
如果您選擇使用服務密鑰(阿里云自動生成),單擊確定,開通TDE。
如果您選擇使用已有自定義密鑰,下拉選擇由密鑰管理服務(KMS)產生的密鑰,單擊確定,開通TDE。
目前支持的密鑰類型為Aliyun_AES_256。
使用已有自定義密鑰時,需要滿足以下條件:
需要使用阿里云主賬號或者是具有AliyunSTSAssumeRoleAccess權限的賬號。
禁用密鑰,設置了密鑰計劃刪除或者刪除密鑰材料都會造成密鑰不可用。
撤銷授權關系后,重啟PolarDB集群會導致集群不可用。
如果沒有自定義密鑰,需要單擊前往創建,在密鑰管理服務控制臺創建密鑰并導入自帶的密鑰材料,詳情請參考創建密鑰。
開通TDE大約需要10分鐘,請您耐心等待。
查看TDE狀態
登錄PolarDB控制臺。
在左側導航欄單擊集群列表。
在左上角,選擇集群所在地域。
找到目標集群,單擊集群ID。
在左側導航欄單擊 。
在TDE配置頁簽,查看TDE狀態。
切換為自定義密鑰
登錄PolarDB控制臺。
在左側導航欄單擊集群列表。
在左上角,選擇集群所在地域。
找到目標集群,單擊集群ID。
在左側導航欄單擊 。
在TDE配置頁簽,單擊TDE狀態右側滑塊。
在設置TDE對話框中,選擇使用已有自定義密鑰,下拉選擇由密鑰管理服務(KMS)產生的密鑰,單擊確定,開通TDE。
說明使用已有自定義密鑰的注意事項請參考操作步驟下的說明。
高級選項
僅選擇使用已有自定義密鑰時,支持開啟TDE密鑰自動輪轉。
PolarDB并不會更新自定義密鑰的主密鑰版本,您可以手動更新密鑰版本或更改密鑰輪轉策略,具體操作請參考密鑰輪轉。
PolarDB集群在檢測到自定義密鑰的主密鑰版本更新后,將于下次運維時間窗口內輪轉TDE的密鑰,該過程PolarDB集群將發生重啟。
開啟高級選項TDE密鑰自動輪轉功能支持以下兩種方式:
開通TDE并選擇使用自定義密鑰時,您可以在設置TDE對話框中,開啟高級選項中的TDE密鑰自動輪轉功能。
在使用自定義密鑰開啟TDE后,在TDE配置頁簽開啟高級選項中的TDE密鑰自動輪轉功能。
常見問題
開啟TDE后,常用數據庫工具(Navicat等)還能正常使用嗎?
答:可以正常使用。
加密后查看數據為什么還是明文的?
答:查詢數據時會解密并讀取到內存,所以是明文顯示。開啟TDE后存儲的數據是加密的。
相關API
API | 描述 |
開啟PolarDB集群TDE功能或修改加密方式。 | |
查詢PolarDB集群的TDE設置詳情。 | |
創建PolarDB集群,開啟透明數據加密TDE。 說明 DBType參數需要為Oracle。 |