企业有多个阿里云账号时,您可以将账号加入资源目录统一管理,然后通过资源共享实现多个阿里云账号使用同一个KMS实例。本文介绍企业如何配置多账号共享KMS实例。
功能介绍
应用场景
KMS实例的所有者账号(资源所有者)可以将KMS实例共享给其他阿里云账号(资源使用者),资源使用者可以在KMS实例中创建密钥和凭据,然后使用密钥进行云产品服务端加密或自建应用加密,使用凭据规避在代码中硬编码敏感信息带来的泄露风险。
当前KMS实例仅支持在资源目录内共享。关于资源目录和资源共享的详细信息,请参见资源目录概述和资源共享概述。
使用限制
功能限制
仅支持共享软件密钥管理实例和硬件密钥管理实例(实例状态必须为已启用),不支持共享默认密钥。
仅支持资源目录内共享,且资源所有者和资源使用者是同一个企业实名认证主体。
资源使用者的自建应用,通过KMS实例Endpoint跨VPC访问密钥或凭据时,请资源所有者在KMS实例中绑定该应用的VPC。具体操作,请参见同地域多VPC访问KMS实例。
说明您可以使用
ping {KMS实例域名}
验证自建应用是否能访问KMS实例。例如:ping kst-hzz62****.cryptoservice.kms.aliyuncs.com
。您也可以通过KMS服务Endpoint访问凭据,该方式不限制应用VPC和KMS实例的VPC网络是否互通。但需要注意的是密钥不支持通过KMS服务Endpoint访问。
解除KMS实例的共享关系前,需要资源使用者删除自己创建的密钥和凭据。
资源使用者如果需要创建RAM、RDS、ECS凭据,请通过工单联系技术支持人员升级KMS实例。
地域限制
资源使用者不支持跨地域使用KMS实例。例如,KMS实例在新加坡地域,资源使用者创建的密钥只能用于新加坡地域的云产品服务端加密。
配额限制
共享KMS实例会消耗KMS实例的访问管理数量配额,资源使用者包含几个阿里云账号,就消耗几个配额。配额不足时请及时升配,具体操作,请参见升级KMS实例。
访问管理数量配额包含共享KMS实例时资源使用者的数量,以及配置多VPC访问时VPC的数量。例如,您需要将KMS实例共享给2个资源使用者(消耗2个配额),还需要关联3个VPC(消耗3个配额),那么访问管理数量配额最少为5才能满足业务需求。
资源使用者的权限
共享KMS实例时,您需要为共享单元设置AliyunRSDefaultPermissionKMSInstance权限。权限详情,请在资源共享控制台上的权限库中查看。
AliyunRSDefaultPermissionKMSInstance有两个版本(v1、v2),新创建的权限默认为v2。关于如何查看权限版本,请参见查看权限详情。
AliyunRSPermissionKMSInstanceReadWrite已废弃,如果您之前使用的是这个权限,依旧可以正常使用。
功能对比
√表示支持该功能项,×表示不支持该功能项。
功能项 | 子项 | 资源所有者 | 资源使用者 |
实例管理 | 查看KMS实例详情 | √ | × |
配置多VPC访问KMS实例 | √ | × | |
升级实例 | √ | × | |
续费实例 | √ | × | |
解除共享关联 | √ | × | |
密钥管理 | 创建密钥 | √ | √ |
| √ 支持所有密钥,包含资源使用者创建的密钥 | √ 仅支持资源使用者创建的密钥 | |
密码运算 | - | √ 支持使用所有密钥,用于云产品服务端加密,或用于自建应用加密。 | √ 仅支持使用资源使用者创建的密钥,用于云产品服务端加密,或用于自建应用加密。 |
凭据管理 | 创建凭据 | √ | √ |
| √ 支持所有凭据,包含资源使用者创建的凭据 | √ 仅支持资源使用者创建的凭据 | |
获取凭据值 | - | √ 支持所有凭据,包含资源使用者创建的凭据 | √ 仅支持资源使用者创建的凭据 |
备份管理 | - | √ 支持备份所有密钥和凭据,包含资源使用者创建的密钥和凭据 | × |
应用管理 | 创建应用接入点 | √ | √ |
场景示例
企业的部门A购买了KMS实例,如果部门B也希望使用KMS实例,企业可以通过资源目录集中管理阿里云账号,然后通过资源共享来共用KMS实例。架构图如下所示:
步骤一:开通资源目录并搭建多账号组织结构
请使用阿里云账号M开通资源目录,阿里云账号M即为资源目录的管理账号。然后创建部门A、部门B两个资源夹,并将阿里云账号A1加入资源夹部门A中,阿里云账号B1、阿里云账号B2加入资源夹部门B中。
步骤二:启用资源目录组织共享
请使用资源目录的管理账号(即阿里云账号M)启用资源目录组织共享功能。启用后,资源所有者(管理账号或成员)可以在资源目录内,将资源共享给整个资源目录及其下的资源夹或成员。更多信息,请参见启用资源目录组织共享。
使用阿里云账号M登录资源共享控制台,在左侧导航栏,选择 。
单击启用,然后在资源共享服务关联角色对话框,单击确定。
系统会自动创建一个名为AliyunServiceRoleForResourceSharing的服务关联角色,用于获取资源目录的组织信息。更多信息,请参见资源共享服务关联角色。
步骤三:资源所有者共享KMS实例
将KMS实例共享给其他阿里云账号时,建议单独创建共享单元以控制资源使用者范围,避免将该共享单元授权给过多的资源使用者。
要共享的KMS实例必须是已启用状态。
共享KMS实例支持在密钥管理服务控制台操作,也支持在资源共享控制台操作。
在密钥管理服务控制台操作
使用阿里云账号A1登录密钥管理服务控制台,在顶部菜单栏选择地域信息后,在左侧导航栏单击实例管理。
在实例管理页面,根据您的KMS实例类型,单击软件密钥管理页签或硬件密钥管理页签。
定位到目标KMS实例,单击操作列的资源共享。
在添加到共享单元面板中单击新建,创建完成后单击确定。
配置项
说明
共享单元名称
自定义共享单元的名称。格式为中文字符、英文大小写字符、数字及特殊字符(“.”、“_”或“-”),最长不允许超过50个字符。
关联权限
资源使用者的权限。具体的权限详情,请在资源共享控制台上的权限库中查看。
AliyunRSDefaultPermissionKMSInstance(推荐)
AliyunRSPermissionKMSInstanceReadWrite(已废弃):如果您之前使用该权限,可以继续正常使用。
添加资源使用者
重要将KMS实例共享给资源使用者,会扣除KMS实例的访问管理数量额度,因此在创建共享单元时,建议您将资源使用者的类型选择为阿里云账号或资源夹(组织单元),避免共享给资源目录组织。
支持如下三种类型:
阿里云账号:输入使用者ID(即阿里云账号UID),单击添加。将KMS实例共享给该阿里云账号。本文示例采用该方式。
资源目录组织:将KMS实例共享给该资源目录下的所有成员账号。如果该资源目录后续新增了成员账号,该KMS实例会自动共享给新的成员账号。
资源夹(组织单元):输入资源夹ID(以fd开头,例如fd-gLh1HJ****),将KMS实例共享给该资源夹下的所有成员账号。如果该资源夹后续新增了成员账号,该KMS实例会自动共享给新的成员账号。
如果您在创建共享单元时未指定资源使用者,也可以在修改共享单元时指定。
KMS实例共享成功后,在KMS实例ID下方会显示共享中。资源使用者登录密钥管理服务控制台,可以查看到该KMS实例,在KMS实例ID下方会显示来自共享。
在资源共享控制台操作
具体操作,请参见仅在资源目录内共享资源。
步骤五:资源使用者使用KMS实例
使用密钥
创建密钥。具体操作,请参见创建密钥。
使用密钥进行密码运算操作。
云产品服务端加密:详细内容,请参见云产品集成KMS加密概述和支持集成KMS加密的云产品。
自建应用加密:详细内容,请参见SDK参考。
使用凭据
更多操作
在共享单元中添加或移除资源使用者
在密钥管理服务控制台操作
登录密钥管理服务控制台,在顶部菜单栏选择地域信息后,在左侧导航栏单击实例管理。
在实例管理页面,根据您的KMS实例类型,单击软件密钥管理页签或硬件密钥管理页签。
定位到目标KMS实例,单击操作的资源共享。
在添加到共享单元面板选择共享单元,单击资源使用者的编辑添加或移除资源使用者,然后单击确定。
在资源共享控制台操作
具体操作,请参见修改共享单元。
解除KMS实例的共享关系
解除共享关系前,资源使用者需要删除自己创建的所有密钥和凭据,请确认密钥或凭据已不再使用,否则会导致您的业务不可用。
仅支持在资源共享控制台操作。具体操作,请参见删除共享单元。