列加密
為了加強對PolarDB PostgreSQL版中敏感列資料的保護,防止非授權人員通過雲平台軟體或資料庫連接工具直接存取敏感性資料的明文資訊,您可以利用資料資訊安全中心DSC(Data Security Center)提供的列加密功能。該功能能夠在確保資料在資料庫內可用的同時,實現資料的不可見度,從而有效抵禦來自雲平台外部和內部的安全威脅,使雲上資料真正成為使用者的私人資產。
前提條件
-
核心版本:PostgreSQL 14且核心小版本為2.0.14.15.31.0及以上。
-
執行個體所在地區:
地區類型
地區名稱
中國內地
華北1(青島)、華北2(北京)、華北3(張家口)、華北5(呼和浩特)、華東1(杭州)、華東2(上海)、華南1(深圳)、華南3(廣州)、西南1(成都)。
非中國內地
中國香港、新加坡(新加坡)、馬來西亞(吉隆坡)、印尼(雅加達)、德國(法蘭克福)。
功能簡介
PolarDB PostgreSQL版的列加密功能由資料資訊安全中心DSC提供,其採用AES-256-GCM密碼編譯演算法和本地密鑰的加密方式,可對資料庫中的敏感性資料列進行加密配置,確保敏感性資料加密後儲存,並支援已授權使用者通過全密態用戶端解密後訪問明文資料,您可以自行選擇與修改待加密的PolarDB PostgreSQL版、庫、表及列範圍。
準備工作
在開啟列加密功能前,您需要依次完成以下步驟:開通或升級DSC服務、授權DSC訪問雲資源、授權資料庫資產、串連資料庫並執行敏感性資料識別任務。
1.開通或升級DSC服務
2.授權DSC訪問雲資源
3.資料庫資產同步
4.開啟分類分級
5.查看待加密資料庫資訊
開啟列加密
確認目標資料庫執行個體資訊且加密检查顯示通过後,完成列加密配置。
-
單擊資料庫執行個體列表上方的一键加密,為所有未加密列配置列加密。或者您也可以單擊目標資料庫執行個體對應操作列的一键加密,為目標資料庫執行個體配置列加密。
-
在加密配置面板,選擇待加密的資產類型、實例名稱、加密算法、加密方式、明文权限账号以及選擇需要配置列加密的目標库、錶和列,然後單擊確定。您需要注意以下事項:
-
資料資訊安全中心DSC支援多種密碼編譯演算法,但PolarDB PostgreSQL版當前僅支援
AES-256-GCM密碼編譯演算法和本地加密的加密方式。 -
完成加密配置後,PolarDB PostgreSQL版資料庫帳號預設許可權為密文权限(JDBC解密),預設訪問加密列的密文資料,支援通過用戶端代碼使用本地密鑰解密後查看原始明文資料。
-
如您需要直接存取明文資料,可以在明文权限账号處添加相應的資料庫帳號,該帳號擁有明文許可權,可以直接存取加密列的明文資料。
重要如您需要對資料庫內的最新資料進行敏感性資料分類分級,則被設定為憑據的資料庫帳號(串連DSC與PolarDB PostgreSQL版叢集時使用的資料庫帳號)需要擁有明文許可權。
-
修改列加密配置
修改加密列範圍
開啟列加密後,您可以根據自身需求,單獨開啟或關閉資料庫執行個體內指定列的列加密功能,實現加密列範圍的修改。
-
在左側導覽列,選擇。
-
在執行個體列表展開目標執行個體,在資料庫列表,找到目標库、錶和列名稱,單擊开启加密或关闭加密,配置單列加密。
修改資料庫帳號許可權
除了已設定為明文权限的帳號,資料庫執行個體的其他帳號均為密文权限(JDBC解密)。您可以根據業務情境需要,修改帳號許可權為明文权限或密文权限(JDBC解密)。
在頁面,單擊账号数据地區的权限设置。
您也可以在執行個體列表的操作列,單擊編輯,在编辑配置面板中,單擊賬號權限的配置。
在账号权限设置面板,搜尋目標執行個體和帳號,查看當前帳號許可權。
說明若新增資料庫帳號未在列表中顯示,請先完成資產同步後再查看。
單擊目標帳號對應操作列的修改权限。
您也可以選中多個具備相同許可權的目標帳號,單擊列表下方的批量修改权限。
在修改許可權對話方塊,選中目標許可權,單擊確定。
驗證列加密結果
您可以根據已設定資料庫列加密和資料庫帳號許可權,驗證訪問加密列的資料。
列加密功能對第三方用戶端未完全相容(例如:通過 Data Management(Data Management)查看已加密資料可能異常),建議使用列加密驅動(JDBC)或PolarDB-Tools用戶端訪問加密資料。
例如,對測試PolarDB PostgreSQL版叢集中students01表的birth_date列進行了加密處理。同時,將叢集內的一個資料庫帳號使用權限設定為明文权限,另一個帳號保持密文权限(JDBC解密)。
在資料加密管理頁面,展開 PolarDB 執行個體可查看各列的敏感等級、加密狀態及可執行操作。已完成加密的列(如敏感等級為 S2 的列)顯示已加密狀態,可單擊關閉加密;未加密的列顯示未加密狀態,可單擊開啟加密。
-
使用帶有密文权限(JDBC解密)的帳號串連資料庫,執行
SELECT * FROM students01;語句查看資料表,加密列會返回密文資料。 -
使用帶有明文权限的帳號串連資料庫,執行
SELECT * FROM students01;語句查看資料表,加密列會返回明文資料。查詢結果顯示students01表包含id、sid、name、birth_date四列,其中birth_date列為待加密列,當前顯示明文日期資料(如 1991-04-16、2005-05-13)。
用戶端使用說明
如果您的資料庫帳號許可權為密文許可權(JDBC解密),您可以使用列加密驅動(JDBC)接入PolarDB PostgreSQL版叢集,通過Java應用程式訪問資料庫中加密的列資料。JDBC能夠自動完成密文資料的解密並返回明文資料,過程對應用透明。具體內容,請參見列加密驅動(JDBC)。
常見問題
相關內容
資料庫列加密的功能和原理,請參見列加密概述。
如果授權後資料庫敏感列資料發生變化,需重新掃描。具體操作,請參見通過識別任務掃描敏感性資料。
。
