应用集成KMS指南

更新时间:2025-03-26 01:49:53

KMS支持通过SDK或代理服务KMS Agent调用API,实现密钥管理、密码运算以及凭据值获取等功能,帮助自建应用快速集成KMS服务。本文将介绍如何使用SDK、KMS Agent集成KMS。

KMS接入总览

在应用程序通过不同的集成工具访问API,根据所访问的网关类型,对应的身份认证与鉴权方式、支持API种类也有所不同。KMS集成概览图如下所示:

image
  • 网关类型:KMS提供了两种网关类型:共享网关和专属网关,共享网关为KMS服务的全局网络,专属网关为特定KMS实例的网络。

  • 鉴权方式:KMS支持RAM鉴权和应用接入点AAP鉴权(不推荐)两种鉴权方式。

  • 集成方式:KMS提供了SDKKMS Agent两种集成方式,方便用户在业务代码里集成KMS。其中SDK包含阿里云SDK、凭据SDK、实例SDK。

  • API类型:KMS提供两种API,OpenAPIKMS实例API(不推荐)。其中按功能区分又分为管控类操作API、业务类API(密码运算类API、获取凭据API)。OpenAPI支持管控类API、业务类API,而实例API仅支持业务类API。

接入网关类

KMS 提供两种访问网关:共享网关和专属网关。共享网关为KMS服务的全局网络,可通过公网或VPC络访问KMS服务。同时支持管控类操作和业务操作。专属网关为特定KMS实例的网络,仅支持私网访问KMS服务,提供全链路API安全保障方案,数据安全性更高,只支持业务类操作。

差异点

共享网关

专属网关

差异点

共享网关

专属网关

推荐使用场景

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

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

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

  • 业务部署在阿里云VPC。

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

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

Endpoint

公网、VPC域名

KMS私网域名

性能

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

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

支持的集成方式

阿里云SDK、凭据SDK、KMS Agent

阿里云SDK、凭据SDK、KMS Agent、实例SDK

支持的API

全部OpenAPI

OpenAPI-密码运算、OpenAPI-获取凭据值、实例API(不推荐)

身份认证和鉴权

RAM鉴权和AAP(不推荐)

RAM鉴权和AAP(不推荐)

CA证书

无需配置CA证书

需要配置CA证书

认证与鉴权

KMS支持RAM鉴权和应用接入点AAP鉴权(不推荐),更多信息可参见管理RAM访问凭据应用接入点(AAP)管理

差异点

RAM鉴权

AAP鉴权(不推荐)

差异点

RAM鉴权

AAP鉴权(不推荐)

功能说明

  • 支持自定义灵活权限策略。

  • 支持RAM角色、STS Token、ECS RAM角色、AK等多种方式。

  • 无需配置CA证书。

  • 支持自定义灵活权限策略。

  • 需要下载保存认证文件ClientKey,其中包含应用身份凭证内容(ClientKeyContent)凭证口令(ClientKeyPassword)

  • 支持配置CA证书,完成双向TLS鉴权。

支持的集成方式

阿里云SDK、凭据SDK、KMS Agent

凭据SDK、实例SDK

支持的API

全部OpenAPI

OpenAPI-获取凭据、实例API

支持的网关

专属网关、共享网关

专属网关、共享网关

说明

针对不同的网关要求提供专属网关配置和共享网关配置两种模式,具体操作可参见AAP鉴权

集成方式

KMS 提供SDKKMS Agent两种集成方式,SDK支持全部的管控类操作API和密码运算、获取凭据的业务类操作API,KMS Agent目前仅支持获取凭据API

SDK
KMS Agent

将复杂的签名过程封装在方法内,用户按照接口说明填入必填参数和认证信息即可。KMS SDK包含阿里云SDK、凭据SDK、实例SDK(不推荐)。若您结合网关、鉴权、API的情况选择了合适的SDK后,可按照以下流程集成SDK以使用KMS。更多SDK集成信息,可参见SDK参考

推荐使用场景:

  • 业务应用体量较少且访问KMS频率不高。

  • 数据延迟敏感。

  • 应用逻辑深度依赖加密操作(如实时流加密)。

接入流程图

image

开发接入说明:

SDK类型

支持的API

网关及鉴权方式说明

支持的开发语言

凭据SDK

共享网关:

  • RAM鉴权+OpenAPI

  • AAP鉴权+OpenAPI(不推荐)

  • AAP鉴权+实例API(不推荐)

专属网关:

AAP鉴权+实例API(不推荐)

支持3种:

  • Java(Java 8及以上版本)

  • Python

  • Go

阿里云SDK

OpenAPI:

共享网关:

RAM鉴权+OpenAPI

专属网关:

RAM鉴权+OpenAPI

支持8种:

  • Java

  • Python

  • Go

  • C++

  • PHP

  • .NET(C#)

  • TypeScript

  • Swift

实例SDK(不推荐)

实例API:

密钥接口凭据接口生成随机数

共享网关:不支持

专属网关:

AP鉴权+实例API

支持5种:

  • Java(Java 8及以上版本)

  • Python

  • Go

  • PHP

  • .NET(仅C#)

KMS Agent简化了应用访问KMS的身份认证与缓存管理流程,是基于标准化HTTP接口提供服务,支持任意编程语言的业务应用直接调用,但仅支持和KMS Agent部署在一起的业务应用访问更多信息,请参见KMS Agent

推荐使用场景:

  • 多个业务应用集中部署在一起,需要集中管控。

  • 业务应用获取凭据操作频繁。

  • KMS Agent仅支持本地应用访问,适用于有较强应用层安全风险管控要求的应用。

  • 多个业务应用的开发语言不同,且都需要访问凭据。

接入流程图:

image

开发接入说明:

支持的API

网关类型

鉴权方式

支持的开发语言

OpenAPI:

获取凭据:GetSecretValue

共享网关、专属网关

RAM鉴权

KMS Agent是基于标准化HTTP接口提供服务,支持任意编程语言的业务应用调用。

KMS API类型

KMS提供OpenAPIKMS实例API(不推荐)两大类型的API,其中按功能区分又分为管控类操作API、密码运算类API、获取凭据API三大类API。更多信息可参见OpenAPI实例 API

管控类操作

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

管控类操作只能使用阿里云SDK接入,通过访问共享网关Endpoint调用OpenAPI。

image

密码运算

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

密码运算操作可以通过阿里云SDK或者KMS实例SDK接入。

重要

通过共享网关调用密码运算操作API时,需要打开公网访问开关。具体操作,请参见通过公网访问KMS实例中的密钥

image

获取凭据

您可以通过凭据SDK、阿里云SDK、实例SDK、KMS Agent访问共享网关或专属网关调用OpenAPI-GetSecretValue实例API-GetSecretValue(不推荐)获取KMS凭据值。

image
  • 本页导读 (1)
  • KMS接入总览
  • 接入网关类型
  • 认证与鉴权
  • 集成方式
  • KMS API类型
  • 管控类操作
  • 密码运算
  • 获取凭据值