全部产品
Search
文档中心

加密服务:配置KMS硬件密钥管理实例的密码机集群

更新时间:Dec 05, 2023

使用密钥管理服务KMS(Key Management Service)的硬件密钥管理实例时,需要连接加密服务密码机集群,由密码机集群实现数据自动同步、负载均衡以及数据高可用性。本文介绍如何配置KMS硬件密钥管理实例的密码机集群。

背景信息

KMS硬件密钥管理实例可以对客户端应用或云产品服务端数据进行加密,避免文件或敏感数据(用户手机号码、身份证号、银行卡号等)被攻击或者在传输过程中被泄露。

通过KMS实例连接加密服务密码机集群的方式,具有以下优势:

  • 降低使用加密服务的复杂度,为您提供稳定、易用的上层密钥管理途径和密码计算服务。

  • 将加密服务密码机集群与阿里云其他云服务集成,为云服务加密提供更高的安全性和可控制性。支持的阿里云服务,请参见支持服务端集成加密的云服务

密码机支持的地域和可用区

地域

地域ID

可用区

中国香港

cn-hongkong

可用区B、可用区C

新加坡

ap-southeast-1

可用区A、可用区B

沙特(利雅得)

me-central-1

可用区A、可用区B

马来西亚(吉隆坡)

ap-southeast-3

可用区A、可用区B

场景示例

您在中国香港地域创建了1个VPC并搭建了自建应用,希望通过硬件密钥管理实例加解密敏感数据或文件,可以搭建如下网络架构并进行资源规划。

KMS&加密服务最佳实践架构图

资源类型

资源个数

说明

示例名称

交换机

2

两个交换机的可用区不同,且两个可用区与密码机实例的两个可用区相同。

  • 交换机1(可用区A)

  • 交换机2(可用区B)

密码机实例

2个或以上,本文以2个为例介绍。

两个密码机实例的可用区不同,且两个可用区与交换机的两个可用区相同。

  • 密码机实例1(可用区A)

  • 密码机实例2(可用区B)

KMS硬件密钥管理实例

1

与您的自建应用在同一个VPC。

KMS实例1

ECS实例

1

ECS实例的操作系统为CentOS 8或 Alibaba Cloud Linux,且ECS实例与主密码机实例在同一个VPC子网网段。本文示例选定密码机实例1为主密码机。

重要

ECS实例用于连接主密码机进行相关配置,您也可以使用本地终端进行配置。本文以ECS实例为例进行介绍。如果使用本文终端,请通过VPN或物理专线使本地终端连接到密码机实例所属的VPC网络。具体操作,请参见客户端远程连接VPC通过物理专线实现本地IDC与云上VPC互通

ECS实例1

说明

本文的示例名称仅为了便于您理解,在实际配置过程中请以控制台为准。

使用限制

  • VPC、交换机、密码机实例、KMS硬件密钥管理实例、ECS实例必须属于同一个地域。

    重要

    建议您在购买前,在购买页充分确认该地域是否有不同可用区的密码机,避免只有1个可用区有密码机。

  • 两个交换机实例的可用区,需要和密码机实例的可用区相同。例如两个交换机实例的可用区为可用区A、可用区B,两个密码机实例的可用区也需要为可用区A、可用区B。

    重要

    由于华东1(杭州)无法购买可用区A的交换机,如果密码机实例是可用区A,您可创建可用区J、可用区G的交换机。该密码机实例支持绑定可用区J、可用区G的交换机。

前提条件

  • 已创建VPC并在VPC内创建了两个不同可用区的交换机。具体操作,请参见创建专有网络和交换机

  • 已创建CentOS 8或 Alibaba Cloud Linux操作系统的ECS实例,且ECS实例与主密码机实例在同一个VPC子网网段。具体操作,请参见使用向导创建实例

步骤一:购买密码机实例

购买密码机实例1和密码机实例2,密码机实例1的可用区为可用区A,密码机实例2的可用区为可用区B。

  1. 登录加密服务管理控制台,在顶部菜单栏,选择目标地域。

  2. 实例列表页面,单击创建密码机实例

  3. 在密码机购买页面,参考下表完成各项配置后单击立即购买,仔细阅读并勾选服务协议,单击去支付完成购买。

    配置项

    说明

    示例值

    区域

    选择密码机实例的地域。支持的地域,请参见支持的地域和可用区

    重要

    密码机实例只能在VPC中使用,且必须与您的VPC、KMS硬件密钥管理实例的地域相同。

    中国香港

    可用区

    选择密码机实例的可用区。

    重要

    您购买的两个密码机实例的可用区,需要和VPC内两个交换机的可用区相同。

    可用区A

    购买数量

    需要购买的密码机实例数量。选择1

    1

    购买时长

    购买的有效服务时间。建议您选择与KMS硬件密钥管理实例相同的购买时长。

    说明

    建议您购买时选择到期自动续费,防止加密服务到期未及时续费而导致的密钥永久性丢失。您选择到期自动续费后,阿里云会在服务到期前9个自然日从您购买密码机时使用的支付账户自动扣款。

    1年

  4. 购买另外一个可用区的密码机实例。

    参考步骤3的配置,除可用区不同外(本文示例中此处为可用区B),其他配置项取值相同。

    配置成功后,您可以在实例列表页面查看到两个密码机实例。

步骤二:启用并配置密码机实例

配置密码机实例1和密码机实例2的网络信息,使KMS硬件密钥管理实例和密码机集群在同一个VPC内。

  1. 实例列表页面,定位到已创建的密码机实例,单击操作列的启用

  2. 密码机实例配置对话框,配置密码机实例,然后单击确定

    配置项

    说明

    示例值

    所属的VPC子网

    选择密码机实例需要绑定的VPC,和KMS硬件密钥管理实例所属的VPC必须保持一致。

    vpc-wz95******

    所属的VPC网络ID

    选择密码机实例所属的VPC子网IP,即选择当前密码机实例所在可用区的交换机。

    vsw-wz9h******(交换机1)

    分配私网IP地址

    为密码机实例分配一个私网IP地址。

    重要
    • 私网IP地址必须是所属的VPC子网网段中的IP地址,否则配置将会失败。

    • 末位为253、254、255的IP地址为系统保留地址,请勿使用。

    192.168.XX.XX

    设置密码机实例白名单

    本场景下无需配置。

    由于在后续操作中会设置密码机集群的白名单,而集群的白名单优先级高于集群中密码机实例的白名单, 因此本场景下无需配置。关于如何配置集群白名单,请参见步骤三:创建并激活集群

    无需配置

  3. 启用另外一个密码机实例,并参照步骤2配置。

    示例值如下:所属的VPC网络ID为vsw-wz96******(交换机2),分配私网IP地址为192.169.XX.XX,其他配置项取值和步骤2相同。

    配置成功后,密码机实例的状态变为已启用

步骤三:创建并激活集群

集群即将处于同一地域不同可用区、用于相同业务的一组密码机实例关联起来,进行统一管理,为业务应用提供密码计算的高可用性、负载均衡以及横向扩展的能力。

选定密码机实例1为主密码机,创建并激活集群,并添加密码机实例2到集群中。

  1. 实例列表页面,定位到主密码机实例,单击操作列的创建集群

  2. 创建并激活集群面板,完成①创建集群,然后单击下一步

    配置项

    说明

    示例值

    集群名称

    自定义集群的名称。名称不能重复且长度不允许超过24个字符。

    custer1

    设置集群访问白名单

    允许访问集群的IP地址。

    您可以输入单个IP地址或网段地址,每行输入1条数据,最多可以输入10条数据。

    在本文示例中请确保如下IP均已添加到白名单中。

    • 集群中各密码机实例所在交换机的网段

      例如,集群中密码机实例所属的VPC子网(交换机)网段分别为172.16.1.0/24和172.16.2.0/24,则在编辑框中增加输入两行,内容分别为:172.16.1.0/24和172.16.2.0/24。

    • ECS实例的私网IP

      例如,ECS实例的私网IP为172.16.3.0,则在编辑框中增加输入一行,内容为:172.16.3.0。

    • KMS实例绑定的交换机的网段

      如果此时还未购买KMS实例,请在购买并启用KMS实例后,再为集群添加该白名单。

    重要
    • 集群的白名单优先级高于集群中密码机实例的白名单。例如,您设置的集群中密码机实例的白名单为10.10.10.10,集群的白名单为172.16.0.1,则您只能通过172.16.0.1访问集群中的密码机实例。

    • 不支持配置为0.0.0.0/0(放行所有来源IP)。

      基于安全考虑,不推荐您放行所有来源IP。如果因临时测试等原因确实需要放行所有来源IP,不配置白名单即可。

    172.16.1.0/24

    172.16.2.0/24

    172.16.3.0

    指定另外一个可用区的交换机

    配置另外一个密码机实例绑定的交换机。

    vsw-wz96******

  3. 创建并激活集群面板,完成②激活集群。

    1. 导入集群证书。

      1. 导入集群证书区域,单击集群CSR证书下载CSR证书文件,然后上传到ECS实例上保存。例如,保存为cluster.csr。

      2. 创建私钥,并根据提示设置私钥口令。例如,保存为issuerCA.key。

        openssl genrsa -aes256 -out issuerCA.key 2048
      3. 创建自签名证书。例如,保存为issuerCA.crt。

        openssl req -new -x509 -days 3652 -key issuerCA.key -out issuerCA.crt
      4. 签署集群CSR证书,颁发的集群证书存储在cluster.crt文件中。

        说明

        该步骤会使用到cluster.csr、issuerCA.key、issuerCA.crt文件。

        openssl x509 -req -in cluster.csr -days 3652 -CA issuerCA.crt -CAkey issuerCA.key -set_serial 01 -out cluster.crt
      5. 返回加密服务管理控制台,导入集群证书并单击提交

        • 请输入签发者证书(PEM编码)区域,输入issuerCA.crt文件的内容。

        • 请输入签发集群证书(PEM编码)区域,输入cluster.crt文件的内容。

    2. 初始化主密码机实例。

      步骤

      说明

      步骤1:下载密码机实例管理工具。

      重要

      密码机实例管理工具仅支持安装在Linux操作系统。

      选择如下方式之一下载工具:

      • 下载密码机实例管理工具

      • 执行如下命令下载密码机实例管理工具,该操作需要您的ECS服务器连接公网。

        wget -O hsm-client-v2.03.15.10-1.x86_64.rpm 'https://yundun-hsm4.oss-ap-southeast-1.aliyuncs.com/hsm-client-v2.03.15.10-1.x86_64.rpm'
      • 实例列表页面,找到目标密码机实例,通过单击密码机实例的规格列信息,然后单击下载密码机实例管理工具

      • 激活集群页面,单击下载密码机实例管理工具

      步骤2:安装密码机管理工具。

      执行如下命令:将程序和配置文件安装在/opt/hsm目录下。

      sudo yum install -y hsm-client-v2.03.15.10-1.x86_64.rpm

      步骤3:修改客户端配置文件。

      在密码机管理工具的安装目录下,修改/opt/hsm/etc/hsm_mgmt_tool.cfg文件中的servers配置项。

      • name、hostname修改为主密码机的私有IP地址。

      • owner_cert_path修改为issuerCA.crt的文件路径。

      hsm_mgmt_tool.cfg文件示例

      {

      "servers": [

      {

      "name" : "172.16.XX.XX",

      "hostname" : "172.16.XX.XX",

      "port" : 2225,

      "certificate": "/opt/hsm/etc/client.crt",

      "pkey": "/opt/hsm/etc/client.key",

      "CAfile": "",

      "CApath": "/opt/hsm/etc/certs",

      "ssl_ciphers": "",

      "server_ssl" : "yes",

      "enable" : "yes",

      "owner_cert_path":"<issuerCA.crt file path>"

      }],

      "scard": {

      "enable": "no",

      "port": 2225,

      "ssl": "no",

      "ssl_ciphers": "",

      "certificate": "cert-sc",

      "pkey": "pkey-sc",

      }

      }

      步骤4:登录主密码机并查看用户列表。

      1. 通过以下命令登录主密码机。

        /opt/hsm/bin/hsm_mgmt_tool /opt/hsm/etc/hsm_mgmt_tool.cfg
      2. 执行listUsers命令显示用户列表。

        cloudmgmt>listUsers
        Users on server 0(172.16.XX.XX):
        Number of users found:2
        
            User Id            User Type          User Name                     MofnPubKey       LoginFailureCnt            2FA
                 1             PRECO          admin                                       NO               0                     NO
                 2             AU             app_user                                    NO               0                     NO

      步骤5:将PRECO用户改为CO用户。

      1. 执行loginHSM命令并以PRECO身份登录加密机。

        server0>loginHSM PRECO admin password
        loginHSM success
      2. 执行changePswd命令修改PRECO用户的密码,当您更改密码后,PRECO用户将成为 CO 用户。

        cloudmgmt>changePswd PRECO admin <NewPassword>
        
        *************************CAUTION********************************
        This is a CRITICAL operation, should be done on all nodes in the
        cluster. Cav server does NOT synchronize these changes with the
        nodes on which this operation is not executed or failed, please
        ensure this operation is executed on all nodes in the cluster.
        ****************************************************************
        
        Do you want to continue(y/n)?y
        Changing password for admin(PRECO) on 1 nodes
      3. 通过listUsers命令查看用户列表,验证PRECO用户是否更改为CO用户。

        cloudmgmt>listUsers
        Users on server 0(172.16.XX.XX):
        Number of users found:2
        
            User Id            User Type          User Name                     MofnPubKey       LoginFailureCnt            2FA
                 1             CO             admin                                       NO               0                     NO
                 2             AU             app_user                                    NO               0                     NO

      步骤6:创建密码机操作员(CU用户)

      警告

      请您先创建CU用户,再将子密码机添加到集群,否则创建的CU用户不会自动同步至子密码机。

      为了确保安全性,KMS硬件密钥管理实例通过用户名为kmsuser的CU用户身份访问密码机集群。

      1. 使用密码机实例管理工具登录主密码机,执行createUser命令创建一个名为kmsuser的Crypto User(CU)用户。

        createUser CU kmsuser <enter password>
        重要

        请您牢记kmsuser的初始密码,在后续启用KMS硬件密钥管理实例时会用到。

      2. 执行listUsers命令,查看CU用户是否已经创建成功。

        cloudmgmt>listUsers
        Users on server 0(172.16.XX.XX):
        Number of users found:3
        
            User Id         User Type       User Name                  MofnPubKey    LoginFailureCnt         2FA
                 1          CO          admin                                    NO               0               NO
                 2          AU          app_user                                 NO               0               NO
                 3          CU          kmsuser                                  NO               0               NO
      3. 执行quit命令退出管理工具。

        cloudmgmt>quit
        disconnecting from servers, please wait...

      步骤7:验证主密码机状态

      返回到加密服务控制台,在激活集群页面单击update图标刷新密码机状态,然后单击下一步

  4. ③添加加密机页面,根据提示添加子密码机到集群,然后单击完成

    说明

    当待添加的密码机实例状态是已初始化时,无法添加到集群,请您提交工单联系技术支持人员。

    配置成功后,在密码机实例的集群列,您可以看到两个密码机实例的状态分别为主密码机和子密码机。集群会自动将主密钥数据同步到子密码机,例如将主密码机中的kmsuser同步至子密码机。您只需查看集群中两台密码机实例的摘要信息是否一致,如果摘要信息不一致请手动同步集群,若摘要信息仍不一致,请通过工单联系技术支持人员。查看实例摘要信息

后续配置

请前往密钥管理服务控制台购买KMS硬件密钥管理实例,并完成相关配置。具体操作,请参见购买和启用KMS实例密钥服务快速入门

说明

配置KMS硬件密钥管理实例时,会涉及到本文配置的如下信息,因此请您妥善保存。

  • 密码机集群的名称

  • kmsuser的初始密码

相关文档

密钥服务概述