应用接入

KMS支持多种业务场景,包括管理密钥和凭据,密码运算以及获取凭据值,每个场景的接入方式不同。本文介绍如何根据不同的应用场景选择合适的接入方式。

接入KMS概览

KMS提供了阿里云SDK、凭据SDK和实例SDK,在应用程序集成不同的SDK时,由于所访问的网关类型各异,对应的身份认证与鉴权方式也有所不同。KMS支持两种网关类型,具体如下:

  • 共享网关:应用程序可通过公网或VPC域名访问KMS,采用阿里云提供的RAM身份进行访问控制和鉴权。通过共享网关,您可以执行创建密钥、创建实例等管控类操作,也可以执行加密解密、获取凭据值等业务类操作。

  • 专属网关:应用程序通过KMS私网域名访问KMS,支持阿里云提供的RAM身份或者KMS提供的应用接入点(AAP)进行身份认证与鉴权。通过专属网关,您可以执行加密解密、获取凭据值等业务类操作。

image

管控类操作

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

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

image

密码运算操作

说明

本文仅介绍自建应用如何使用KMS,云产品如何使用KMS,请参见云产品集成KMS加密概述支持集成KMS加密的云产品

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

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

image

访问方式

  • 集成阿里云SDK访问共享网关。

  • (推荐)集成阿里云SDK访问专属网关。

  • 集成KMS实例SDK访问专属网关。

下表列出了这三种访问方式的主要区别:

对比

阿里云SDK(推荐)

实例SDK

网关类型

共享网关

专属网关(推荐)

专属网关

Endpoint

公网、VPC域名

KMS私网域名

KMS私网域名

身份认证与鉴权

RAM

RAM

AAP

CA证书

无需指定CA证书

需要指定CA证书

需要指定CA证书

支持的开发语言

支持8种:

  • Java

  • Python

  • C++

  • PHP

  • .NET(C#)

  • Go

  • TypeScript

  • Swift

支持8种:

  • Java

  • Python

  • C++

  • PHP

  • .NET(C#)

  • Go

  • TypeScript

  • Swift

支持5种:

  • Java(Java 8及以上版本)

  • PHP

  • Go

  • Python

  • .NET(仅C#)

支持的API

全部密码运算OpenAPI。详细介绍,请参见

密码运算

ReEncrypt外的全部密码运算OpenAPI。详细介绍,请参见

密码运算

全部密码运算实例API。详细介绍,请参见实例 API

获取凭据值

您可以通过凭据SDK、阿里云SDK、实例SDK来获取KMS凭据值。

image

访问方式

  • 集成阿里云SDK访问共享网关或专属网关。

  • 集成凭据SDK访问共享网关或专属网关。

  • 集成KMS实例SDK访问专属网关。

下表列出了这些访问方式之间的主要区别。

对比

凭据SDK

阿里云SDK

实例SDK

凭据客户端

凭据JDBC客户端

RAM凭据插件

适用场景

所有凭据类型。

  • RDS凭据

  • 凭据值满足特定格式要求的通用凭据

RAM凭据

所有凭据类型。

所有凭据类型。

支持的开发语言

支持3种:

  • Java(Java 8及以上版本)

  • Python

  • Go

支持1种:

Java(Java 8及以上版本)

支持3种:

  • Java(Java 8及以上版本)

  • Python

  • Go

支持8

  • Java

  • Python

  • Go

  • C++

  • PHP

  • .NET(C#)

  • TypeScript

  • Swift

支持5种:

  • Java(Java 8及以上版本)

  • Python

  • Go

  • PHP

  • .NET(仅C#)

网关类型

  • 共享网关

  • 专属网关

共享网关

专属网关

SDK接入流程概述

选择了符合您业务需求的SDK和访问方式之后,请按照以下流程集成SDK以使用KMS。

image

参考资料

关于如何集成SDK以使用KMS的详细信息,请参见: