SDK参考
本文为您介绍购买了软件密钥管理实例或硬件密钥管理实例后,应用程序通过API管理以及使用KMS实例中资源时可使用的SDK。
阿里云SDK
应用程序集成阿里云SDK,通过共享网关Endpoint或专属网关Endpoint,调用OpenAPI完成如下操作:
管控类操作:包含默认密钥、KMS实例相关的管控类操作,例如创建密钥、创建凭据、创建KMS实例、修改密钥标签等。KMS所有的管控类操作仅支持使用阿里云SDK。
密码运算:对称加解密、非对称加解密、信封加密、生成数据密钥、数字签名、验证签名等与密码学相关的操作。
获取凭据值:获取KMS实例中凭据的凭据值。
阿里云SDK是封装好的用于调用云产品OpenAPI的程序依赖包,方便开发者快速构建与阿里云相关的应用程序。目前,阿里云提供V1.0版本和V2.0版本,具体差异和选用指导,请参考V2.0 SDK 和 V1.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访问专属网关Endpoint,完成密码运算操作、获取凭据值。
支持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:
共享网关Endpoint(KMS服务Endpoint):KMS服务的全局网络地址,以便客户端建立与KMS服务的连接并调用相应的OpenAPI接口,可通过公网或私网访问。详细的Endpoint,请参见接入点说明。
专属网关Endpoint(KMS实例Endpoint):特定KMS实例的网络地址,以便客户端建立与KMS实例的连接并调用相应的实例API接口,仅支持私网访问。Endpoint格式为
{实例ID}.cryptoservice.kms.aliyuncs.com
。
相比共享网关Endpoint,使用专属网关Endpoint具有以下优点,因此通常建议您使用专属网关Endpoint。
客户端直接与KMS实例进行通信,可以减少网络延迟。
只有该实例配置的应用接入点授权的客户端才能与该实例进行通信,从而增强了安全性和控制性。
提供更高的业务QPS。更多信息,请参见性能数据。