本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
在企业环境中,各账号分别独立管理密钥会导致管理成本增加,并且安全策略难以统一。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实例 | |||
升级实例 | |||
续费实例 | |||
解除共享关联 | |||
密钥管理 | 创建密钥 | ||
查看密钥元数据 | 说明 仅支持实例拥有者创建的密钥。 | 说明 仅支持实例使用者创建的密钥。 | |
设置密钥轮转 | |||
设置计划删除密钥 | |||
开启删除保护 | |||
创建并管理密钥别名 | |||
添加并管理密钥标签 | |||
密码运算 | 无 | ||
凭据管理 | 创建凭据 | ||
查看凭据元数据 | 说明 仅支持实例拥有者创建的密钥。 | 说明 仅支持实例使用者创建的凭据。 | |
删除凭据 | |||
设置凭据轮转 | |||
添加并管理凭据标签 | |||
获取凭据值 | 无 | ||
备份管理 | 无 | 说明 仅支持备份实例拥有者创建的密钥。 | |
应用接入 | 创建应用接入点 |