本文介绍如何将一个账号的 KMS 实例共享给另一个账号,同时由管理账号通过 DSC 多账号统一管理功能同步 RDS MySQL 资产、执行敏感数据识别任务,最终为目标数据库列配置基于 KMS密钥的列加密。通过此方案,企业可以实现密钥的中心化管理和数据资产的统一安全治理。
适用场景
当企业满足以下条件时,推荐使用本方案:
企业拥有多个阿里云账号,且需要复用一个中心化的 KMS 实例进行密钥管理。
企业希望由统一的管理账号通过数据安全中心治理各成员账号的 RDS MySQL 数据资产。
需要为成员账号下的 RDS MySQL 实例配置基于 KMS密钥方式的列加密。
本方案涉及两条独立的配置链路:
KMS 共享链路:解决业务账号如何使用 KMS 实例拥有者的密钥能力。
DSC 多账号统一管理链路:解决管理账号如何通过数据安全中心发现、扫描并治理业务账号的 RDS 资产。
两条链路均配置完成后,才能通过数据安全中心控制台为业务账号的 RDS MySQL 实例开启基于 KMS密钥的列加密。
账号角色说明
本方案涉及三个账号角色:
角色 | 账号 | 职责 |
统一管理账号 | A | 通过数据安全中心统一管理成员账号的数据资产,执行资产同步、分类分级扫描和列加密配置 |
KMS 实例拥有者 | B | 拥有并维护 KMS 实例,通过资源共享将 KMS 实例授权给业务账号使用 |
业务资源账号 | C | 拥有支持列加密的 RDS MySQL 实例,同时作为 KMS 实例使用者和 DSC 成员账号 |
如果账号 A 是资源目录的管理账号,需先将符合要求的成员账号设置为 DSC 委派管理员。后续"账号 A 的数据安全中心控制台"可理解为统一管理侧或被设置为 DSC 委派管理员的账号控制台。
前提条件
开始操作前,请确认环境满足以下条件:
账号与组织
账号 A、B、C 属于同一个资源目录,且归属于同一个企业实名认证主体。
账号 A 已具备资源目录管理能力,或已按 DSC 要求完成委派管理员设置。
KMS 资源
账号 B 已开通软件密钥管理实例或硬件密钥管理实例。
DSC 资源
统一管理侧已开通支持多账号统一管理的数据安全中心付费版实例。
账号 C 可作为 DSC 成员账号被纳管,且账号 C 下的目标 RDS 资产允许被 DSC 授权接入。
数据库实例
账号 C 拥有支持列加密的 RDS MySQL 实例,且实例处于运行中状态。
数据库的版本、内核小版本、存储类型和地域满足列加密要求。具体要求请参见配置数据库的列加密。
配置流程概述
建议按以下顺序依次完成配置。先打通 KMS 共享关系,再建立 DSC 多账号管理关系,最后通过数据安全中心完成资产同步、识别任务和列加密配置。
步骤 | 操作账号 | 说明 |
1. 共享 KMS 实例 | B | 将 KMS 实例通过资源共享授权给账号 C |
2. 准备 KMS 密钥 | C | 确认共享 KMS 实例可见,准备可用的对称密钥 |
3. 配置多账号统一管理 | A | 通过数据安全中心添加账号 C 为成员账号 |
4. 同步 RDS 资产 | A | 通过数据安全中心同步账号 C 的 RDS 资产 |
5. 执行识别任务 | A | 对目标数据库执行敏感数据识别任务 |
6. 配置列加密 | A | 选择 KMS密钥方式配置列加密 |
共享 KMS 实例给业务账号
操作账号:B(KMS 实例拥有者)
参照多账号共享 KMS 实例,通过资源目录和资源共享服务完成共享配置。主要操作步骤如下:
通过资源共享服务创建共享单元,将目标 KMS 实例加入共享单元。
将账号 C 添加为资源使用者。建议按云账号或资源夹指定资源使用者,避免扩大共享范围。
共享完成后,账号 C 可在 KMS 控制台的实例管理页面看到带有共享标识的 KMS 实例。
权限策略建议使用 AliyunRSDefaultPermissionKMSInstance。
准备列加密使用的 KMS 密钥
操作账号:C(业务资源账号)
使用账号 C 登录 KMS 控制台,进入实例管理页面,确认共享 KMS 实例可见。
打开共享 KMS 实例,创建或确认可用的对称密钥。列加密配置要求密钥类型为对称密钥。
为后续执行操作的 RAM 身份准备必要的 KMS 调用权限,至少包括
kms:Encrypt和kms:Decrypt权限。
如果企业要求中心化密钥管理,请同步确认共享模式是独立所有权还是联合所有权。
配置 DSC 多账号统一管理
操作账号:A(统一管理账号)或 DSC 委派管理员
参照多账号统一管理,完成资源目录、可信服务、委派管理员和成员账号配置。
登录数据安全中心控制台,在左侧导航栏单击多账号统一管理。
如果尚未开通,单击开通多账号统一管理。
单击添加成员账号,从穿梭框的可导入成员账号列表选择账号 C,移入已选导入数据安全中心成员账号列表,单击确定。
如果账号 A 是资源目录管理账号,需先将符合要求的成员账号设置为 DSC 委派管理员。已购买 DSC 实例的成员账号通常不再作为被管理成员账号加入,请按官方文档约束确认账号规划。
同步 RDS 资产
操作账号:A(统一管理账号)或 DSC 委派管理员
登录数据安全中心控制台,完成 DSC 访问云资源授权。
在左侧导航栏单击资产中心,进入资产授权管理页面。
单击资产同步,等待系统完成数据同步。同步过程中页面提示"数据同步中,请稍后刷新页面"。
检查结构化数据资产列表,确认账号 C 的目标 RDS MySQL 实例已出现。
首次开通数据安全中心后,系统会自动同步云上资产。如果刚完成成员账号添加或实例状态变更,建议手动触发一次资产同步。若实例未出现,请检查 DSC 成员账号关系、资源目录关系、RDS 地域和实例运行状态。
执行敏感数据识别任务
操作账号:A(统一管理账号)或 DSC 委派管理员
进入资产中心,选择目标 RDS MySQL 实例,为数据库连接授权。连接方式支持一键连接或账密连接。
连接成功后,通过数据库连接管理开启分类分级。
执行敏感数据识别任务。识别任务完成后,数据安全中心才能在列加密页面展示可治理的库、表、列信息。
如需持续扫描最新数据,请将数据安全中心用于识别任务的数据库账号设置为明文权限账号。
若选择自动创建系统默认任务开始扫描,可通过分类分级 > 任务管理 > 识别任务查看扫描进度。
配置列加密
操作账号:A(统一管理账号)或 DSC 委派管理员
登录数据安全中心控制台,选择风险治理 > 列加密。
确认目标 RDS MySQL 实例的加密检查为通过。如未通过,请先按提示完成数据库版本、内核小版本、存储类型或实例状态修复后重新执行资产同步。
单击一键加密,打开加密配置面板,填写以下参数。
参数
说明
资产类型
选择目标 RDS MySQL 实例所属的资产类型
地域
选择目标实例所在的地域
实例名称
选择需要配置列加密的 RDS MySQL 实例
加密算法
选择加密算法。
加密方式
选择 KMS密钥。仅 RDS MySQL 实例支持选择 KMS密钥加密方式
KMS密钥
选择用于列加密的 KMS 对称密钥。列表展示密钥状态为已启用的密钥。如果未创建密钥,系统提示"识别到您未创建KMS密钥",请先在 KMS 控制台创建对称密钥
明文权限账号
选择可以查看加密列明文数据的数据库账号。未选择的账号按密文权限访问加密列
选择需要加密的目标库、表、列,单击确认提交。
确认加密方式后再提交。后续修改加密方式可能触发加密任务重启,过程中原加密列数据存在以明文形式存储的风险。
验证配置结果
完成配置后,建议按以下项目逐一验证:
KMS 侧验证
账号 C 的 KMS 控制台可以看到账号 B 共享的 KMS 实例。
用于列加密的对称密钥存在,且相关 RAM 身份具备必要 KMS 权限。
DSC 侧验证
账号 C 已作为 DSC 成员账号被统一管理侧纳管。
资产中心可查看账号 C 的目标 RDS MySQL 实例。
扫描侧验证
目标数据库已完成连接授权和分类分级识别任务。
列加密页面能展示目标库、表、列及敏感等级信息。
加密侧验证
目标实例加密检查显示通过,配置提交后列加密状态更新为已加密。
使用不同权限账号访问加密列,返回结果符合明文权限账号或密文权限的预期。
跨账号配置约束与风险
事项 | 说明 |
账号关系 | KMS 实例共享和 DSC 多账号统一管理都依赖资源目录关系及同一企业实名认证主体。账号不在同一组织内时,应先完成资源目录纳管 |
KMS 与 DSC 的关系 | 共享 KMS 不会自动将 RDS 资产同步到数据安全中心;DSC 纳管账号 C 后,也不会自动完成 KMS 共享。两条链路需要分别配置 |
列加密前置扫描 | 配置列加密前,目标数据库需要先完成 DSC 授权接入、资产同步和敏感数据识别任务,否则列加密页面可能无法展示可配置的列 |
KMS密钥加密方式 | 选择 KMS密钥作为加密方式时,需要提前准备可用的 KMS 对称密钥,并确认 RDS MySQL 的版本、内核小版本、存储类型和地域满足官方限制 |
明文权限账号 | 完成列加密配置后,未加白账号按密文权限访问。若数据安全中心后续仍需读取数据库最新数据进行分类分级,应将 DSC 使用的数据库账号配置为明文权限账号 |
变更风险 | 列加密配置完成后,不建议随意修改加密方式。修改可能导致任务重启,过程中原加密列数据存在以明文形式存储的风险 |