KMS SDK参考
KMS提供阿里云SDK、凭据SDK和实例SDK(不推荐)三类SDK,本文介绍其接入流程、认证鉴权、支持的API、支持访问网关类型等信息,用户可根据业务需求选择适合的SDK。
SDK 接入流程图
阿里云SDK
阿里云SDK是封装好的用于调用云产品OpenAPI的程序依赖包,方便开发者快速构建与阿里云相关的应用程序,不仅支持凭据和密钥的管控类API还支持业务类API。支持Java、Python、C++、PHP、.NET(仅C#)、Go、TypeScript、Swift多种语言。更多关于阿里云SDK信息,请参见阿里云SDK。
支持的API
阿里云SDK支持调用OpenAPI执行KMS管控类操作和业务类操作。更多关于API支持情况可参见阿里云 SDK支持的OpenAPI。
管控类操作:包含默认密钥、KMS实例相关的管控类操作,例如创建密钥、创建凭据、创建KMS实例、修改密钥标签等。
业务类操作:
密码运算:对称加解密、非对称加解密、信封加密、生成数据密钥、数字签名、验证签名等与密码学相关的操作。
获取凭据值:获取KMS实例中凭据的凭据值。
在正式环境中使用阿里云SDK获取凭据值时,请您做好错误重试、凭据缓存等业务逻辑,避免网络抖动导致获取凭据值失败,具体操作可参考见使用指数退避方法对请求错误进行重试。
支持的网关类型
阿里云SDK支持通过共享网关或专属网关来访问OpenAPI和实例API。其中管控类API操作仅可通过共享网关访问,而业务类API既支持通过共享网关也能通过专属网关访问。
网关类型 | 推荐使用场景 | 身份认证和鉴权 | 支持的API |
共享网关 |
| RAM鉴权 | 全部OpenAPI |
专属网关 |
| RAM鉴权 | OpenAPI-密码运算、OpenAPI-获取凭据值 |
凭据SDK
凭据SDK是基于KMS OpenAPI和KMS实例API的自定义封装,实现在应用中缓存和刷新凭据的功能,业务稳定性更高且更易于开发者在业务应用中集成。仅支持获取凭据,包含凭据客户端、凭据JDBC客户端、RAM凭据插件三种SDK,支持Java(Java 8及以上版本)、Python、Go多种语言。更多关于凭据SDK信息,请参见凭据SDK。
凭据SDK类型
SDK | 功能说明 |
| |
| |
|
支持的API
凭据SDK仅支持通过OpenAPI和实例API(不推荐)执行获取凭据值的业务类操作,凭据管控类操作请使用阿里云SDK。
在正式环境中使用凭据SDK获取凭据值时,请您做好错误重试、凭据缓存等业务逻辑,避免网络抖动导致获取凭据值失败,具体操作可参考见使用指数退避方法对请求错误进行重试。
支持的网关类型
凭据SDK通过共享网关或专属网关来获取凭据值。其中共享网关支持RAM鉴权和AAP鉴权调用OpenAPI,专属网关仅支持AAP鉴权调用实例API。
网关类型 | 推荐使用场景 | 鉴权 | 支持的API |
共享网关 |
| RAM鉴权 | OpenAPI-获取凭据值 |
AAP鉴权(不推荐) | 实例API-获取凭据值 | ||
专属网关 |
| AAP鉴权(不推荐) | 实例API-获取凭据值 |
KMS实例SDK(不推荐)
应用程序通过KMS实例SDK访问专属网关Endpoint,完成密码运算操作、获取凭据值。支持Java(Java 8及以上版本)、PHP、Go、Python、.NET(仅C#)语言。详细内容,请参见KMS实例SDK。
网关Endpoint及鉴权说明
网关Endpoint说明
KMS提供了两种Endpoint:
共享网关Endpoint(KMS服务Endpoint):KMS服务的全局网络地址,可通过公网或VPC网络访问。根据地域不同Endpoint不同,例如华东1(杭州):kms.cn-hangzhou.aliyuncs.com,kms-vpc.cn-hangzhou.aliyuncs.com,详细的Endpoint请参见接入点说明。
专属网关Endpoint(KMS实例Endpoint):特定KMS实例的网络地址,仅支持私网访问。Endpoint格式为
{实例ID}.cryptoservice.kms.aliyuncs.com
。
身份认证及鉴权说明
KMS提供RAM鉴权、AAP鉴权两种鉴权方式,共享网关支持RAM鉴权、AAP鉴权,专属网关仅支持AAP鉴权。
RAM鉴权:RAM角色、STS Token、ECS RAM角色、AK。
AAP鉴权(不推荐):创建应用接入点下载保存认证文件ClientKey,其中包含应用身份凭证内容(ClientKeyContent)和凭证口令(ClientKeyPassword)。针对不同的网关提供专属网关配置和共享网关配置两种模式,具体配置可参考AAP鉴权。