密钥管理服务KMS

    初始化

    确认Endpoint

    KMS目前支持“华北-北京”、“华南-广州”和“华东-苏州”三个区域。

    北京区域:http://bkm.bj.baidubce.com,广州区域:http://bkm.gz.baidubce.com,苏州区域:http://bkm.su.baidubce.com

    对应信息为:

    访问区域 对应Endpoint
    BJ bkm.bj.baidubce.com
    GZ bkm.gz.baidubce.com
    SU bkm.su.baidubce.com

    获取密钥

    要使用百度智能云KMS,您需要拥有一个有效的 AK(Access Key ID)和SK(Secret Access Key)用来进行签名认证。AK/SK是由系统分配给用户的,均为字符串,用于标识用户,为访问KMS做签名验证。 可以通过如下步骤获得并了解您的AK/SK信息:

    注册百度智能云账号

    创建AK/SK

    新建KmsClient

    KmsClient是KMS服务的客户端,为开发者与KMS服务进行交互提供了一系列的方法。

    使用AK/SK新建KmsClient。

    通过AK/SK方式访问KMS,用户可以参考如下代码新建一个KmsClient:

    注意:这里的 Access Key ID, Secret Access Key,域名(ENDPOINT) 是必须填写的。

        import com.baidubce.auth.DefaultBceCredentials;
        import com.baidubce.services.kms.KmsClient;
        import com.baidubce.services.kms.KmsClientConfiguration;
        import com.baidubce.services.kms.model.*;
        import com.baidubce.BceClientException;
        import com.baidubce.BceServiceException;
        import com.baidubce.Protocol;
    
        public class Kms {
            public static void main(String[] args) {
                String ACCESS_KEY_ID = <your-access-key-id>;                // 用户的Access Key ID
                String SECRET_ACCESS_KEY = <your-secret-access-key>;        // 用户的Secret Access Key
                String ENDPOINT = <domain-name>;                            // 用户自己指定的域名
    
                // 初始化一个KmsClient
                KmsClientConfiguration config = new KmsClientConfiguration();
                config.setCredentials(new DefaultBceCredentials(ACCESS_KEY_ID, SECRET_ACCESS_KEY));     
                config.setEndpoint(ENDPOINT);
                config.setProtocol(Protocol.HTTPS);                         // 设置https协议
                KmsClient client = new KmsClient(config);
                // 接下来可以使用这个client来操作kms 
                
            }
        }

    在上面代码中,ACCESS_KEY_ID对应控制台中的“Access Key ID”,SECRET_ACCESS_KEY对应控制台中的“Access Key Secret”。

    ENDPOINT参数只能用指定的包含区域的域名来进行定义。

    配置HTTPS协议访问KMS

    KMS支持HTTPS传输协议,您可以通过如下两种方式在KMS Java SDK中使用HTTPS访问KMS服务:

    • 在endpoint中指明https:

      String ENDPOINT = "https://bkm.gz.baidubce.com";              // endpoint中包含protocol使用https
      String ACCESS_KEY_ID = <your-access-key-id>;                // 用户的Access Key ID
      String SECRET_ACCESS_KEY = <your-secret-access-key>;        // 用户的Secret Access Key
    • 通过调用setProtocol方法设置https协议:

      String ENDPOINT = "bkm.gz.baidubce.com";                      // endpoint中不包含protocol 
      String ACCESS_KEY_ID = <your-access-key-id>;                // 用户的Access Key ID
      String SECRET_ACCESS_KEY = <your-secret-access-key>;        // 用户的Secret Access Key
      
      // 初始化一个KmsClient
      KmsClientConfiguration config = new KmsClientConfiguration();
      config.setCredentials(new DefaultBceCredentials(ACCESS_KEY_ID, SECRET_ACCESS_KEY));     
      config.setEndpoint(ENDPOINT);
      config.setProtocol(Protocol.HTTPS);                         // 如果不指明, 则使用http
      KmsClient client = new KmsClient(config);

    如果在endpoint中指明了protocol, 则endpoint中的生效, 另外单独再调用setProtocol()不起作用。

        String ENDPOINT = "http://bkm.gz.baidubce.com";               // endpoint中包含protocol使用http
        String ACCESS_KEY_ID = <your-access-key-id>;                // 用户的Access Key ID
        String SECRET_ACCESS_KEY = <your-secret-access-key>;        // 用户的Secret Access Key
    
        // 初始化一个KmsClient
        KmsClientConfiguration config = new KmsClientConfiguration();
        config.setCredentials(new DefaultBceCredentials(ACCESS_KEY_ID, SECRET_ACCESS_KEY));     
        config.setEndpoint(ENDPOINT);
        config.setProtocol(Protocol.HTTPS);                         // // endpoint中已经指明, 此为无效操作, 对http也是如此
        KmsClient client = new KmsClient(config);
        // 接下来可以使用这个client来操作kms 
    上一篇
    安装SDK工具包
    下一篇
    密钥管理