初始化
更新时间:2020-08-03
确认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信息:
新建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