阿里云SDK

更新时间:
复制为 MD 格式

阿里云SDK不仅支持通过调用OpenAPI执行创建实例、创建密钥等管控类操作,还支持执行加密解密、获取凭据值等业务类操作。其中管控类操作仅可通过共享网关访问,而业务类操作既支持通过共享网关也能通过专属网关访问。本文介绍业务如何通过阿里云SDK接入KMS。

接入流程简述

image

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

以下表格仅对比在业务类操作中网关之间的差异。

差异点

共享网关

专属网关

网络差异

公网或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证书:需要配置。但仅阿里云SDK(2.0)支持,阿里云SDK(1.0)不支持,阿里云SDK(1.0)需要将运行时参数HTTPSInsecure设置为true,即client.SetHTTPSInsecure(true)

API差异

支持所有业务类OpenAPI。具体API列表,请参见本文的支持的OpenAPI。

专属网关不支持ReEncrypt,其他支持的API和公网访问相同。具体API列表,请参见本文的支持的OpenAPI。

身份认证和鉴权差异

  • 使用STS Token认证并获取凭据的过程中,仅对GetSecretValue操作进行鉴权,不对Decrypt操作进行鉴权。其他认证方式对两种操作均鉴权。

  • 支持通过acs:SourceVpcacs:SourceVpc条件键进行网络访问控制。

  • 获取凭据的过程中,对GetSecretValue操作、Decrypt操作均进行鉴权。

  • 不支持通过acs:SourceVpcacs:SourceVpc条件键进行网络访问控制。若有网络访问控制的需求,请联系阿里云技术支持。

  • 设置密钥策略、凭据策略后生效时长最长为5分钟。

审计差异

通过操作审计(ActionTrail),审计操作日志。

通过日志服务 SLS(Simple Log Service),审计操作日志。

支持的OpenAPI

可以通过共享网关执行管控类操作和业务类操作,通过专属网关执行业务类操作。具体的 API 列表,请查看以下内容。

重要

若需通过公网访问KMS实例中的密钥并进行密码运算操作,需要先开启公网访问开关,然后访问通过共享网关地址调用相关API。

管控类

服务管理

API

标题

API概述

DescribeAccountKmsStatus 查询当前阿里云账号的密钥管理服务状态 查询当前阿里云账号的密钥管理服务状态。
OpenKmsService 为当前阿里云账号开通密钥管理服务 为当前阿里云账号开通密钥管理服务。

实例管理

API

标题

API概述

ListKmsInstances 获取实例列表 查询 KMS 实例列表。
ConnectKmsInstance 连接实例并配置网络 启用一个KMS实例。
GetKmsInstance 获取实例 查询一个KMS实例的详情。
UpdateKmsInstanceBindVpc 更新实例分享VPC 更新KMS实例配置的VPC。
ReleaseKmsInstance 释放KMS按量付费实例 释放KMS按量付费实例。
GetDefaultKmsInstance 获取默认KMS实例 获取默认KMS实例。

密钥管理

API

标题

API概述

CreateKey

创建一个主密钥

创建一个主密钥。

ListKeys

查询调用者在调用地域的所有主密钥ID

查询调用者在调用地域的所有主密钥ID。

DescribeKey

返回指定主密钥(CMK)的相关信息

查询用户主密钥(CMK)详情。

UpdateKeyDescription

更新主密钥描述信息

更新主密钥的描述信息。

EnableKey

启用指定的主密钥进行加解密

启用指定的主密钥进行加解密。

DisableKey

禁用指定的主密钥(CMK)进行加解密

禁用指定的主密钥(CMK)进行加解密。

CreateAlias

给主密钥(CMK)创建一个别名

为主密钥(CMK)创建一个别名。

ListAliases

查询当前用户在当前地域的所有别名

查询当前用户在当前地域的所有别名。

ListAliasesByKeyId

查询主密钥(CMK)所有别名

查询与指定主密钥(CMK)对应的所有别名。

DeleteAlias

删除别名

删除别名。

UpdateAlias

更新主密钥(CMK)ID

更新已存在的别名所代表的主密钥(CMK)ID。

GetParametersForImport

获取导入主密钥(CMK)材料的参数

获取导入主密钥材料的参数。

ImportKeyMaterial

导入密钥材料

导入密钥材料。

DeleteKeyMaterial

删除已导入的密钥材料

删除已导入的密钥材料。

ScheduleKeyDeletion

申请删除一个指定的主密钥(CMK)

申请删除一个指定的主密钥(CMK)。

CancelKeyDeletion

撤销密钥删除

撤销密钥删除。

SetDeletionProtection

设置删除保护

为用户主密钥(CMK)开启或关闭删除保护。

UpdateRotationPolicy

更新密钥轮转策略

更新密钥的周期性自动轮转策略。

DescribeKeyVersion

查询指定密钥版本信息

查询指定密钥版本信息。

CreateKeyVersion

为主密钥创建一个新的密钥版本

为用户主密钥(CMK)创建密钥版本。

ListKeyVersions

列出主密钥的所有密钥版本

列出主密钥的所有密钥版本。

SetKeyPolicy

设置密钥策略

KMS实例中的密钥设置密钥策略。

GetKeyPolicy

查询密钥策略

查询指定密钥的密钥策略。

凭据管理

API

标题

API概述

ListSecrets

查询当前用户在当前地域创建的所有凭据

查询当前用户在当前地域创建的所有凭据。

DeleteSecret

删除凭据对象

删除凭据对象。

CreateSecret

创建凭据

创建凭据并存入凭据的初始版本。

UpdateSecret

更新凭据的元数据

更新凭据的元数据。

UpdateSecretVersionStage

更新凭据的版本状态

更新凭据的版本状态。

UpdateSecretRotationPolicy

更新动态凭据的轮转策略

更新凭据轮转策略。

DescribeSecret

查询凭据的元数据信息

查询凭据的元数据信息。

ListSecretVersionIds

查询凭据的所有版本信息

查询凭据的所有版本信息。

GetRandomPassword

获得一个随机口令字符串

获得一个随机口令字符串。

PutSecretValue

为凭据存入一个新版本的凭据值

为通用凭据存入一个新版本的凭据值。

RestoreSecret

恢复被删除的凭据

恢复被删除的凭据。

RotateSecret

主动轮转动态凭据

立即轮转凭据。

SetSecretPolicy

设置凭据策略

KMS实例中的凭据钥设置凭据策略。

GetSecretPolicy

查询凭据策略

查询指定凭据的凭据策略。

标签管理

API

标题

API概述

GetKmsInstanceQuotaInfos 获取实例配额信息 获取实例配额信息。
ListResourceTags 获取用户主密钥的标签 获取用户主密钥的标签。
TagResource 为主密钥或凭据设置标签 为主密钥、凭据或证书绑定标签。
UntagResource 删除用户主密钥或凭据的指定标签 为主密钥、凭据或证书解绑标签。

应用管理

API

标题

API概述

CreateNetworkRule 创建网络规则 创建一条网络控制规则,设置允许访问KMS的私网IP或私网的网段。
ListNetworkRules 获取网络规则列表 查询网络控制规则列表。
DescribeNetworkRule 获取网络规则 查询一个网络控制规则的详情。
UpdateNetworkRule 更新网络规则 更新一个网络控制规则。
DeleteNetworkRule 删除网络规则 删除一条网络控制规则。
CreatePolicy 创建访问策略 创建一个权限策略,设置允许应用访问的密钥和凭据。
ListPolicies 获取访问策略列表 查询权限策略列表。
DescribePolicy 获取访问策略 查询一个权限策略的详情。
UpdatePolicy 更新访问策略 更新一个权限策略。
DeletePolicy 删除访问策略 删除一条权限策略。
CreateApplicationAccessPoint 创建应用接入点 创建一个应用接入点。
ListApplicationAccessPoints 获取应用接入点列表 查询应用接入点列表。
DescribeApplicationAccessPoint 获取应用接入点 查询一个应用接入点的详情。
UpdateApplicationAccessPoint 更新应用接入点 更新一个应用接入点信息。
DeleteApplicationAccessPoint 删除应用接入点 删除一个应用接入点。
CreateClientKey 创建应用身份凭证 创建一个应用身份凭证(ClientKey)。
ListClientKeys 获取应用身份凭证列表 查询应用身份凭证(ClientKey)列表。
GetClientKey 获取应用身份凭证 获取一个应用身份凭证(ClientKey)信息。
DeleteClientKey 删除应用身份凭证 删除一个应用身份凭证(ClientKey)。

业务类-密码运算

API列表

描述

共享网关

专属网关

Encrypt

使用对称密钥将明文加密为密文。

支持

支持

GenerateDataKey

生成一个随机的数据密钥,用于本地数据加密。

支持

支持

GenerateDataKeyWithoutPlaintext

生成一个随机的数据密钥,用于本地数据加密,且不返回数据密钥明文。

支持

支持

ExportDataKey

使用传入的公钥加密导出数据密钥。

支持

支持

GenerateAndExportDataKey

随机生成一个数据密钥,通过您指定的KMS密钥和公钥加密后,返回使用KMS密钥加密后的数据密钥密文,以及使用公钥加密后的数据密钥密文。

支持

支持

Decrypt

解密密文。

支持

支持

ReEncrypt

对密文进行转加密。即先将密文解密,然后将解密得到的数据或者数据密钥使用新的主密钥再次进行加密,返回加密结果。

支持

不支持

AsymmetricSign

使用非对称密钥进行签名。

支持

支持

AsymmetricVerify

使用非对称密钥进行验签。

支持

支持

AsymmetricDecrypt

使用非对称密钥进行解密。

支持

支持

AsymmetricEncrypt

使用非对称密钥进行加密。

支持

支持

GetPublicKey

获取非对称密钥的公钥。

支持

支持

业务类-获取凭据值

API列表

描述

共享网关

专属网关

GetSecretValue

获取凭据值。

支持

支持

支持的开发语言

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

支持的语言

V2.0 SDK

V1.0 SDK(不推荐)

Java

下载地址:

参考文档:集成SDK

下载地址:aliyun-java-sdk-kms

参考文档:开始使用

Python

下载地址:alibabacloud_kms20160120

参考文档:集成SDK

下载地址:aliyun-python-sdk-kms

参考文档:集成SDK

C++

下载地址:kms-20160120

参考文档:无

下载地址:aliyun-openapi-cpp-sdk/kms

参考文档:无

PHP

下载地址:alibabacloud/kms-20160120

参考文档:快速开始

下载地址:alibabacloud/kms

参考文档:开始使用

.NET(C#)

下载地址:AlibabaCloud.SDK.Kms20160120

参考文档:快速开始

下载地址:aliyun-net-sdk-kms

参考文档:开始使用

Go

下载地址:kms-20160120

参考文档:集成SDK

下载地址:alibaba-cloud-sdk-go

参考文档:开始使用

TypeScript

下载地址:kms20160120

参考文档:无

未提供

Swift

下载地址:kms-20160120

参考文档:无

未提供