多账号共享KMS实例

企业有多个阿里云账号时,您可以将账号加入资源目录统一管理,然后通过资源共享实现多个阿里云账号使用同一个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实例在华东1(杭州)地域,资源使用者创建的密钥只能用于华东1(杭州)地域的云产品服务端加密。

  • 配额限制

    共享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中。

  1. 使用管理账号登录资源管理控制台

  2. 开通资源目录。

    具体操作,请参见开通资源目录

  3. 创建资源夹,搭建企业的组织结构。

    具体操作,请参见创建资源夹

  4. 创建成员,或者邀请已有的阿里云账号,并将这些成员移动到对应的资源夹下。

    具体操作,请参见创建成员邀请阿里云账号加入资源目录移动成员

步骤二:启用资源目录组织共享

请使用资源目录的管理账号(即阿里云账号M)启用资源目录组织共享功能。启用后,资源所有者(管理账号或成员)可以在资源目录内,将资源共享给整个资源目录及其下的资源夹或成员。更多信息,请参见启用资源目录组织共享

  1. 使用阿里云账号M登录资源共享控制台,在左侧导航栏,选择资源共享 > 设置

  2. 单击启用,然后在资源共享服务关联角色对话框,单击确定

    系统会自动创建一个名为AliyunServiceRoleForResourceSharing的服务关联角色,用于获取资源目录的组织信息。更多信息,请参见资源共享服务关联角色

步骤三:资源所有者共享KMS实例

重要
  • 将KMS实例共享给其他阿里云账号时,建议单独创建共享单元以控制资源使用者范围,避免将该共享单元授权给过多的资源使用者。

  • 要共享的KMS实例必须是已启用状态。

共享KMS实例支持在密钥管理服务控制台操作,也支持在资源共享控制台操作。

在密钥管理服务控制台操作

  1. 使用阿里云账号A1登录密钥管理服务控制台,在顶部菜单栏选择地域信息后,在左侧导航栏单击实例管理

  2. 实例管理页面,根据您的KMS实例类型,单击软件密钥管理页签或硬件密钥管理页签。

  3. 定位到目标KMS实例,单击操作列的资源共享

  4. 添加到共享单元面板中单击新建,创建完成后单击确定

    配置项

    说明

    共享单元名称

    自定义共享单元的名称。格式为中文字符、英文大小写字符、数字及特殊字符(“.”、“_”或“-”),最长不允许超过50个字符。

    关联权限

    资源使用者的权限。具体的权限详情,请在资源共享控制台上的权限库中查看。

    • AliyunRSDefaultPermissionKMSInstance(推荐)

    • AliyunRSPermissionKMSInstanceReadWrite(已废弃):如果您之前使用该权限,可以继续正常使用。

    添加资源使用者

    重要

    将KMS实例共享给资源使用者,会扣除KMS实例的访问管理数量额度,因此在创建共享单元时,建议您将资源使用者的类型选择为阿里云账号或资源夹(组织单元),避免共享给资源目录组织。

    支持如下三种类型:

    • 阿里云账号:输入使用者ID(即阿里云账号UID),单击添加。将KMS实例共享给该阿里云账号。本文示例采用该方式。

    • 资源目录组织:将KMS实例共享给该资源目录下的所有成员账号。如果该资源目录后续新增了成员账号,该KMS实例会自动共享给新的成员账号。

    • 资源夹(组织单元):输入资源夹ID(以fd开头,例如fd-gLh1HJ****),将KMS实例共享给该资源夹下的所有成员账号。如果该资源夹后续新增了成员账号,该KMS实例会自动共享给新的成员账号。

    如果您在创建共享单元时未指定资源使用者,也可以在修改共享单元时指定。

KMS实例共享成功后,在KMS实例ID下方会显示共享中。资源使用者登录密钥管理服务控制台,可以查看到该KMS实例,在KMS实例ID下方会显示来自共享

在资源共享控制台操作

具体操作,请参见仅在资源目录内共享资源

步骤五:资源使用者使用KMS实例

使用密钥

  1. 创建密钥。具体操作,请参见创建密钥

  2. 使用密钥进行密码运算操作。

使用凭据

  1. 创建凭据。具体操作,请参见创建凭据

  2. 通过SDK获取凭据值。详细内容,请参见SDK参考

更多操作

在共享单元中添加或移除资源使用者

  • 在密钥管理服务控制台操作

    1. 登录密钥管理服务控制台,在顶部菜单栏选择地域信息后,在左侧导航栏单击实例管理

    2. 实例管理页面,根据您的KMS实例类型,单击软件密钥管理页签或硬件密钥管理页签。

    3. 定位到目标KMS实例,单击操作资源共享

    4. 添加到共享单元面板选择共享单元,单击资源使用者编辑添加或移除资源使用者,然后单击确定

  • 在资源共享控制台操作

    具体操作,请参见修改共享单元

解除KMS实例的共享关系

重要

解除共享关系前,资源使用者需要删除自己创建的所有密钥和凭据,请确认密钥或凭据已不再使用,否则会导致您的业务不可用。

仅支持在资源共享控制台操作。具体操作,请参见删除共享单元