PolarDB PostgreSQL版提供了透明資料加密TDE(Transparent Data Encryption)功能。TDE可對資料檔案執行即時I/O加密和解密,資料在寫入磁碟之前進行加密,從磁碟讀入記憶體時進行解密。TDE不會增加資料檔案的大小,開發人員無需更改任何應用程式,即可使用TDE功能。
前提條件
已開通KMS。具體操作請參見開通Key Management Service。
已授權PolarDB訪問KMS。具體操作請參見授權PolarDB訪問KMS。
背景資訊
TDE通過在資料庫層執行待用資料加密,阻止可能的攻擊者繞過資料庫直接從儲存中讀取敏感資訊。經過資料庫身分識別驗證的應用和使用者可以繼續透明地訪問應用資料(不需要更改應用代碼或配置),而嘗試讀取資料表空間檔案中的敏感性資料的OS使用者以及嘗試讀取磁碟或備份資訊的不法之徒將不允許訪問明文資料。
PolarDB PostgreSQL版TDE加密使用的密鑰由Key Management Service(KMS)產生和管理,PolarDB不提供加密所需的密鑰和認證。您不僅可以使用阿里雲自動產生的密鑰,也可以使用內建的密鑰材料產生資料密鑰,然後授權PolarDB使用。
注意事項
TDE功能開通後無法關閉。
支援在PolarDB PostgreSQL版14.12.23.1及以上版本中開啟TDE,也支援建立叢集的過程中開啟TDE。
對於I/O密集型(I/O bound)情境,開通TDE後可能會對資料庫效能產生一定影響。
操作步驟
建立叢集過程中開啟TDE,請參考建立PolarDB PostgreSQL版資料庫叢集。以下為您介紹如何在已存在PolarDB叢集開啟TDE功能。
啟用TDE加密會導致PolarDB叢集重啟,請謹慎操作。
登入PolarDB控制台。
在左側導覽列單擊叢集列表。
在左上方,選擇叢集所在地區。
找到目的地組群,單擊叢集ID。
在左側導覽列單擊 。
在TDE配置頁簽,開啟TDE狀態開關。
在設定TDE對話方塊中,選擇使用服務密鑰(阿里雲自動產生)或使用已有自訂密鑰。
如果您選擇使用服務密鑰(阿里雲自動產生),單擊確定,開通TDE。
如果您選擇使用已有自訂密鑰,下拉選擇由Key Management Service(KMS)產生的密鑰,單擊確定,開通TDE。
目前支援的密鑰類型為Aliyun_AES_256。
使用已有自訂密鑰時,需要滿足以下條件:
需要使用阿里雲主帳號或者是具有AliyunSTSAssumeRoleAccess許可權的帳號。
禁用密鑰,設定了密鑰計劃刪除或者刪除密鑰材料都會造成密鑰不可用。
撤銷授權關係後,重啟PolarDB叢集會導致叢集不可用。
如果沒有自訂密鑰,需要單擊前往建立,在Key Management Service控制台建立密鑰並匯入內建的密鑰材料,詳情請參考建立密鑰。
開通TDE大約需要10分鐘,請您耐心等待。
查看TDE狀態
登入PolarDB控制台。
在左側導覽列單擊叢集列表。
在左上方,選擇叢集所在地區。
找到目的地組群,單擊叢集ID。
在左側導覽列單擊 。
在TDE配置頁簽,查看TDE狀態。
切換為自訂密鑰
登入PolarDB控制台。
在左側導覽列單擊叢集列表。
在左上方,選擇叢集所在地區。
找到目的地組群,單擊叢集ID。
在左側導覽列單擊 。
在TDE配置頁簽,單擊TDE狀態右側滑塊。
在設定TDE對話方塊中,選擇使用已有自訂密鑰,下拉選擇由Key Management Service(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參數需要為PostgreSQL。 |