凭据SDK

更新时间:
复制为 MD 格式

凭据SDK是基于KMS OpenAPIKMS实例API的自定义封装,封装了在应用中缓存和刷新凭据的功能,业务稳定性更高且更易于开发者在业务应用中集成。本文介绍业务如何接入凭据SDK。

接入概览

凭据SDK仅支持业务类操作中的获取凭据值,既支持共享网关也支持专属网关访问。

image

共享网关和专属网关的差异

凭据SDK支持通过共享网关和专属网关调用OpenAPI和实例API来获取凭据。共享网关为KMS服务的全局网络,可通过公网或VPC网络访问,专属网关为特定KMS实例的网络,仅支持私网访问

差异点

共享网关

专属网关

推荐使用场景

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

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

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

  • 业务部署在阿里云VPC。

  • 获取凭据等操作频繁。

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

网络差异

公网或VPC网络。

KMS私网网络。

性能差异

以加解密性能为例,通过共享网关访问KMSQPS1000。

以购买的实例的计算性能规格为准,例如1000、2000等。

初始化客户端时的配置差异

  • Endpoint:共享网关Endpoint,例如kms.cn-hangzhou.aliyuncs.com。具体请参见SDK使用概述

  • KMS实例CA证书:无需配置。

  • Endpoint:专属网关Endpoint,格式为<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com

    例如kst-hzz65f176a0ogplgq****.cryptoservice.kms.aliyuncs.com

  • KMS实例CA证书:需要配置。

API差异

OpenAPI-GetSecretValue

OpenAPI-GetSecretValue实例API-GetSecretValue(不推荐)

身份认证与授权

凭据SDK支持RAM鉴权和AAP鉴权(不推荐)两种鉴权方式。

认证方式

访问凭据类型

RAM鉴权

RamRoleArn、ECS RAM角色、STS Token、AccessKey、阿里云默认凭证链、OIDC Role Arn等。

说明

RAM凭据插件仅支持ECS RAM角色。

AAP鉴权(不推荐)

ClientKey(共享网关配置)、ClientKey(专属网关配置)

凭据SDK类型

凭据SDK提供凭据客户端、凭据JDBC客户端、RAM凭据插件三种SDK,通过共享网关或专属网关调用OpenAPI-GetSecretValue或实例API-GetSecretValue(不推荐)获取KMS凭据值。每种SDK支持的鉴权方式和API类型存在差异,详情可参考下表:

SDK类型

使用说明

网关及鉴权方式说明

凭据客户端

  • 支持所有凭据类型

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

共享网关、专属网关:RamRoleArn、ECS RAM角色、STS Token、AccessKey、阿里云默认凭证链、OIDC Role Arn、ClientKey等。

说明

建议适应凭据客户端 V2 SDK。版本差异,请参见SDK 版本

凭据JDBC客户端

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

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

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

共享网关:

  • RAM鉴权:RamRoleArn、ECS RAM角色、STS Token、AccessKey。

  • AAP鉴权(不推荐):ClientKey(共享网关配置)

专属网关(不推荐):

AAP鉴权:ClientKey(专属网关配置)

RAM凭据插件

  • 仅支持RAM凭据

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

共享网关:

  • RAM鉴权:ECS RAM角色

  • AAP鉴权(不推荐):ClientKey(共享网关配置)

专属网关(不推荐):

AAP鉴权:ClientKey(专属网关配置)

支持的API

API列表

描述

共享网关

专属网关

GetSecretValue(OpenAPI)

获取凭据值

支持

支持

GetSecretValue(实例API)

获取凭据值

不支持

支持

支持的开发语言

下表列举了支持的语言类型以及各语言SDK的参考文档。

凭据SDK

支持的语言

凭据客户端

Java(Java 8及以上版本)、Python、Go

凭据JDBC客户端

Java(Java 8及以上版本)

RAM凭据插件

Java(Java 8及以上版本)、Python、Go