全部产品
Search
文档中心

密钥管理服务:SDK使用概述

更新时间:Sep 21, 2026

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,例如:内部测试环境。

全部OpenAPI

专属网关

  • 业务部署在阿里云VPC。

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

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

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通过共享网关或专属网关来获取凭据值。

网关类型

推荐使用场景

共享网关

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

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

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

专属网关

  • 业务部署在阿里云VPC。

  • 获取凭据等操作频繁。

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

KMS实例SDK(不推荐)

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

image

网关类型对应的Endpoint

KMS提供了两种Endpoint:

  • 共享网关Endpoint(KMS服务Endpoint):KMS服务的全局网络地址,可通过公网或VPC网络访问。

    • 格式:kms.<地域ID>.cryptoservice.kms.aliyuncs.com,地域ID相关信息,请参见地域和可用区。

    • 示例:华东1(杭州)的地址为:kms.cn-hangzhou.aliyuncs.com,通过VPC网络的地址为:kms-vpc.cn-hangzhou.aliyuncs.com。

  • 专属网关Endpoint(KMS实例Endpoint):特定KMS实例的网络地址,仅支持私网访问。

    • 格式:<KMS实例ID>.cryptoservice.kms.aliyuncs.com。

    • 示例:kst-hzz65f176a0ogplgq****.cryptoservice.kms.aliyuncs.com。

身份认证及鉴权

KMS提供RAM鉴权、AAP鉴权两种鉴权方式,共享网关支持RAM鉴权、AAP鉴权,专属网关仅支持AAP鉴权。

  • RAM鉴权:RAM角色、STS Token、ECS RAM角色、AK等,更多方式请,参见请参见管理访问凭据。

    重要

    使用RAM鉴权方式,通过专属网关使用实例下的密钥和凭据时,需要配置CA证书。

  • AAP鉴权(不推荐):创建应用接入点下载保存认证文件ClientKey,其中包含应用身份凭证内容(ClientKeyContent)和凭证口令(ClientKeyPassword)。

RAM鉴权

AccessKey

警告

阿里云账号默认有所有资源的 Administrator 权限且不可修改,为了确保资源安全,建议使用 RAM 用户创建 AccessKey,并根据需求进行最小化授权。

  1. 登录RAM 控制台,在页用户面,单击目标 RAM 用户名称。

  2. 在凭证管理标签页的AccessKey区域,单击创建 AccessKey。

  3. 授予 RAM 用户访问 KMS 的权限。

    • 方式一:设置基于身份的策略

      单击 RAM 用户操作列的新增授权,直接绑定 KMS 内置系统权限策略到 RAM 角色。KMS 内置系统权限策略,请参见密钥管理服务系统权限策略参考。

      说明

      同时支持自定义权限策略,具体操作请参见创建自定义权限策略。

    • 方式二:设置基于资源的策略

      KMS 支持基于资源的策略,即为单个密钥和凭据设置访问权限,用于控制哪些阿里云账号、RAM 用户、RAM 角色有权限来管理或使用 KMS 密钥、凭据。详细介绍,请参见密钥策略、凭据策略。

ECS RAM 角色

ECS RAM 角色是指为 ECS 实例授予的 RAM 角色,该 RAM 角色是一个受信服务为云服务器的普通服务角色。使用实例 RAM 角色可以实现在 ECS 实例内部无需配置 AccessKey 即可获取临时访问凭证(STS Token),从而调用 KMS 的 OpenAPI。

具体操作,请参见实例RAM角色。

  1. 登录RAM 控制台,创建可信实体为阿里云服务的 RAM 角色。

    • 信任主体类型:选择云服务器。

    • 信任主体名称:选择云服务器 ECS。

  2. 授予 RAM 角色访问 KMS 的权限。

    • 方式一:设置基于身份的策略

      单击 RAM 角色操作列的新增授权,直接绑定 KMS 内置系统权限策略到 RAM 角色。KMS 内置系统权限策略,请参见密钥管理服务系统权限策略参考。

      说明

      同时支持自定义权限策略,具体操作请参见创建自定义权限策略。

    • 方式二:设置基于资源的策略

      KMS 支持基于资源的策略,即为单个密钥和凭据设置访问权限,用于控制哪些阿里云账号、RAM 用户、RAM 角色有权限来管理或使用 KMS 密钥、凭据。详细介绍,请参见密钥策略、凭据策略。

  3. 登录ECS 管理控制台,将 RAM 角色授予 ECS 实例。

STS Token

通过 STS 服务为 RAM 用户或 RAM 角色颁发一个临时访问凭证(STS Token),可以在限定的有效期内,以符合策略规定的权限访问 KMS,超过有效期后,该凭证自动失效。

  1. 登录RAM 控制台,创建 RAM 用户或 RAM 角色。具体操作,请参见创建RAM用户、创建RAM角色。

  2. 为 RAM 用户或 RAM 角色授予AliyunSTSAssumeRoleAccess权限。具体操作,请参见管理RAM用户的权限、管理RAM角色的权限。

  3. 授予 RAM 用户或 RAM 角色访问 KMS 的权限。

    • 方式一:设置基于身份的策略

      单击 RAM 角色或用户操作列的新增授权,直接绑定 KMS 内置系统权限策略。KMS 内置系统权限策略,请参见密钥管理服务系统权限策略参考。

      说明

      同时支持自定义权限策略,具体操作请参见创建自定义权限策略。

    • 方式二:设置基于资源的策略

      KMS 支持基于资源的策略,即为单个密钥和凭据设置访问权限,用于控制哪些阿里云账号、RAM 用户、RAM 角色有权限来管理或使用 KMS 密钥、凭据。详细介绍,请参见密钥策略、凭据策略。

  4. 使用 RAM 用户或 RAM 角色调用 STS 服务的 AssumeRole 接口获取 STS 临时访问凭证。具体操作,请参见AssumeRole - 获取扮演角色的临时身份凭证。

AK+RamRoleArn

RAM 用户或云产品可以通过扮演角色的方式获取临时权限(STS Token),而不是直接使用长期密钥,降低了密钥泄露的风险。例如,在临时的数据处理任务中,RAM 用户或云产品临时扮演一个具有特定 RamRoleArn 的角色,完成任务后角色权限被收回,减少泄露风险。

  1. 创建用户 AK

    1. 登录RAM 控制台,在身份管理 > 用户页面,单击目标 RAM 用户名称。

    2. 为 RAM 用户分配系统策略 AliyunSTSAssumeRoleAccess或包含权限操作sts:AssumeRole的自定义策略。

    3. 在凭证管理标签页的AccessKey区域,单击创建 AccessKey。

  2. 创建 RAM 角色并授权:

    1. 在身份管理 > 角色页面,单击创建角色具体操作,请参见创建RAM角色。

    2. 授予 RAM 角色访问 KMS 的权限。

      • 方式一:设置基于身份的策略

        单击 RAM 角色操作列的新增授权,直接绑定 KMS 内置系统权限策略到 RAM 角色。KMS 内置系统权限策略,请参见密钥管理服务系统权限策略参考。

        说明

        同时支持自定义权限策略,具体操作请参见创建自定义权限策略。

      • 方式二:设置基于资源的策略

        KMS 支持基于资源的策略,即为单个密钥和凭据设置访问权限,用于控制哪些阿里云账号、RAM 用户、RAM 角色有权限来管理或使用 KMS 密钥、凭据。详细介绍,请参见密钥策略、凭据策略。

  3. 获取目标 RAM 角色的 RamRoleArn。具体操作,请参见查看RAM角色。

    1. 在身份管理 > 角色页面,单击目标角色名称。

    2. 进入角色详情页,在ARN区域可获取 RamRoleArn 信息。

      说明

      RamRoleArn 是 RAM 角色的 ARN 信息,即需要扮演的角色 ID。格式为 acs:ram::$accountID:role/$roleName。$accountID 为阿里云账号 ID。$roleName 为 RAM 角色名称。

OIDC Role ARN

  1. 创建 OIDC 身份提供商

    1. 使用 RAM 管理员登录RAM 控制台,进入集成管理 > SSO 管理页面,并选择角色 SSO。

    2. 在OIDC页签,单击创建身份提供商。

    3. 在创建身份提供商页面,设置身份提供商信息。具体配置,请参见管理OIDC身份提供商。

  2. 获取并保存 OIDC 身份信息(ARN 和客户端 ID)

    1. 进入集成管理 > SSO 管理页面,单击目标身份提供商名称。

    2. 进入身份提供商详情页,可查看ARN和客户端 ID。

  3. 创建 OIDC 身份提供商的 RAM 角色并授权

    1. 使用 RAM 管理员登录RAM 控制台,在身份管理 > 角色页面。

    2. 单击创建角色,在创建页面右上角,单击切换编辑器。

    3. 在编辑器中指定具体的 OIDC 身份提供商。选择可视化编辑模式,并参考如下说明,完成配置。

      说明

      更多模式,请参见创建OIDC身份提供商的RAM角色。

      1. 在主体中选择身份提供商后,单击下方编辑。

      2. 在添加主体弹窗中,参考如下说明,完成配置。

        • 身份提供商类型:选择OIDC。

        • 身份提供商:选择之前创建的 OIDC 身份提供商。

  4. 授予 OIDC RAM 角色访问 KMS 的权限

    • 方式一:设置基于身份的策略

      返回身份管理角色列表页,单击目标 OIDC 角色操作列的新增授权,直接绑定 KMS 内置系统权限策略到 RAM 角色。KMS 内置系统权限策略,请参见密钥管理服务系统权限策略参考。

      说明

      同时支持自定义权限策略,具体操作请参见创建自定义权限策略。

    • 方式二:设置基于资源的策略

      KMS 支持基于资源的策略,即为单个密钥和凭据设置访问权限,用于控制哪些阿里云账号、RAM 用户、RAM 角色有权限来管理或使用 KMS 密钥、凭据。详细介绍,请参见密钥策略、凭据策略。

  5. 获取目标 Role ARN

    1. 在身份管理 > 角色页面,单击目标角色名称。

    2. 进入角色详情页,在ARN区域可获取 OIDC Role ARN 信息。

      说明

      Role ARN 是 RAM 角色的 ARN 信息,即需要扮演的角色 ID。格式为 acs:ram::$accountID:role/$roleName。$accountID 为阿里云账号 ID。$roleName 为 RAM 角色名称。

  6. 签发并保存 OIDC 令牌(OIDC Token)文件

    阿里云不支持在控制台上直接通过 OIDC 登录,但可以通过编程方式完成 OIDC SSO 流程。获取 OIDC 令牌需要通过标准 OAuth 2.0 流程从 OIDC IdP 获取。例如当应用程序运行于已启用RRSA功能的 ACK 集群中时,集群将自动为该应用 Pod 创建和挂载相应的服务账户 OIDC Token 文件。

AAP鉴权(不推荐)

共享网关配置

  1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击应用接入 > 访问控制(原接入点)。

  2. 创建网络规则(非必须)。

    说明

    如果不需要基于来源 IP 限制访问,则不需要设置网络规则。但为了更高的安全性,通常建议合理设置。

    1. 单击网络规则页签,然后单击创建网络规则。

    2. 在创建网络规则面板,网络类型选择Public,填写允许访问的源IP地址后,单击确定。

  3. 创建权限策略。

    1. 单击权限策略,然后单击创建权限策略。

    2. 在创建权限策略面板,按照下方提示完成共享网关配置后,单击确定。

      1. 作用域:KMS共享网关

      2. 允许访问的资源:勾选需要访问的凭据

      3. 网络控制规则(非必须):勾选步骤二创建网络规则。

  4. 创建应用接入点 AAP。

    1. 单击应用接入页签,然后单击创建应用接入点。

    2. 在创建应用接入点面板,创建模式选择标准创建,然后按照下方提示完成各项配置。

      配置项

      说明

      认证方式

      选择 ClientKey

      Client Key加密口令

      设置 8~64 位包含数字、英文大小写、特殊字符~!@#$%^&*?_-的字符串

      有效期

      重要

      推荐设置为 1 年,以降低 ClientKey 被泄露的风险。请务必在到期前更换,以免无法正常访问 KMS。具体操作,请参见更换ClientKey。

      权限策略

      选择步骤三创建的权限策略。

    3. 单击确定,浏览器会自动下载ClientKey。ClientKey包含以下内容:

      • 应用身份凭证内容(ClientKeyContent):文件名默认为clientKey_****.json

      • 凭证口令(ClientKeyPassword):文件名默认为clientKey_****_Password.txt。

专属网关配置

ClientKey 支持快速创建和标准创建两种方式。关于 ClientKey 的详细介绍,请参见应用接入点概述、创建应用接入点。

  • 方式一:快速创建

    操作便捷高效,适用于快速测试和开发场景,该方式创建的访问凭证可以访问 KMS 实例的全部资源。

    1. 登录密钥管理服务控制台,在顶部菜单栏选择地域后,在左侧导航栏单击应用接入 > 访问控制(原接入点)。

    2. 在应用接入页签,单击创建应用接入点,在创建应用接入点面板完成各项配置。

      配置项

      说明

      创建模式

      选择快速创建。

      作用域(KMS实例)

      选择应用要访问的KMS实例。

      应用接入点名称

      自定义应用接入点的名称。

      认证方式

      默认为ClientKey,不支持修改。

      加密算法

      选择用于加密 ClientKey 的加密算法。可选 TripleDES-CBC 或 RC2-CBC,默认为 RC2-CBC。

      说明

      RC2-CBC 适用于大多数运行环境,推荐优先使用;若您的运行环境有更严格的算法要求而不支持 RC2-CBC,请选择 TripleDES-CBC

      默认权限策略

      默认为key/*secret/*,不支持修改。即应用可以访问指定KMS实例中的所有密钥和凭据。

    3. 单击确定,浏览器会自动下载ClientKey。ClientKey包含以下内容:

      • 应用身份凭证内容(ClientKeyContent):文件名默认为clientKey_****.json

      • 凭证口令(ClientKeyPassword):文件名默认为clientKey_****_Password.txt。

  • 方式二:标准创建

    若希望对资源设置更精细化的访问权限,建议使用标准创建。

    1. 请参考创建应用接入点中的标准创建方式,创建用于访问专属网关的 ClientKey。关键配置说明如下:

      1. 配置网络规则时,网络类型选择Private。

      2. 配置权限规则作用域时,请选择对应的KMS 实例 ID。

    2. 创建完成后,浏览器会自动下载 ClientKey。ClientKey 包含以下内容:

      • 应用身份凭证内容(ClientKeyContent):文件名默认为clientKey_****.json

      • 凭证口令(ClientKeyPassword):文件名默认为clientKey_****_Password.txt。