通过控制台配置列加密规则

本文介绍在使用列加密(全密态)功能时,如何通过RDS控制台设置列加密规则及相关用户角色权限。

前提条件

  • RDS MySQL实例的大版本为MySQL 5.7或8.0,且内核小版本大于等于20240430。

    说明

    升级内核小版,请参见升级内核小版本

  • 已开通全密态功能

  • 配置数据保护规则的账号必须是高权限账号。

功能介绍

列加密能力的配置分为两部分:

  • 列加密规则:指定您需要加密数据库中的哪些数据列。

  • 角色权限设置:使不同的数据库账号可以看到不同的明文、密文。

在配置列加密规则前,强烈建议您先对用户权限进行配置,给需要的账号配置明文查看权限。这样,可以预先避免对正在运行的业务系统产生可能的影响。

重要

在未对数据库账号进行具体角色权限分配的情况下,系统将默认所有数据库账号为其他管理员(查看密文)。如果您先设置了列加密规则,但没有进行角色权限设置,您的业务系统中可能出现加密乱码。

注意事项

  • 数据保护规则一旦配置生效,在目标数据库实例范围内全局有效,不需要重复配置。

  • 建议使用不同的数据库账号,分别用于管理规则和在线应用,如无必要不应使在线应用具备管理权限。

  • 请谨慎授予对全密态元数据表的读写权限,否则用户可能通过修改全密态元数据表内容而绕过全密态安全防护。

操作步骤

  1. 访问RDS实例列表,在上方选择地域,单击目标实例ID。

  2. 在左侧导航栏,单击数据安全性

  3. 单击列加密页签,进行角色权限和列加密规则配置。

配置或修改角色权限

  1. 选择角色权限设置页签,根据角色权限,单击对应操作列的配置账号修改账号

    说明

    角色权限说明如下:

    • 超级管理员:具有明文查看一切敏感数据的权限。

    • 运维管理员:具有密文查看敏感数据的权限。该角色可自定义专属密钥,实现数据的即时加解密操作。

    • 其他管理员:无权访问。该角色只能查看密文,且无法对数据进行解密。

  2. 配置账号弹窗页面配置以下参数,并单击确定

    参数

    是否必填

    说明

    过期时间

    仅当角色名称为超级管理员时,有此参数。

    当过期时间到达时,相应的超级管理员权限会被重置为默认的其他管理员(无权访问)权限。

    关联账号

    在下拉框中,选择零或多个数据库账号。

    自定义账户

    类似关联账号,但需要您手动输入。填写一个或多个数据库账号名,多个账号间用英文逗号(,)分隔。

    配置账号允许您根据当前操作需求灵活调整用户权限。例如,您可以多次访问配置账号界面执行操作,先将用户a配置为超级管理员,再将用户b配置为超级管理员,两次配置都会成功。如果您需要取消某个用户的权限,您需要将其配置为其他管理员。

新增或修改列加密规则

  1. 选择列加密规则页签,单击新增或已有规则操作列的修改

  2. 在弹窗页面配置以下参数,并单击确定

    参数

    是否必填

    说明

    规则名称

    加密规则的名称。长度不超过30个字符。

    数据库名

    需要应用当前规则的数据库名称。支持如下选项:

    • 所有数据库:表示当前规则对该实例中的所有数据库生效。

    • 包含:表示当前规则仅对目标数据库生效,需在文本框中填入一个或多个数据库名,多个数据库名之间用英文逗号(,)分隔。

    数据表名

    需要应用当前规则的数据表名称。支持如下选项:

    • 所有数据表:表示当前规则对该实例中的所有数据表生效。

    • 包含:表示当前规则仅对目标数据表生效,需在文本框中填入一个或多个数据表名,多个表名之间用英文逗号(,)分隔。

    数据列名

    需要应用当前规则的数据列名称。支持如下选项:

    • 所有数据列:表示当前规则对该实例中的所有数据列生效。

    • 包含:表示当前规则仅对目标数据列生效,需在文本框中填入一个或多个数据列名,多个列名之间用英文逗号(,)分隔。

删除列加密规则

列加密页签下,单击列加密规则,选择需要删除的规则,单击删除