数据安全中心 DSC(Data Security Center)列加密功能是一项数据安全技术,通过对数据库中的特定列进行加密存储,实现对RDS(MySQL或PostgreSQL)、PolarDB(MySQL、PostgreSQL或Oracle)、PolarDB-X 2.0等数据库敏感列数据的加密访问,防止非授权人员通过云平台软件或数据库连接工具直接获取敏感数据明文,从而有效抵御内外部安全威胁,保障数据安全。
功能介绍
数据安全中心的列加密功能包含加密设置与账号权限管理两大部分,前者用于定义加密算法、方式及范围(如数据库实例、库、表和列),后者则用于控制可访问加密数据的数据库账号及其权限。
加密原理
加密算法:列加密功能采用行业标准的SM4_128_GCM、AES-128-GCM、AES-256-GCM加密算法对指定列数据进行加密。
加密方式:列加密功能支持通过本地密钥和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为列加密服务免费提供1个列的加密额度。后续使用该服务,您需要开启列加密服务并购买足够的列加密数,按照包年包月模式计费。计费详情,请参见计费概述。
如果数据库列加密配置中加密方式为KMS密钥,KMS侧会收取托管密钥的费用。具体计费,请参见产品计费。
使用流程简介
配置列加密流程
为目标数据库配置列加密的流程如下图所示。具体内容,请参见配置数据库的列加密。
访问加密列数据示例
配置列加密后,用密文权限的数据库账号查询加密列时,数据库返回密文数据。可在客户端解密后获取明文,确保数据在客户端与数据库外的传输过程中全程加密。
客户端使用说明
阿里云提供了Java和Go语言的全密态客户端驱动,使用具备密文权限(JDBC解密)的数据库账号可解密后访问目标数据库中加密列的明文数据。
编程语言 | 支持的数据库类型 | 相关文档 |
Java |
| 集成EncJDBC(支持使用本地密钥和KMS密钥解密) |
Go |
| 集成GoLang驱动(仅支持使用本地密钥解密) |