KMS SDK参考

更新时间: 2025-03-26 11:24:10

KMS提供阿里云SDK、凭据SDK和实例SDK(不推荐)三类SDK,本文介绍其接入流程、认证鉴权、支持的API、支持访问网关类型等信息,用户可根据业务需求选择适合的SDK。

SDK 接入流程图

image

阿里云SDK

阿里云SDK是封装好的用于调用云产品OpenAPI的程序依赖包,方便开发者快速构建与阿里云相关的应用程序,不仅支持凭据和密钥的管控类API还支持业务类API。支持Java、Python、C++、PHP、.NET(仅C#)、Go、TypeScript、Swift多种语言。更多关于阿里云SDK信息,请参见阿里云SDK

image

支持的API

阿里云SDK支持调用OpenAPI执行KMS管控类操作业务类操作。更多关于API支持情况可参见阿里云 SDK支持的OpenAPI

  • 管控类操作:包含默认密钥、KMS实例相关的管控类操作,例如创建密钥、创建凭据、创建KMS实例、修改密钥标签等。

  • 业务类操作:

    • 密码运算:对称加解密、非对称加解密、信封加密、生成数据密钥、数字签名、验证签名等与密码学相关的操作。

    • 获取凭据值:获取KMS实例中凭据的凭据值。

重要

在正式环境中使用阿里云SDK获取凭据值时,请您做好错误重试、凭据缓存等业务逻辑,避免网络抖动导致获取凭据值失败,具体操作可参考见使用指数退避方法对请求错误进行重试

支持的网关类

阿里云SDK支持通过共享网关或专属网关来访问OpenAPI和实例API。其中管控类API操作仅可通过共享网关访问,而业务类API既支持通过共享网关也能通过专属网关访问。

网关类型

推荐使用场景

身份认证和鉴权

支持的API

共享网关

  • 业务需要通过API操作包括实例、密钥、凭据相关的管控操作,例如创建密钥、创建凭据、创建KMS实例等操作。

  • 业务部署在非阿里云VPC上。

  • 非正式环境访问KMS,例如:内部测试环境。

RAM鉴权

全部OpenAPI

专属网关

  • 业务部署在阿里云VPC。

  • 业务类操作例如加解密、获取凭据等操作频繁,对性能要求较高。

  • 业务数据有较高的安全性要求。

RAM鉴权

OpenAPI-密码运算、OpenAPI-获取凭据值

凭据SDK

凭据SDK是基于KMS OpenAPI和KMS实例API的自定义封装,实现在应用中缓存和刷新凭据的功能,业务稳定性更高且更易于开发者在业务应用中集成。仅支持获取凭据,包含凭据客户端、凭据JDBC客户端、RAM凭据插件三种SDK,支持Java(Java 8及以上版本)、Python、Go多种语言。更多关于凭据SDK信息,请参见凭据SDK

image

凭据SDK类型

SDK

功能说明

凭据客户端

  • 支持所有凭据类型

  • 支持您在应用中一行代码快速获取凭据。

  • 凭据客户端还封装了在应用中缓存和刷新凭据的功能,业务稳定性更高。

凭据JDBC客户端

  • 开发语言必须为Java(Java 8及以上版本)。

  • 仅支持RDS凭据和凭据值满足{"AccountName":"<您的数据库账号用户名>","AccountPassword":"<您的数据库账号密码>"}格式的通用凭据

  • 当您通过JDBC、数据库连接池(包含c3p0和DBCP)以及数据库开源框架的方式连接数据库时,可以使用凭据JDBC客户端完成数据库连接身份鉴别,并支持自定义凭据刷新频率。

RAM凭据插件

  • 仅支持RAM凭据

  • 业务应用需要使用该插件支持的SDK版本,详情参见支持的阿里云SDK

支持的API

凭据SDK仅支持通过OpenAPI和实例API(不推荐)执行获取凭据值的业务类操作,凭据管控类操作请使用阿里云SDK。

重要

在正式环境中使用凭据SDK获取凭据值时,请您做好错误重试、凭据缓存等业务逻辑,避免网络抖动导致获取凭据值失败,具体操作可参考见使用指数退避方法对请求错误进行重试

持的网关类

凭据SDK通过共享网关或专属网关来获取凭据值。其中共享网关支持RAM鉴权和AAP鉴权调用OpenAPI,专属网关仅支持AAP鉴权调用实例API。

网关类型

推荐使用场景

鉴权

支持的API

共享网关

  • 获取凭据操作性能要求不高

  • 业务部署在非阿里云VPC上。

  • 非正式环境访问KMS,例如:内部测试环境。

RAM鉴权

OpenAPI-获取凭据值

AAP鉴权(不推荐)

实例API-获取凭据值

专属网关

  • 业务部署在阿里云VPC。

  • 获取凭据等操作频繁。

  • 业务数据有较高的安全性要求。

AAP鉴权(不推荐)

实例API-获取凭据值

KMS实例SDK(不推荐)

应用程序通过KMS实例SDK访问专属网关Endpoint,完成密码运算操作、获取凭据值。支持Java(Java 8及以上版本)、PHP、Go、Python、.NET(仅C#)语言。详细内容,请参见KMS实例SDK

image

网关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鉴权

上一篇: GenerateRandom 下一篇: 阿里云SDK
阿里云首页 密钥管理服务 相关技术圈