Data Security Center (DSC)列加密功能是一項資料安全技術,通過對資料庫中的特定列進行加密儲存,實現對RDS(MySQL或PostgreSQL)、PolarDB(MySQL、PostgreSQL或Oracle)、PolarDB-X 2.0等資料庫敏感列資料的加密訪問,防止非授權人員通過雲平台軟體或資料庫連接工具直接擷取敏感性資料明文,從而有效抵禦內外部安全威脅,保障資料安全。
功能介紹
資料資訊安全中心的列加密功能包含加密設定與帳號許可權管理兩大部分,前者用於定義密碼編譯演算法、方式及範圍(如資料庫執行個體、庫、表和列),後者則用於控制可訪問加密資料的資料庫帳號及其許可權。
加密原理
密碼編譯演算法:列加密功能採用行業標準的SM4_128_GCM、AES-128-GCM、AES-256-GCM密碼編譯演算法對指定列資料進行加密。
加密方式:列加密功能支援通過本地密鑰和KMS密鑰兩種方式管理指定資料庫的加密金鑰。
本地密鑰:在本地環境中產生和儲存加密金鑰。
KMS密鑰(推薦):使用Key Management Service(KMS)託管指定資料庫的加密金鑰。DSC支援使用在KMS中自行建立或管理的使用者主要金鑰。密鑰類型說明,請參見密鑰管理類型。
帳號許可權說明:
帳號指已授權接入DSC的RDS MySQL版、RDS PostgreSQL版、PolarDB MySQL版、PolarDB PostgreSQL版、PolarDB PostgreSQL版(相容Oracle)、PolarDB-X 2.0版資料庫下拉取到的對應資料庫帳號。
許可權說明如下:
許可權
說明
密文許可權(JDBC解密)
預設訪問已加密列資料的密文,支援該帳號以SDK方式通過全密態用戶端驅動程式使用本地密鑰或KMS密鑰進行解密後查看明文。
密文許可權(無解密許可權)
僅支援訪問已加密列資料的密文,不支援該帳號以任何方式進行解密後查看明文。
明文許可權
開啟資料庫列加密後,設定為明文許可權的帳號,不受列加密設定影響,可直接明文訪問加密列資訊。
資料庫加密限制
支援的資料庫類型 | 支援的版本 | 支援的密碼編譯演算法 | 支援的加密方式 | 支援的許可權 |
RDS MySQL版 | 大版本為MySQL 5.7或MySQL 8.0,且核心小版本大於或等於20240731。 |
說明 中國內地以外的地區僅支援AES_128_GCM。 |
|
|
RDS PostgreSQL版 | 大版本為PostgreSQL 16,且核心小版本必須大於或等於20241230。 | AES_256_GCM。 | 本地密鑰。 |
|
PolarDB MySQL版 | 大版本為MySQL 5.7或MySQL 8.0,且資料庫代理版本必須大於或等於2.8.36。 | AES_128_GCM。 | 本地密鑰。 | |
PolarDB PostgreSQL版 | 大版本為PostgreSQL 14,且資料庫版本大於等於2.0.14.15.31.0。 | AES_256_GCM。 | 本地密鑰。 | |
PolarDB PostgreSQL版(相容Oracle) | 僅支援Oracle文法相容 2.0版本,大版本為PostgreSQL 14,且資料庫版本大於等於2.0.14.15.31.0。 | AES-256-GCM。 | 本地密鑰。 | |
PolarDB-X 2.0 | 資料庫版本大於等於polardb-2.5.0_5.4.20-20250714_xcluster8.4.20-20250703。 |
| 本地密鑰。 |
計費說明
DSC為列Data Encryption Service免費提供1個列的加密額度。後續使用該服務,您需要開啟列加密服務併購買足夠的列加密數,按照訂用帳戶模式計費。計費詳情,請參見計費概述。
如果資料庫列加密配置中加密方式為KMS密鑰,KMS側會收取託管密鑰的費用。具體計費,請參見產品計費。
使用流程簡介
配置列加密流程
為目標資料庫配置列加密的流程如下圖所示。具體內容,請參見設定資料庫的列加密。
訪問加密列資料樣本
配置列加密後,用密文許可權的資料庫帳號查詢加密列時,資料庫返回密文資料。可在用戶端解密後擷取明文,確保資料在用戶端與資料庫外的傳輸過程中全程加密。
用戶端使用說明
阿里雲提供了Java和Go語言的全密態用戶端驅動,使用具備密文許可權(JDBC解密)的資料庫帳號可解密後訪問目標資料庫中加密列的明文資料。
程式設計語言 | 支援的資料庫類型 | 相關文檔 |
Java |
| 整合EncJDBC(支援使用本地密鑰和KMS密鑰解密) |
Go |
| 整合GoLang驅動(僅支援使用本地密鑰解密) |