本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
在企业环境中,各账号分别独立管理密钥会导致管理成本增加,并且安全策略难以统一。KMS 实例的多账号共享功能允许企业将单一 KMS 实例在组织范围内安全地分配给多个成员账号,实现统一的密钥管理和成本优化。
工作流程
KMS实例共享功能基于云服务商的资源目录和资源共享服务构建。具体流程如下:
- 组织构建:通过资源目录服务,将企业内的所有相关云账号作为成员,统一管理在一个组织中。 
- 资源共享:实例拥有者通过资源共享服务创建“共享单元”,将KMS实例作为“共享资源”加入,并指定资源目录中的其他成员为“资源使用者”。 
- 权限授予: - 权限策略:实例拥有者在创建共享时,配置预定义的权限策略( - AliyunRSDefaultPermissionKMSInstance),资源共享服务将此策略应用于指定的资源使用者。
- 共享模式:支持“独立所有权”和“联合所有权”两种方式,用于划分KMS实例内资源(密钥和凭据)的使用权限。 
- RAM用户:资源使用者需对其 RAM 身份(RAM 用户或角色)配置具备特定操作权限的 RAM 策略(如 - kms:Encrypt,- kms:Decrypt等)。
 
业务场景示例:企业的部门A购买了KMS实例,如果部门B也希望使用KMS实例,企业可以通过资源目录集中管理阿里云账号,然后通过资源共享服务实现KMS实例的共享。架构图如下所示:
适用范围
- 实例要求: - 已启用的软件密钥管理实例、硬件密钥管理实例。 
- 账号与组织要求: - 实例拥有者和实例使用者必须在同一企业实名认证下。 
- 实例拥有者和实例使用者必须属于同一个资源目录。 
 
共享模式选择指南
| 特性 | 独立所有权 | 联合所有权 | 
| 适用场景 | 存在跨账号同名凭据,或需要进行权限隔离。 | 需要由中心化团队(如IT、安全部门)对所有密钥和凭据进行统一管理和审计的内部协作场景。 | 
| 核心特性 | 数据主权独立:实例拥有者无权管理或使用实例使用者创建的密钥和凭据。 | 数据主权共享:实例拥有者可以管理和使用实例使用者创建的密钥和凭据。 | 
| 跨账号同名 | 允许。实例使用者和实例拥有者可以在实例内创建同名的凭据。 | 不允许。实例内所有密钥/凭据名称必须唯一。 | 
| 模式变更 | 无法变更为联合所有权。 | 可变更为独立所有权。 | 
如需了解两种模式下详细的权限差异,请参见附录:共享模式功能权限详情。
操作指南
配置共享(实例拥有者)
步骤一:准备资源目录并开通组织内共享
- 启用资源目录: - 登录控制台 - 使用管理账号登录资源管理控制台。 
- 开通资源目录 - 在左侧导航栏,选择。单击开通资源目录。具体操作,请参见开通资源目录。 
- 创建资源夹 - 在页面右上角单击资源组织视图。在左侧的资源目录树中,单击目标资源夹,然后在成员页签单击创建资源夹,填写资源夹名称,然后单击确定。具体操作,请参见创建资源夹。 
- 配置成员 - 在成员页签单击创建成员或邀请成员,并参照创建成员、邀请阿里云账号加入资源目录和移动成员完成账号名称、账号UID、结算账号等信息的配置。 - 邀请成员- 参数 - 描述 - 邀请的账号UID或账号登录邮箱 - 账号UID:获取方式,请参见如何查看阿里云账号ID?。 
- 账号登录邮箱:该邮箱为注册账号时填写的登录邮箱。没有登录邮箱的,请填写账号UID。 
 - 支持一次性输入多个进行批量邀请,多个账号之间用英文逗号(,)分隔。 - 备注 - 填写邀请备注,方便被邀请方确认邀请行为的可信性,从而使流程快速完成。 - 标签 - 为成员绑定标签,方便基于标签的成员管理。 - 归属资源夹 - 默认邀请的账号归属在Root资源夹下,您可以单击修改,按需将成员归属到目标资源夹下。该项在成员邀请成功后也支持调整。 - 创建成员- 参数 - 描述 - 阿里云账号名称 - 阿里云账号名称是成员的唯一标识,在资源目录内必须唯一。 
- 阿里云账号名称长度为2~50个字符,允许输入英文字母、数字和特殊字符 - _.-,必须以英文字母或数字开头和结尾,且不能输入连续的特殊字符- _.-。
 - 显示名 - 显示名称长度为2~50个字符或汉字,允许输入汉字、英文字母、数字和特殊字符 - _.-。- 结算账号 - 设置新创建成员的费用承担者。 - 使用管理账号为新成员付款:指定资源目录的管理账号作为托管结算账号。 
- 使用已有成员为新成员付款:指定资源目录的已有成员作为托管结算账号。您需要在指定一个成员面板中,从资源目录的目录树中选择一个成员。 说明- 若成员不具备付款能力则无法被选中。关于如何判断成员是否具备付款能力,请参见财务托管业务须知。 
- 新成员自主付款:指定当前成员作为结算账号。 
 - 标签 - 为成员绑定标签,方便基于标签的成员管理。 - 归属资源夹 - 默认邀请的账号归属在Root资源夹下,您可以单击修改,按需将成员归属到目标资源夹下。该项在成员邀请成功后也支持调整。 
 
- 开通资源共享 - 开通后,资源所有者(管理账号或成员)可以在资源目录内,将资源共享给整个资源目录及其下的资源夹或成员。更多信息,可参见启用资源目录组织共享。 - 使用资源目录的管理账号登录资源共享控制台,在左侧导航栏,选择。 
- 单击启用,然后在资源共享服务关联角色对话框,单击确定。 说明- 系统会自动创建一个名为AliyunServiceRoleForResourceSharing的服务关联角色,用于获取资源目录的组织信息。更多信息,可参见资源共享服务关联角色。 
 
步骤二:配置共享KMS实例
本步骤指导实例拥有者如何将KMS实例共享给一个或多个使用者。
- 登录控制台 - 使用实例拥有者登录密钥管理服务控制台,在顶部菜单栏选择地域信息后,在左侧导航栏单击实例管理。 
- 选择共享模式 - 在实例管理页面,定位到目标KMS实例,单击操作列的资源共享。在RD多账号共享设置面板,首先根据共享模式选择指南选择共享模式。 
- 配置共享单元 - 在添加到共享单元区域,选择或新增共享单元。 - 对比项 - 新增共享单元(推荐) - 从已有中选择 - 适用场景 - 首次共享或需要权限隔离时。 - 需要将当前实例添入已有共享单元,并复用其使用者和权限时。 - 特点 - 权限隔离:只包含当前 KMS 实例,权限独立。 
- 控制范围:仅新添加的账号可使用共享实例。 
 - 权限共享: - 原共享单元的所有使用者将自动获得新实例的访问权,消耗实例的访问管理配额。 
- 对该共享单元的任何权限变动,将同时影响该单元内所有已加入的资源。 
 
- 控制范围:原共享单元的资源使用者以及新添加的账号均可使用共享实例。 
 警告- 可能导致非预期的权限提升和配额消耗,请谨慎操作。 
- 配置共享参数 - 根据所选方式,完成以下配置后,单击确定。 - 新增共享单元(推荐)- 共享单元名称 - 支持中文字符、英文大小写字符、数字及特殊字符(“.”、“_”或“-”),最长不超过50个字符。 
- 资源使用者(实例使用者) - 指定可以使用此KMS实例的账号。 重要- 建议按“资源夹”或“云账号”添加,以实现精细化控制。每次添加都会消耗实例的“访问管理数量”配额。 
- 若在已有的共享单元中增加或删除使用者,该变更将对单元内所有资源生效。 
 - 支持添加以下三种类型: - 阿里云账号:资源仅共享给指定的阿里云账号(UID)。 
- 资源目录组织:将资源共享给整个资源目录下的所有成员账号,包括后续新增的成员。 
- 资源夹(组织单元):输入资源夹 ID,将资源共享给该资源夹下的所有成员,包括后续新增的成员。资源夹ID格式:fd-字符串,如何查看资源夹信息,请参见查看资源夹基本信息。 
 
- 关联权限 - 配置资源使用者(实例使用者)的权限。具体的权限详情,请在资源共享控制台上的权限库中查看。 - AliyunRSDefaultPermissionKMSInstance(推荐):有两个版本(v1、v2),新创建的权限默认为v2。关于如何查看权限版本,可参见查看权限详情。 
- AliyunRSPermissionKMSInstanceReadWrite(已废弃):若之前使用该权限,可以继续正常使用。 
 
 - 从已有中选择- 选择共享单元 - 系统会同步当前账号下的所有共享单元。更多内容参见创建共享单元。 
- 共享资源列表 - 此列表自动展示所选共享单元中已有的资源(不可修改)。本次操作完成后,当前KMS实例将被添加至该共享单元。 
- 资源使用者(实例使用者) - 指定可以使用此KMS实例的账号. 重要- 建议按“资源夹”或“云账号”添加,以实现精细化控制。每次添加都会消耗实例的“访问管理数量”配额。 
- 若在已有的共享单元中增加或删除使用者,该变更将对单元内所有资源生效。 
 - 支持添加以下三种类型: - 阿里云账号:资源仅共享给指定的阿里云账号(UID)。 
- 资源目录组织:将资源共享给整个资源目录下的所有成员账号,包括后续新增的成员。 
- 资源夹(组织单元):输入资源夹 ID,将资源共享给该资源夹下的所有成员,包括后续新增的成员。资源夹ID格式:fd-字符串,如何查看资源夹信息,请参见查看资源夹基本信息。 
 
- 关联权限 - 配置资源使用者(实例使用者)的权限。具体的权限详情,请在资源共享控制台上的权限库中查看。 - AliyunRSDefaultPermissionKMSInstance(推荐):有两个版本(v1、v2),新创建的权限默认为v2。关于如何查看权限版本,可参见查看权限详情。 
- AliyunRSPermissionKMSInstanceReadWrite(已废弃):若之前使用该权限,可以继续正常使用。 
 
 
使用共享实例(实例使用者)
验证共享是否成功,并在共享实例中创建和使用密钥/凭据。
- 登录控制台 - 实例使用者登录密钥管理服务控制台,在实例管理页面,将看到一个带有共享中标签的 KMS 实例。 
- 创建密钥和凭据 
- 为RAM用户赋权: - 资源使用者需要为其 RAM 身份(用户或角色)配置 RAM 策略,授予调用具体 KMS API 的权限(例如 - kms:Encrypt,- kms:Decrypt),具体操作参考使用RAM进行访问控制。
- 使用密钥和凭据 - 成功创建密钥和凭据后,即可在云产品或自建应用中使用它们。具体方法请参考以下文档: - 云产品服务端加密:云产品集成KMS加密概述、支持集成KMS加密的云产品。 
- 云产品集成凭据:云产品集成KMS凭据。 
- 自建应用集成KMS(密钥和凭据):自建应用集成KMS指南。 
 
管理与维护
修改共享单元的资源使用者(实例使用者)
- 在密钥管理服务控制台操作 - 实例拥有者登录密钥管理服务控制台,在顶部菜单栏选择地域信息后,在左侧导航栏单击实例管理。 
- 在实例管理页面,根据KMS实例类型,单击软件密钥管理页签或硬件密钥管理页签。 
- 定位到目标KMS实例,单击操作的资源共享。 
- 在添加到共享单元面板选择共享单元,单击资源使用者的编辑添加或移除资源使用者,然后单击确定。 
 
- 在资源共享控制台操作 - 具体操作,可参见修改共享单元。 
解除KMS实例的共享关系
- 撤销共享前,实例使用者必须主动删除自己创建的所有密钥和凭据,否则将导致撤销失败。请确保关联资源已不再使用,避免业务中断。 
- 仅支持在资源共享控制台操作。 
- 使用管理账号登录资源共享控制台。 
- 在左侧导航栏,选择。在共享单元列表中,单击目标共享单元ID。 
- 在页面右上角,单击删除共享单元。在删除共享单元对话框,单击确定。 
应用于生产环境
在生产环境中部署和使用共享实例时,请遵循以下内容,以确保系统的稳定性、安全性和合规性。
- 网络连通性 - 如果实例使用者的自建应用部署在VPC内,且需要通过私网网关访问KMS,实例拥有者需将实例使用者所属的 VPC 绑定至共享 KMS实例,以实现私网访问。具体操作,可参见同地域多VPC访问KMS实例。 
- 审计与合规 - 实例拥有者:必须在其账号下开启操作审计,以记录对共享实例的所有管理操作以及使用者执行的关键操作。 
- 实例使用者:建议开启操作审计,以记录自身账号内的所有API调用活动。 
 
- 变更管理: - 撤销共享:在撤销共享关系或删除共享单元前,实例使用者需删除其在共享实例中创建的所有密钥和凭据。若有资源残留,撤销操作将失败。请确保关联资源已不再使用,避免业务中断。如何撤销可参见解除KMS实例的共享关系。 
- 修改实例使用者:在共享单元中增删使用者会影响该单元内的所有共享资源。为避免权限混乱,建议为不同业务场景或团队创建独立的共享单元。如何修改可参见修改共享单元的资源使用者(实例使用者)。 
 
配额与限制
- 功能限制 - 不支持共享默认密钥(例如 - alias/acs/oss的密钥)。
- 实例使用者无法跨地域使用共享的KMS实例。 
- 在联合所有权模式中,实例内所有密钥和凭据的名称必须全局唯一。 
 
- 访问管理数量限制 - 共享KMS实例会消耗实例拥有者的访问管理数量。如果数量不足,请及时升配KMS实例。 重要- 配额计算: - 已消耗配额 = 共享的账号数量 + 绑定的VPC数量。- 例如,将一个实例共享给3个账号,并绑定了2个VPC,共消耗5个配额。 
- 配额变更生效说明:若因配额不足导致添加资源使用者失败,在您提升实例配额后,系统不会自动重试该失败操作。您需要手动将该使用者(账号或资源夹)从共享单元中移除,然后重新添加。 
 
常见问题
- 配置完成后,若实例使用者调用 API 返回 “AccessDenied” 或 “Forbidden”错误,应如何进行排查? - 建议依次排查以下四项权限配置: - 资源共享权限:在资源共享控制台,确认使用者账号已成功加入共享单元,且共享状态正常。 
- KMS实例权限:检查共享单元关联的权限是否为 - AliyunRSDefaultPermissionKMSInstance。
- RAM调用权限:确认调用API的RAM用户或RAM角色,已被授予访问KMS的RAM策略。例如 - kms:Encrypt、- kms:Decrypt等操作权限。
- 资源归属:在独立所有权模式下,确认操作的密钥或凭据是由当前实例使用者创建。 
 
- 在联合所有权模式下创建凭据时,为什么提示名称冲突? - 在联合所有权模式中,整个KMS实例内的所有密钥和凭据名称必须唯一,不允许实例所有者和使用者创建同名资源。 - 解决方案一:更换凭据名称。 
- 解决方案二:如业务场景确需支持跨账号同名密钥或凭据,可将共享模式切换为“独立所有权”模式。 警告- 此变更仅支持从“联合所有权”变更为“独立所有权”,且变更后无法撤销。请在操作前仔细评估其影响。 
 
附录:共享模式功能权限详情
下表详细列出了在两种共享模式中,实例拥有者和实例使用者对各项功能的操作权限。
表示支持该功能项,表示不支持该功能项。
联合所有权
| 功能项 | 子项 | 实例拥有者 | 实例使用者 | 
| 实例管理 | 查看KMS实例详情 | ||
| 配置多VPC访问KMS实例 | |||
| 升级实例 | |||
| 续费实例 | |||
| 解除共享关联 | |||
| 密钥管理 | 创建密钥 | ||
| 查看密钥元数据 | 说明  支持所有密钥,包含实例使用者创建的密钥。 | 说明  仅支持实例使用者创建的密钥。 | |
| 设置密钥轮转 | |||
| 设置计划删除密钥 | |||
| 开启删除保护 | |||
| 创建并管理密钥别名 | |||
| 添加并管理密钥标签 | |||
| 密码运算 | 无 | ||
| 凭据管理 | 创建凭据 | ||
| 查看凭据元数据 | 说明  支持所有凭据,包含实例使用者创建的凭据。 | 说明  仅支持实例使用者创建的凭据。 | |
| 删除凭据 | |||
| 设置凭据轮转 | |||
| 添加并管理凭据标签 | |||
| 获取凭据值 | 无 | ||
| 备份管理 | 无 | 说明  支持备份所有密钥和凭据,包含实例使用者创建的密钥和凭据。 | |
| 应用接入 | 创建应用接入点 | 
独立所有权
| 功能项 | 子项 | 实例拥有者 | 实例使用者 | 
| 实例管理 | 查看KMS实例详情 | ||
| 配置多VPC访问KMS实例 | |||
| 升级实例 | |||
| 续费实例 | |||
| 解除共享关联 | |||
| 密钥管理 | 创建密钥 | ||
| 查看密钥元数据 | 说明  仅支持实例拥有者创建的密钥。 | 说明  仅支持实例使用者创建的密钥。 | |
| 设置密钥轮转 | |||
| 设置计划删除密钥 | |||
| 开启删除保护 | |||
| 创建并管理密钥别名 | |||
| 添加并管理密钥标签 | |||
| 密码运算 | 无 | ||
| 凭据管理 | 创建凭据 | ||
| 查看凭据元数据 | 说明  仅支持实例拥有者创建的密钥。 | 说明  仅支持实例使用者创建的凭据。 | |
| 删除凭据 | |||
| 设置凭据轮转 | |||
| 添加并管理凭据标签 | |||
| 获取凭据值 | 无 | ||
| 备份管理 | 无 | 说明  仅支持备份实例拥有者创建的密钥。 | |
| 应用接入 | 创建应用接入点 |