为了确保敏感配置(数据源、Token、用户名和密码等)的安全性,降低用户配置的泄露风险,MSE提供了创建加密配置的功能。

前提条件

注意 为保障数据安全性,MSE使用阿里云 密钥管理服务(KMS)来加解密,MSE为您创建的KMS密钥是免费的。KMS服务API调用每位用户每个月有20000次免费额度,您在MSE上每次变更会调用2~3次API,因此免费额度可以支持您每月进行6000多次变更。当KMS API使用量超出后,将会收取0.6元/万次的费用。

创建加密配置

按照以下步骤在MSE控制台创建加密配置。

说明 使用MSE加解密服务必须使用阿里云账号或RAM用户的AccessKey。
  1. 登录MSE管理控制台
  2. 在左侧导航栏选择注册配置中心 > 实例列表
  3. 实例列表页面单击具体实例名称。
  4. 在实例基础信息页面左侧菜单栏选择配置管理 > 配置列表
  5. 命名空间选择目标的空间,单击创建配置
  6. 创建配置面板打开数据加密开关。
    说明 首次使用此功能时,必须开通密钥管理服务,并授权MSE使用您的密钥管理服务进行加解密,因为MSE数据加密功能依赖密钥管理服务为配置加密。
    1. 数据加密区域检查是否已开通KMS。若还没有,请先开通KMS服务。
    2. 刷新创建配置面板,选择KMS加密方式。
      数据加密方式选择
      参数 描述
      KMS加密 直接调用KMS服务对配置进行加解密,加解密数据的大小不超过4 KB,最大不超过6 KB,对特殊符号如and(&)会解密错误,不推荐使用。
      KMS AES-128加密 使用KMS的信封加解密方法,配置内容可以超过6 KB,最大不超过100 KB。配置内容的明文数据不会传输到KMS系统,安全性更高,推荐使用。请根据您的业务需求进行选择。
      KMS AES-256加密 使用KMS的信封加解密方法,配置内容可以超过6 KB,最大不超过100 KB。配置内容的明文数据不会传输到KMS系统,安全性更高,推荐使用。请根据您的业务需求进行选择。
  7. 配置格式区域选择一种配置格式,并在配置内容文本框中输入配置内容,然后单击发布

使用加密配置

按照以下步骤获取使用加密配置的示例代码并初始化参数。

  1. 登录MSE管理控制台
  2. 在左侧导航栏选择注册配置中心 > 实例列表
  3. 实例列表页面单击具体实例名称。
  4. 在实例基础信息页面左侧菜单栏选择配置管理 > 配置列表
  5. 选择命名空间和目标配置,单击配置的Data ID,然后在配置详情页面单击示例代码
  6. 在代码中添加如下依赖。
    <dependency>
        <groupId>com.alibaba.nacos</groupId>
        <artifactId>nacos-client</artifactId>
        <version>1.4.2</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba.nacos</groupId>
        <artifactId>nacos-client-mse-extension</artifactId>
        <version>1.0.1</version>
    </dependency>
  7. 根据您使用的框架类型,请选择正确的代码进行配置。
    • 如果您是直接使用Nacos Clien框架获取配置,则需要配置如下示例代码。

      请将代码中的serverAddraccessKeysecretKeyregionIddataid以及group参数替换成实际业务的参数。

      try {
                  Properties properties = new Properties();
                  properties.put("serverAddr", "mse-xxxxxx-p.nacos-ans.mse.aliyuncs.com");
                  properties.put("accessKey", "xxxxxxxxxxxxxx");
                  properties.put("secretKey", "xxxxxxxxxxxxxx");
                  properties.put("keyId", "alias/acs/mse");
                  properties.put("regionId", "cn-hangzhou");
                  ConfigService configService = NacosFactory.createConfigService(properties);
                  System.out.println("content:::"+configService.getConfig("cipher-kms-aes-256-dataid", "group", 6000));
              } catch (Exception e) {
                  e.printStackTrace();
              }
    • 如果您使用的是Spring Cloud Nacos Config框架获取配置,则需要添加如下的配置,并且通过JVM系统参数-D或者环境变量配置MSE集群所在的地域,例如杭州地域为-Dkms_region_id=cn-hangzhou
      spring.cloud.nacos.config.server-addr=mse-xxxxxxx-p.nacos-ans.mse.aliyuncs.com:8848
      spring.cloud.nacos.config.name=cipher-kms-aes-256-dataid
      spring.cloud.nacos.config.group=group
      spring.cloud.nacos.config.access-key=xxxxxxxxxxxxxxx
      spring.cloud.nacos.config.secret-key=xxxxxxxxxxxxxxxxxxxx
    说明 使用阿里云账号的AccessKey ID和AccessKey Secret可直接获取配置数据,但建议您填写RAM用户的AccessKey ID和AccessKey Secret。如果使用RAM用户的AccessKey ID和AccessKey Secret,则必须提前为其授予 AliyunACMFullAccessAliyunKMSCryptoAccess权限。如需进一步了解,请参见 RAM用户

更多信息