SDK参考
本文为您介绍购买了软件密钥管理实例或硬件密钥管理实例后,应用程序通过API管理以及使用KMS实例中资源时可使用的SDK。
阿里云SDK
应用程序集成阿里云SDK,通过KMS服务Endpoint,调用OpenAPI完成如下操作:
管控类操作:包含默认密钥、KMS实例相关的管控类操作,例如创建密钥、创建凭据、创建KMS实例、修改密钥标签等。KMS所有的管控类操作仅支持使用阿里云SDK。
获取凭据值:获取KMS实例中凭据的凭据值。
如果自建应用需要进行密码运算操作:
使用非KMS实例中的密钥:仅支持使用阿里云SDK。
使用KMS实例中的密钥:支持阿里云SDK和KMS实例SDK。但使用阿里云SDK时,认证方式仅支持可信实体为阿里云服务的RAM角色。详细信息,请参见创建可信实体为阿里云服务的RAM角色。
阿里云SDK是封装好的用于调用云产品OpenAPI的程序依赖包,方便开发者快速构建与阿里云相关的应用程序。目前,阿里云提供V1.0版本和V2.0版本,具体差异和选用指导,请参考V1.0 SDK和V2.0 SDK。
阿里云SDK(V2.0)支持Java(Java 6及以上版本)、Python、C++、PHP、.NET(仅C#)、Go、TypeScript、Swift语言。阿里云SDK(V1.0)支持Java(Java 6及以上版本)、Python、C++、PHP、.NET(仅C#)、Go语言。详细信息,请参见阿里云SDK概览。
在正式环境中使用阿里云SDK获取凭据值时,请您做好错误重试、凭据缓存等业务逻辑,避免网络抖动导致获取凭据值失败。更推荐您使用凭据SDK。
KMS实例SDK
应用程序通过KMS实例SDK访问KMS实例Endpoint,使用KMS实例中的密钥完成密码运算操作、获取KMS实例中的凭据。
支持Java(Java 8及以上版本)、PHP、Go、Python、.NET(仅C#)语言。详细内容,请参见KMS实例SDK。
在正式环境中使用KMS实例SDK获取凭据值时,请您做好错误重试、凭据缓存等业务逻辑,避免网络抖动导致获取凭据值失败。更推荐您使用凭据SDK。
凭据SDK
仅支持获取凭据值。
在正式环境中使用凭据SDK时,请您做好错误重试的业务逻辑,避免网络抖动导致获取凭据值失败。
凭据SDK包含如下3种:
凭据客户端:支持所有凭据类型,支持您在应用中一行代码快速获取凭据。凭据客户端还封装了在应用中缓存和刷新凭据的功能,业务稳定性更高。支持Java(Java 8及以上版本)、Go、Python语言。
凭据JDBC客户端:仅支持RDS凭据和凭据值满足特定格式要求的通用凭据。当您通过JDBC、数据库连接池(包含c3p0和DBCP)以及数据库开源框架的方式连接数据库时,可以使用该SDK完成数据库连接身份鉴别,并支持自定义凭据刷新频率。仅支持Java(Java 8及以上版本)语言。
说明使用凭据JDBC客户端时,您需要已安装凭据客户端。
RAM凭据插件:仅支持RAM凭据。应用程序使用阿里云SDK(仅支持V1.0)、OSS-SDK、消息队列商业版TCP协议Java SDK时,使用RAM凭据插件获取RAM凭据值(AccessKey),完成身份认证。支持Java(Java 8及以上版本)、Go、Python语言。
Endpoint说明
KMS提供了两种Endpoint:
KMS服务Endpoint:KMS服务的全局网络地址,以便客户端建立与KMS服务的连接并调用相应的OpenAPI接口,可通过公网或私网访问。详细的KMS服务Endpoint,请参见接入点说明。
KMS实例Endpoint:特定KMS实例的网络地址,以便客户端建立与KMS实例的连接并调用相应的实例API接口,仅支持私网访问。
格式为
{实例ID}.cryptoservice.kms.aliyuncs.com
,您也可以在实例管理页面查看实例详情,获取实例VPC地址,去掉https://
后即KMS实例Endpoint。
使用凭据SDK,既可以通过KMS服务Endpoint,也可以通过KMS实例Endpoint获取凭据值。相比KMS服务Endpoint,使用KMS实例Endpoint具有以下优点,因此通常建议您使用KMS实例Endpoint。
客户端直接与KMS实例进行通信,可以减少网络延迟。
只有该实例配置的应用接入点授权的客户端才能与该实例进行通信,从而增强了安全性和控制性。
提供更高的业务QPS。更多信息,请参见性能数据。