初始化
所有文档

          密钥管理服务 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工具包
          下一篇
          密钥管理