初始化客户端

使用KMS实例SDK发起KMS实例API请求前,您需要初始化客户端。本文介绍如何初始化客户端。

初始化客户端

  1. 初始化Client实例。

    您可以使用ClientKey内容创建KMS实例SDK Client对象,也可以使用ClientKey文件路径创建KMS实例SDK Client对象,选择其中一种即可。

    import (
        dedicatedkmsopenapi "github.com/aliyun/alibabacloud-dkms-gcs-go-sdk/openapi"
        dedicatedkmssdk "github.com/aliyun/alibabacloud-dkms-gcs-go-sdk/sdk"
      "github.com/alibabacloud-go/tea/tea"
    )
    
    // 使用ClientKey内容创建KMS实例SDK Client对象
    func getDkmsClientByClientKeyContent() *dedicatedkmssdk.Client {
    	// 创建KMS实例SDK Client配置
    	config := &dedicatedkmsopenapi.Config{
    	        // 连接协议请设置为"https"。KMS实例服务仅允许通过HTTPS协议访问。
    		Protocol: tea.String("https"),
    		// 请替换为ClientKey文件的内容
    		ClientKeyContent: tea.String("yourClientKeyContent"),
    		// 请替换为创建ClientKey时输入的加密口令
    		Password: tea.String("yourClientKeyPassword"),
    		// 设置endpoint为<your KMS Instance Id>.cryptoservice.kms.aliyuncs.com。
    		Endpoint: tea.String("yourEndpoint"),
    	}
    	// 创建KMS实例SDK Client对象
    	client, err := dedicatedkmssdk.NewClient(config)
    	if err != nil {
    		// 异常处理
    		panic(err)
    	}
    	return client
    }
    
    // 使用ClientKey文件路径创建KSM实例SDK Client对象
    func getDkmsClientByClientKeyFile() *dedicatedkmssdk.Client {
    	// 创建DKMS Client配置
    	config := &dedicatedkmsopenapi.Config{
    		// 连接协议请设置为"https"。KMS实例服务仅允许通过HTTPS协议访问。
    		Protocol: tea.String("https"),
    		// 请替换为ClientKey文件的路径
    		ClientKeyFile: tea.String("yourClientKeyFile"),
    		// 请替换为创建ClientKey时输入的加密口令
    		Password: tea.String("yourClientKeyPassword"),
                     // 设置endpoint为<your KMS Instance Id>.cryptoservice.kms.aliyuncs.com。
    		Endpoint: tea.String("yourEndpoint"),
    	}
    	// 创建KMS实例SDK Client对象
    	client, err := dedicatedkmssdk.NewClient(config)
    	if err != nil {
    		// 异常处理
    		panic(err)
    	}
    	return client
    }
  2. 通过配置运行时参数(RuntimeOptions)设置KMS实例的CA证书。

    重要

    设置实例CA证书是为保障生产环境通信安全,其重要作用在于验证SSL/TLS证书的有效性,建议您始终保持此功能开启。如您确有需要关闭验证SSL/TLS证书,例如线下测试场景,可通过将运行时参数RuntimeOptionsIgnoreSSL字段设置为true实现。

    设置RuntimeOptionsverify字段为KMS实例CA证书路径。代码示例如下:

    import (
        dedicatedkmsopenapiutil "github.com/aliyun/alibabacloud-dkms-gcs-go-sdk/openapi-util"
        "github.com/alibabacloud-go/tea/tea"
        "io/ioutil"
    )
    
    // 验证服务端证书
    ca, err := ioutil.ReadFile("path/to/caCert.pem")
    if err != nil {
        panic(err)
    }
    runtimeOptions := &dedicatedkmsopenapiutil.RuntimeOptions{
        Verify: tea.String(string(ca)),
    }

变量说明

Endpoint

KMS实例域名地址。

  1. 实例管理页面,单击软件密钥管理硬件密钥管理页签后,选择目标KMS实例。

  2. 单击实例ID进入到详情页,查看实例VPC地址image

ClientKeyFile

即应用身份凭证的路径。创建ClientKey后浏览器会自动下载,文件名默认为clientKey_****.json

Password

ClientKey的口令。创建ClientKey后浏览器会自动下载,文件名默认为clientKey_****_Password.txt

Verify

KMS实例CA证书。

  1. 实例管理页面,单击获取实例CA证书区域的下载

  2. 获取实例CA证书对话框中选择实例ID,单击下载并妥善保管。

    CA证书下载后文件名默认为PrivateKmsCA_kst-******.pem。image