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