當DBA或開發人員等高許可權角色在維護資料庫時,可能接觸到生產環境中的敏感性資料(如使用者身份資訊、交易記錄),存在資料泄露風險。PolarDB MySQL版的全密態PolarMySQL功能,能夠在資料庫代理(Proxy)層對查詢結果進行即時加密,確保只有經過授權的應用(通過特定驅動)才能解密和訪問敏感性資料。此功能可在修改少量應用代碼的情況下,實現對敏感性資料的安全保護,滿足合規性要求。
工作原理
全密態PolarMySQL功能在資料庫代理(Proxy)層生效。當一個SQL查詢命中已設定的加密策略時,代理層會在將查詢結果返回給用戶端前,對指定欄位的資料進行加密。
適用範圍
PolarDB MySQL版叢集的資料庫代理(Proxy)版本需為2.9.12及以上。
查看版本號碼:您可在叢集的中查看當前叢集的資料庫代理(Proxy)版本。
版本相容性:資料庫代理版本低於2.9.12但高於2.8.18,則加密規則的配置介面是與動態脫敏功能合并在一起的。為獲得最佳體驗和功能獨立性,建議您升級至2.9.12或更高版本。
配置動態加密
配置動態加密主要包括三個步驟:配置密鑰、定義角色許可權、建立加密策略。
操作流程
前往PolarDB控制台,在左側導覽列單擊叢集列表,選擇叢集所在地區,並單擊目的地組群ID進入叢集詳情頁。
在左側導覽列中,單擊,並進入加密頁簽進行操作。
步驟一:配置密鑰
在加密頁面,單擊密鑰管理開關。以配置用於應用程式加密和解密的密鑰。
使用KMS密鑰(推薦)
通過阿里雲Key Management Service(KMS)託管密鑰,支援密鑰輪轉(自動更新密鑰),提供了高安全性和可維護性。即使訪問KMS的AK發生泄露,也可以通過禁用AK或收緊權限原則來控制風險,密鑰本身不會泄露。
僅支援KMS中的使用者主要金鑰密鑰類型,不支援預設密鑰。詳細資料,請參見密鑰服務概述。
配置KMS使用者主要金鑰
返回PolarDB控制台,選擇對應的使用者主要金鑰,並單擊確定。
使用自持密鑰
如未配置KMS,系統將預設採用自持密鑰模式,您需自行產生、分發及保管密鑰。
自持密鑰存在丟失和泄露風險,且暫不支援更新密鑰。密鑰一旦丟失,對應的加密資料將無法解密,需建立嚴格的安全流程來管理密鑰。
步驟二:定義角色許可權
在加密頁面的客戶角色使用權限設定頁簽,配置不同資料庫帳號的角色,以決定其查詢資料時看到的是明文還是密文。
單擊建立角色權限原則。
在角色使用權限設定彈窗中,設定權限原則名稱和角色的資料庫帳號。
權限原則名稱:指定策略名稱稱。字元長度不能超過64個字元。
超級管理員:單擊複選框,選擇資料庫帳號,支援多選。此列表中的資料庫帳號查詢結果將始終為明文。
說明超級管理員角色擁有最高許可權,僅將必要的管理帳號或審計帳號加入此列表,並嚴格控制其使用。
普通使用者:單擊複選框,選擇資料庫帳號,支援多選。此列表中的資料庫帳號查詢結果為密文,但可以使用特定的加密驅動與密鑰進行解密。
說明其他使用者:未在以上兩個角色列表中配置的任何資料庫帳號。查詢結果為密文,且無法解密。

步驟三:建立並啟用加密策略
在加密頁面的加密原則設定頁簽,配置加密策略。
單擊建立加密策略。
在彈出的對話方塊中,根據下表配置策略參數。
說明建議精確指定加密範圍:建立策略時,應始終明確指定資料庫名、表名與欄位名,避免使用所有資料庫或所有表的配置,以防影響無關業務。
參數
說明
規則名稱
必填。策略的唯一標識,例如
encrypt-user-email。長度不超過64個字元。規則描述
選填。策略的詳細說明,例如
加密customer庫user表中的email欄位。長度不超過64個字元。啟/禁規則
控制策略生效的開關。建立時預設啟用,且不可修改。如需調整,可在建立後進行相應修改。
關聯權限原則
必填。選擇在步驟二中定義的角色許可權。
資料庫
選填。指定策略生效的資料庫。支援如下選型:
(預設)所有資料庫:對叢集內所有資料庫生效。
填寫指定資料庫:僅對指定的資料庫生效,多個庫名用英文逗號
,分隔。
表名
選填。指定策略生效的表。支援如下選型:
(預設)所有表:對指定資料庫內的所有表生效。
填寫指定表:僅對指定的表生效,多個表名用英文逗號
,分隔。
欄位名
必填。需要加密的欄位名稱,多個欄位名用英文逗號
,分隔。密碼編譯演算法
必填。選擇用於加密的演算法。目前支援的演算法有:
SM4系列:
SM4-128-CBC、SM4-128-ECB、SM4-128-GCM、SM4-128-GTR。AES-128系列:
AES-128-CBC、AES-128-ECB、AES-128-GCM、AES-128-GTR。AES-256系列:
AES-256-CBC、AES-256-ECB、AES-256-GCM、AES-256-GTR。
單擊確定完成建立。
步驟四:管理加密策略
在加密頁面的加密原則設定頁簽,您可以在策略列表中,可對已建立的策略進行管理。
修改策略:找到目標規則,在操作列單擊修改。
刪除策略:找到目標規則,在操作列單擊刪除,並在彈出的對話方塊中單擊確定。
啟/禁策略:找到目標規則,單擊啟/禁規則列的開關。
許可權收斂與安全強化
為防止擁有控制台許可權的DBA或開發人員惡意篡改或刪除加密策略,您可使用RAM(存取控制)進行許可權加固。
核心思路
為相關人員建立獨立的RAM使用者,並授予其管理PolarDB的許可權,但明確拒絕其修改或刪除加密策略的許可權。
操作說明
建立禁用修改策略
配置RAM使用者權限
登入RAM控制台,在左側導覽列選擇身份管理>使用者,找到目標RAM使用者,單擊操作列的添加許可權。
在權限原則地區中,選擇上述建立的禁用修改策略,並單擊確認新增授權。
效果展示
被限制的RAM使用者在嘗試修改或刪除加密策略時,將收到許可權不足的錯誤提示。
後續步驟
配置好加密規則後,應用程式需通過整合了加密功能的JDBC驅動(EncJDBC)或GoLang驅動才能正確讀寫加密資料。