日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

配置加密

配置中心一般都以明文格式存儲配置數據。為了提升敏感數據(如數據源、Token、用戶名和密碼等)的安全性,MSE通過集成KMS的密鑰服務,提供了配置數據加解密能力,從而降低敏感數據的泄露風險。

前提條件

創建加密配置

按照以下步驟在MSE控制臺創建加密配置。

說明

使用MSE加解密服務必須使用阿里云賬號或RAM用戶的AccessKey。

  1. 登錄MSE注冊配置中心管理控制臺,并在頂部菜單欄選擇地域。

  2. 在左側導航欄,選擇注冊配置中心 > 實例列表

  3. 實例列表頁面,單擊目標實例名稱。

  4. 在左側導航欄,選擇配置管理 > 配置列表

  5. 配置列表頁面左上角,選擇目標命名空間,然后單擊創建配置

  6. 創建配置面板,打開數據加密開關。

    1. 數據加密區域,檢查是否已開通KMS 加密。若未開通,請先開通KMS服務。

    2. 數據加密區域,如果您是2022年03月31日之后新開通的KMS服務,則需要選擇加密所需的密鑰KeyId(可在阿里云KMS創建并使用),并綁定密鑰KeyId到此Nacos實例上,之后所有的配置加密都會使用此密鑰。

      重要

      請勿刪除或禁用綁定到此Nacos的密鑰,否則加密配置無法解密。

    3. 刷新創建配置面板,選擇KMS 加密方式。

      參數

      描述

      KMS AES-256 加密

      使用KMS的信封加解密方法,256位密鑰,加密強度高,加密配置內容最大不超過50KB。配置內容的明文數據不會傳輸到KMS系統,安全性更高,推薦使用。請根據您的業務需求進行選擇。

      KMS AES-128 加密

      128位密鑰,加密強度中等,加密配置內容最大不超過50KB。

      KMS加密

      不推薦使用,特殊字符存在兼容性問題(例如對于&符號會被轉義為\u0026),加密配置內容最大不超過6KB。

      說明

      對于新版本kms3.0的用戶展示的是KMS AES-256加密。出于歷史兼容考慮,對于舊版本支持kms1.0的用戶展示3種加密方式,但普通KMS加密KMS AES-128 加密不推薦使用。

  7. 配置格式區域,選擇一種配置格式,并在右側配置內容文本框中輸入配置內容,然后單擊發布

通過KMS 1.0使用加密配置

Nacos SDK For Java

  1. 登錄MSE注冊配置中心管理控制臺,并在頂部菜單欄選擇地域。

  2. 在左側導航欄,選擇注冊配置中心 > 實例列表

  3. 實例列表頁面,單擊目標實例名稱。

  4. 在左側導航欄,選擇配置管理 > 配置列表

  5. 選擇命名空間,單擊目標配置的Data ID,然后在配置詳情頁面,單擊示例代碼頁簽。

  6. 使用加密配置。

    通過RAM角色使用加密配置

    1. 在代碼中添加如下依賴。

      <dependency>
          <groupId>com.alibaba.nacos</groupId>
          <artifactId>nacos-client</artifactId>
          <version>1.4.3</version>
      </dependency>
      <dependency>
          <groupId>com.alibaba.nacos</groupId>
          <artifactId>nacos-client-mse-extension</artifactId>
          <version>1.0.4</version>
      </dependency>

      版本說明

      重要

      加解密插件版本與Nacos-client版本搭配錯誤,會存在穩定性風險,建議使用推薦適配版本。

      Nacos-client大版本

      Nacos-client版本

      推薦插件版本

      1.x

      1.4.3版本及以上

      1.0.2版本及以上

      2.x

      2.1.1版本及以上

      1.0.4版本及以上

    2. 根據您使用的框架類型,請選擇正確的代碼進行配置。

      • 如果您是直接使用Nacos Client框架獲取配置,則需要配置如下示例代碼。

        請將代碼中的serverAddrramRoleNameregionIddataid以及group參數替換成實際業務的參數。

        try {
                Properties properties = new Properties();
                properties.put("serverAddr", "mse-xxxxxx-p.nacos-ans.mse.aliyuncs.com");
                properties.put("ramRoleName", "<ECS/ACK綁定的RAM角色>");
                properties.put("keyId", "alias/acs/mse"); //kmsv1.0版本這里是固定值
                properties.put("kms_region_id", "cn-hangzhou");
                properties.put("kmsVersion", "v1.0");
                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框架獲取配置,則需要添加如下的配置。

        kms_region_id=cn-hangzhouspring.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.ramRoleName=<ECS/ACK綁定的RAM角色>
        spring.cloud.nacos.config.kms_region_id=cn-hangzhou
        spring.cloud.nacos.config.keyId=alias/acs/mse
        spring.cloud.nacos.config.kmsVersion=v1.0
      說明

      如果使用RAM角色配置加密,則必須提前為該RAM角色授予AliyunACMFullAccessAliyunKMSFullAccess權限。更新信息,請參見為RAM角色授權

    通過RAM用戶使用加密配置

    1. 在代碼中添加如下依賴。

      <dependency>
          <groupId>com.alibaba.nacos</groupId>
          <artifactId>nacos-client</artifactId>
          <version>1.4.3</version>
      </dependency>
      <dependency>
          <groupId>com.alibaba.nacos</groupId>
          <artifactId>nacos-client-mse-extension</artifactId>
          <version>1.0.4</version>
      </dependency>

      版本說明

      重要

      加解密插件版本與Nacos-client版本搭配錯誤,會存在穩定性風險,建議使用推薦適配版本。

      Nacos-client大版本

      Nacos-client版本

      推薦插件版本

      1.x

      1.4.3版本及以上

      1.0.2版本及以上

      2.x

      2.1.1版本及以上

      1.0.3版本

    2. 根據您使用的框架類型,請選擇正確的代碼進行配置。

      • 如果您是直接使用Nacos Client框架獲取配置,則需要配置如下示例代碼。

        請將代碼中的serverAddraccessKeysecretKeyregionIddataid以及group參數替換成實際業務的參數。

        說明

        微服務引擎的AccessKey ID和AccessKey Secret的環境變量名為MSE_AK、MSE_SK。

        try {
                Properties properties = new Properties();
                properties.put("serverAddr", "mse-xxxxxx-p.nacos-ans.mse.aliyuncs.com");
                properties.put("accessKey", "MSE_AK");
                properties.put("secretKey", "MSE_SK");
                properties.put("keyId", "alias/acs/mse");
                properties.put("kms_region_id", "cn-hangzhou");
                properties.put("kmsVersion", "v1.0");
                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=MSE_AK
        spring.cloud.nacos.config.secret-key=MSE_SK
        spring.cloud.nacos.config.kms_region_id=cn-hangzhou
        spring.cloud.nacos.config.keyId=alias/acs/mse
        spring.cloud.nacos.config.kmsVersion=v1.0
      說明

      使用阿里云賬號的AccessKey ID和AccessKey Secret可直接獲取配置數據,但建議您填寫RAM用戶的AccessKey ID和AccessKey Secret。如果使用RAM用戶配置加密,則必須提前為其授予AliyunACMFullAccessAliyunKMSFullAccess權限。如需進一步了解,請參見RAM用戶

Nacos SDK For Go

通過RAM用戶使用加密配置

按照以下步驟通過RAM用戶獲取使用加密配置的示例代碼并初始化參數。

  1. 登錄MSE注冊配置中心管理控制臺,并在頂部菜單欄選擇地域。

  2. 在左側導航欄,選擇注冊配置中心 > 實例列表

  3. 實例列表頁面,單擊目標實例名稱。

  4. 在左側導航欄,選擇配置管理 > 配置列表

  5. 選擇命名空間,單擊目標配置的Data ID,然后在配置詳情頁面,單擊示例代碼頁簽。選擇GO版本的示例代碼,放在項目工程中。

  6. 使用go get命令下載Nacos Client Go SDK依賴。

    go get -u github.com/nacos-group/nacos-sdk-go/v2@v2.2.5

    版本說明

    加解密插件版本與Nacos-client版本搭配錯誤,會存在穩定性風險,建議使用推薦適配版本。

    插件功能支持

    Nacos-client版本

    KMS 1.0

    v2.0.0版本及以上(推薦最新版本)

  7. 修改Nacos Client的初始化配置。

    請將代碼中的{server - addr}{AK}{SK}參數替換為實際業務的參數,并確保開啟KMS配置加密功能參數OpenKMS: trueKMSVersion: KMSv1

    sc := []constant.ServerConfig{
      {
        IpAddr: "{server - addr}", // 替換為您MSE實例的地址。
        Port:   8848,
      },
    }
    var accessKey = "{AK}" // 替換為您賬號的AK(用于MSE Nacos和KMS鑒權)。
    var secretKey = "{SK}" // 替換為您賬號的SK(用于MSE Nacos和KMS鑒權)。
    
    cc := constant.ClientConfig{
      NamespaceId:         "public", // 命名空間ID。
      OpenKMS:              true, // 開啟使用KMS為配置加密。
      KMSVersion:           KMSv1, // 使用KMS服務1.0版本。
      AccessKey:      accessKey, 
      SecretKey:      secretKey,
      TimeoutMs:           5000,
      NotLoadCacheAtStart: true,
      LogDir:              "/tmp/nacos/log",
      CacheDir:            "/tmp/nacos/cache",
      RotateTime:          "1h",
      MaxAge:              3,
      LogLevel:            "debug",
      RegionId: 						"cn-hangzhou",
    }
    
  8. 發布加密配置。

    keyId:對配置進行加密所使用的KMS密鑰ID,在KMS 1.0模式可忽略此參數。

    configParam := vo.ConfigParam{
          DataId:   "cipher-kms-aes-256-crypt",
          Group:    "default",
          Content:  "cipher-aes-256",
    }
    
    published, err := client.PublishConfig(configParam)
    
    if published && err == nil {
      fmt.Printf("successfully publish: group[%s], dataId[%s], data[%s]\n", configParam.Group, configParam.DataId, configParam.Content)
    } else {
      fmt.Printf("failed to publish: group[%s], dataId[%s], data[%s]\n with error: %s\n",
        configParam.Group, configParam.DataId, configParam.Content, err)
    }

通過KMS 3.0使用加密配置

前提條件

Nacos SDK For Java

  1. 登錄MSE注冊配置中心管理控制臺,并在頂部菜單欄選擇地域。

  2. 在左側導航欄,選擇注冊配置中心 > 實例列表

  3. 實例列表頁面,單擊目標實例名稱。

  4. 在左側導航欄,選擇配置管理 > 配置列表

  5. 選擇命名空間,單擊目標配置的Data ID,然后在配置詳情頁面,單擊示例代碼頁簽。

  6. 使用加密配置。

    通過RAM角色使用加密配置

    1. 在代碼中添加如下依賴。

      <dependency>
          <groupId>com.alibaba.nacos</groupId>
          <artifactId>nacos-client</artifactId>
          <version>1.4.3</version>
      </dependency>
      <dependency>
          <groupId>com.alibaba.nacos</groupId>
          <artifactId>nacos-client-mse-extension</artifactId>
          <version>1.0.4</version>
      </dependency>
      說明

      只支持1.0.4及以上版本的加密插件使用KMS 3.0創建加密配置。

      版本說明

      加解密插件版本與Nacos-client版本搭配錯誤,會存在穩定性風險,建議使用推薦適配版本。

      Nacos-client大版本

      Nacos-client版本

      推薦插件版本

      1.x

      1.4.3版本及以上

      1.0.4版本及以上

      2.x

      2.1.1版本及以上

      1.0.4版本及以上

    2. 根據您使用的框架類型,選擇正確的代碼進行配置。

      • 如果您是直接使用Nacos Client框架獲取配置,則需要配置如下示例代碼。

        請將代碼中的serverAddraccessKeysecretKeyregionIdkms_region_idkmsEndpointkeyId、kmsVersionkmsClientKeyFilePathkmsPasswordKeykmsCaFilePath等參數替換為實際業務的參數。

        try {
                Properties properties = new Properties();
                properties.put("serverAddr", "mse-xxxxxx-p.nacos-ans.mse.aliyuncs.com");
                properties.put("ramRoleName", "<ECS/ACK綁定的RAM角色>");
                properties.put("regionId", "cn-hangzhou");
        
                properties.put("kms_region_id", "cn-hangzhou");
              	properties.put("kmsEndpoint", "kst-hzz6xxxr.cryptoservice.kms.aliyuncs.com");
                properties.put("keyId", "yourKeyIdOrKeyAlias");
              	properties.put("kmsVersion", "v3.0");
                properties.put("kmsClientKeyContent", "clientKey_content");
                // kmsClientKeyContent與kmsClientKeyFilePath設定任意一個即可,kmsClientKeyContent優先級更高。
              	// properties.put("kmsClientKeyFilePath", "clientKey_hangzhou.json");
              	properties.put("kmsPasswordKey", "10xxxd1d");
              	properties.put("kmsCaFileContent", "ca_content");
                // kmsCaFileContent與kmsCaFilePath設定任意一個即可,kmsCaFileContent優先級更高。
              	// properties.put("kmsCaFilePath", "ca.pem");
                ConfigService configService = NacosFactory.createConfigService(properties);
                System.out.println("content:::"+configService.getConfig("cipher-kms-aes-256-dataid", "group", 6000));
            	} catch (Exception e) {
                    e.printStackTrace();
              }

        參數說明

        請確保以下參數設置正確。

        參數

        說明

        serverAddr

        MSE集群的地址。

        ramRoleName

        ECS/ACK綁定的RAM角色。

        regionId

        非必填參數。MSE集群所在的Region。

        kms_region_id

        非必填參數。KMS實例所在的Region,如果為空值,會使用regionId

        kmsEndpoint

        KMS實例VPC地址(地址中不要攜帶HTTPS)。

        keyId

        對配置進行加密所使用的KMS密鑰ID,可在KMS密鑰管理控制臺創建并使用,如無需在程序中修改加密配置,則無需配置。

        kmsVersion

        KMS版本,采用固定值v3.0。

        kmsClientKeyFilePath

        KMS Client Key Content的文件路徑,可在KMS實例創建應用接入點處獲取。

        kmsClientKeyContent

        KMS Client Key Content的內容,可在KMS實例創建應用接入點處獲取。

        說明

        kmsClientKeyContentkmsClientKeyFilePath 設定任意一個即可,kmsClientKeyContent 優先級更高。

        kmsPasswordKey

        KMS Password值,可在KMS實例創建應用接入點處獲取。

        kmsCaFilePath

        KMS 使用的CA證書文件路徑,可在KMS實例創建應用接入點處獲取。

        kmsCaFileContent

        KMS 使用的CA證書內容,可在KMS實例創建應用接入點處獲取。

        說明

        kmsCaFileContentkmsCaFilePath 設定任意一個即可,kmsCaFileContent 優先級更高。

      • 如果您使用的是Spring Cloud Nacos Config框架獲取配置,則需要添加如下配置。

        #設置期望從nacos中加載的配置的dataId以及group,refreshEnabled=true指定支持動態刷新
        spring.config.import=nacos:cipher-kms-aes-256-****.properties?group=****&refreshEnabled=true
        
        ##nacos 相關配置
        
        #設置mse nacos的訪問地址
        spring.cloud.nacos.config.server-addr=mse-*****.nacos-ans.mse.aliyuncs.com
        
        #設置命名空間,如果訪問public公開空間,則不需要設置該參數
        spring.cloud.nacos.config.namespace=5babe1ee-****-****-****-7e7ce892e2ab
        
        #如nacos開啟了鑒權,則需要設置客戶端身份信息
        spring.cloud.nacos.config.ramRoleName=<ECS/ACK綁定的RAM角色>
        
        #如果以ak,sk訪問nacos,因其參數的特殊性,建議以JVM參數或者環境變量方式指定。
        #JVM參數
        -Dspring.cloud.nacos.config.accessKey=LTA*************
        -Dspring.cloud.nacos.config.secretKey=*************
        #環境變量
        spring_cloud_nacos_config_accessKey=LTA*************
        spring_cloud_nacos_config_secretKey=*************
        
        ## kms相關配置
        
        #kms實例的所在region
        spring.cloud.nacos.config.kms_region_id=cn-hangzhou
        
        #kms實例vpc地址,不要攜帶https前綴
        spring.cloud.nacos.config.kmsEndpoint=kst-xxx.cryptoservice.kms.aliyuncs.com
        
        #kms的keyId或者keyId別名,以key或者alias開頭,如不需要通過程序發布加密配置,則無需配置,解密過程不依賴此參數。
        spring.cloud.nacos.config.keyId=alias/***
        
        #kms版本 固定值
        spring.cloud.nacos.config.kmsVersion=v3.0
        
        #kms接入點的客戶端密鑰文件地址
        spring.cloud.nacos.config.kmsClientKeyFilePath=clientKey_hangzhou.json
        
        #kms客戶端密鑰密碼,請設置clientKey_KAAP.***_Password.t密鑰的內容,因其特殊性,建議通過JVM參數或者環境變量指定。
        #JVM參數
        -Dspring.cloud.nacos.config.kmsPasswordKey=10xxxd1d
        #環境變量
        spring.cloud.nacos.config.kmsPasswordKey=10xxxd1d
        spring_cloud_nacos_config_kmsPasswordKey=10xxxd1d
        
        #設置kms接入點的CA文件地址,校驗kmsEndpoint合法性,防止身份冒充。
        spring.cloud.nacos.config.kmsCaFilePath=clientKey_hangzhou.json
        說明
        • 如果您的Nacos實例未開啟RAM鑒權,可忽略MSE_AKMSE_SK的配置。

        • 如果您使用的是Spring Cloud Alibaba 2022.x以及2023.x版本請升級到2023.0.1.2版本。

        • 如果您使用的是Spring Cloud Alibaba 2021.x版本請升級到2021.0.6.1版本。

        • 如果您使用的是Spring Cloud Alibaba 2.x版本請升級到2.2.10版本。

    通過RAM用戶使用加密配置

    1. 在代碼中添加如下依賴。

      <dependency>
          <groupId>com.alibaba.nacos</groupId>
          <artifactId>nacos-client</artifactId>
          <version>1.4.3</version>
      </dependency>
      <dependency>
          <groupId>com.alibaba.nacos</groupId>
          <artifactId>nacos-client-mse-extension</artifactId>
          <version>1.0.4</version>
      </dependency>
      說明

      只支持1.0.3及以上版本的加密插件使用KMS 3.0創建加密配置。

      版本說明

      加解密插件版本與Nacos-client版本搭配錯誤,會存在穩定性風險,建議使用推薦適配版本。

      Nacos-client大版本

      Nacos-client版本

      推薦插件版本

      1.x

      1.4.3版本及以上

      1.0.4版本及以上

      2.x

      2.1.1版本及以上

      1.0.4版本及以上

    2. 根據您使用的框架類型,選擇正確的代碼進行配置。

      • 如果您是直接使用Nacos Client框架獲取配置,則需要配置如下示例代碼。

        請將代碼中的serverAddraccessKeysecretKeyregionIdkms_region_idkmsEndpointkeyId、kmsVersionkmsClientKeyFilePathkmsPasswordKeykmsCaFilePath等參數替換為實際業務的參數。

        try {
                Properties properties = new Properties();
                properties.put("serverAddr", "mse-xxxxxx-p.nacos-ans.mse.aliyuncs.com");
                // AK和SK用于Nacos鑒權,如果您的Nacos實例未開啟RAM鑒權,可忽略AK和SK配置。
                properties.put("accessKey", "MSE_AK"); 
                properties.put("secretKey", "MSE_SK");
                properties.put("regionId", "cn-hangzhou");
        
                properties.put("kms_region_id", "cn-hangzhou");
              	properties.put("kmsEndpoint", "kst-hzz6xxxr.cryptoservice.kms.aliyuncs.com");
                properties.put("keyId", "alias/acs/mse");
              	properties.put("kmsVersion", "v3.0");
                properties.put("kmsClientKeyContent", "clientKey_content");
                // kmsClientKeyContent與kmsClientKeyFilePath設定任意一個即可,kmsClientKeyContent優先級更高。
              	// properties.put("kmsClientKeyFilePath", "clientKey_hangzhou.json");
              	properties.put("kmsPasswordKey", "10xxxd1d");
              	properties.put("kmsCaFileContent", "ca_content");
                // kmsCaFileContent與kmsCaFilePath設定任意一個即可,kmsCaFileContent優先級更高。
              	// properties.put("kmsCaFilePath", "ca.pem");
                ConfigService configService = NacosFactory.createConfigService(properties);
                System.out.println("content:::"+configService.getConfig("cipher-kms-aes-256-dataid", "group", 6000));
            	} catch (Exception e) {
                    e.printStackTrace();
              }

        參數說明

        請確保以下參數設置正確。

        參數

        說明

        serverAddr

        MSE集群的地址。

        accessKey

        您賬號的AccessKey ID。

        說明

        如果您的Nacos實例未開啟RAM鑒權,可忽略此配置。

        secretKey

        您賬號的AccessKey Secret。

        說明

        如果您的Nacos實例未開啟RAM鑒權,可忽略此配置。

        regionId

        非必填參數。MSE集群所在的Region。

        kms_region_id

        非必填參數。KMS實例所在的Region,如果為空值,會使用regionId

        kmsEndpoint

        KMS實例的地址。

        keyId

        對配置進行加密所使用的KMS密鑰id,可在KMS密鑰管理控制臺創建并使用。

        kmsVersion

        KMS版本,采用固定值v3.0。

        kmsClientKeyFilePath

        KMS Client Key Content的文件路徑。可在KMS實例創建實例接入點處獲取。

        kmsClientKeyContent

        KMS Client Key Content的內容。可在KMS實例創建實例接入點處獲取。

        說明

        kmsClientKeyContentkmsClientKeyFilePath 設定任意一個即可,kmsClientKeyContent 優先級更高。

        kmsPasswordKey

        KMS Password值。可在KMS實例創建實例接入點處獲取。

        kmsCaFilePath

        KMS 使用的CA證書文件路徑。可在KMS實例創建實例接入點處獲取。

        kmsCaFileContent

        KMS 使用的CA證書內容。可在KMS實例創建實例接入點處獲取。

        說明

        kmsCaFileContentkmsCaFilePath 設定任意一個即可,kmsCaFileContent 優先級更高。

      • 如果您使用的是Spring Cloud Nacos Config框架獲取配置,則需要添加如下配置。

        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=MSE_AK
        spring.cloud.nacos.config.secret-key=MSE_SK
        spring.cloud.nacos.config.kms_region_id=cn-hangzhou
        spring.cloud.nacos.config.kmsEndpoint=kst-hzz6xxxr.cryptoservice.kms.aliyuncs.com
        spring.cloud.nacos.config.keyId=yourKeyIdOrKeyAlias
        spring.cloud.nacos.config.kmsVersion=v3.0
        spring.cloud.nacos.config.kmsClientKeyFilePath=clientKey_hangzhou.json
        spring.cloud.nacos.config.kmsCaFilePath=clientKey_hangzhou.json
        spring.cloud.nacos.config.kmsPasswordKey=10xxxd1d
        說明

        如果您的Nacos實例未開啟RAM鑒權,可忽略MSE_AKMSE_SK的配置。

Nacos SDK For Go

  1. 登錄MSE注冊配置中心管理控制臺,并在頂部菜單欄選擇地域。

  2. 在左側導航欄,選擇注冊配置中心 > 實例列表

  3. 實例列表頁面,單擊目標實例名稱。

  4. 在左側導航欄,選擇配置管理 > 配置列表

  5. 選擇命名空間,單擊目標配置的Data ID,然后在配置詳情頁面,單擊示例代碼頁簽。選擇GO版本的示例代碼,放在項目工程中。

  6. 使用go get命令下載Nacos Client Go SDK依賴。

    go get -u github.com/nacos-group/nacos-sdk-go/v2@v2.2.5

    版本說明

    加解密插件版本與Nacos-client版本搭配錯誤,會存在穩定性風險,建議使用推薦適配版本。

    插件功能支持

    Nacos-client版本

    KMS 3.0

    v2.2.5版本及以上

  7. 修改Nacos Client的初始化配置。

    請將代碼中的{server - addr}{AK}{SK}、{client_key_content}{password}{endpoint}{ca.pem_content}參數替換為實際業務的參數,并確保已開啟KMS配置加密功能參數OpenKMS: true KMSVersion: KMSv3

    sc := []constant.ServerConfig{
      {
        IpAddr: "{server - addr}", // 替換為您MSE實例的地址。
        Port:   8848,
      },
    }
    var accessKey = "{AK}" // 如果您的Nacos實例未開啟RAM鑒權,可忽略此配置。
    var secretKey = "{SK}" // 如果您的Nacos實例未開啟RAM鑒權,可忽略此配置。
    
    cc := constant.ClientConfig{
      NamespaceId:         "public", // 命名空間Id。
      OpenKMS:              true, // 開啟使用KMS為配置加密。
      KMSVersion:           KMSv3, // 使用KMS服務3.0版本。
      KMSv3Config:          &KMSv3Config{
        ClientKeyContent: "client_key.json"),
        Password:         "password"),
        Endpoint:         "endpoint"),
        CaContent:        "ca.pem"),
      },
      AccessKey:      accessKey, 
      SecretKey:      secretKey,
      TimeoutMs:           5000,
      NotLoadCacheAtStart: true,
      LogDir:              "/tmp/nacos/log",
      CacheDir:            "/tmp/nacos/cache",
      RotateTime:          "1h",
      MaxAge:              3,
      LogLevel:            "debug",
    }
    

    參數說明

    請確保以下參數設置正確。

    參數

    說明

    serverAddr

    MSE集群的地址。

    AK

    您賬號的AccessKey ID。

    說明

    如果您的Nacos實例未開啟RAM鑒權,可忽略此配置。

    SK

    您賬號的AccessKey Secret。

    說明

    如果您的Nacos實例未開啟RAM鑒權,可忽略此配置。

    KMSv3Config.Endpoint

    KMS實例的地址。

    KMSVersion

    KMS版本,采用固定值v3.0。

    KMSv3Config.ClientKeyContent

    KMS Client Key Content的內容。可在KMS實例創建應用接入點處獲取。

    KMSv3Config.Password

    KMS Password值。可在KMS實例創建應用接入點處獲取。

    KMSv3Config.CaContent

    KMS使用的CA證書內容。可在KMS實例創建應用接入點處獲取。

  8. 發布加密配置。

    configParam := vo.ConfigParam{
        DataId:   "cipher-kms-aes-256-crypt",
        Group:    "default",
        Content:  "cipher-aes-256",
        KmsKeyId: "key-xxx",  // 對配置進行加密所使用的KMS密鑰Id,可在KMS密鑰管理控制臺創建并使用。
    }
    
    published, err := client.PublishConfig(configParam)
    
    if published && err == nil {
    	fmt.Printf("successfully publish: group[%s], dataId[%s], data[%s]\n", configParam.Group, configParam.DataId, configParam.Content)
    } else {
      fmt.Printf("failed to publish: group[%s], dataId[%s], data[%s]\n with error: %s\n",
        configParam.Group, configParam.DataId, configParam.Content, err)
    }

問題排查

常見錯誤排查

您可以參考以下操作進行排查:

  • 確保應用程序運行環境可訪問MSE和KMS實例的VPC地址。

    說明

    無需保證MSE實例與KMS實例網絡可互達。

  • 確認使用的KMS版本為v1.0還是v3.0。如果您使用的KMS版本為v1.0,需確保您在2022年03月31日之前開通了KMS服務。

    說明

    2022年03月31日之后新開通的KMS服務,需要購買專屬KMS,KMS 1.0的加密功能不再對新用戶開放。

  • 確保您使用的Nacos-client版本與加解密插件的版本相匹配,請參見本文中對應的版本說明。

Nacos Java SDK問題排查

Nacos日志異常堆棧關鍵字

問題原因

keyId is not set up yet

初始化參數keyId為空或未指定。

Forbidden.KeyNotFound : The specified Key is not found.

初始化參數keyId在對應的KMS實例中不存在。

kmsEndpoint is empty

初始化參數kmsEndpoint為空。

test-kst-xxxx.cryptoservice.kms.aliyuncs.com: 未知的名稱或服務

初始化參數kmsEndpoint網絡不可達。

kmsPasswordKey is empty

初始化參數kmsPasswordKey為空。

keystore password was incorrect

初始化參數kmsPasswordKey設置不正確。

SDK.ServerUnreachable : Server unreachable: connection https://kst-xxx.cryptoservice.kms.aliyuncs.com

初始化參數kmsVersion未指定為v3.0

None of the TrustManagers trust this certificate chain

  1. 初始化參數kmsVersion未指定為v3.0

  2. 初始化參數kmsCaFilePath為空。

kmsClientKeyFilePath is empty

初始化參數kmsClientKeyFilePath為空。

unable to find valid certification path to requested target

初始化參數kmsCaFilePath找不到對應文件。

相關文檔