阿里云SDK不仅支持通过调用OpenAPI执行创建实例、创建密钥等管控类操作,还支持执行加密解密、获取凭据值等业务类操作。其中管控类操作仅可通过共享网关访问,而业务类操作既支持通过共享网关也能通过专属网关访问。本文介绍业务如何通过阿里云SDK接入KMS。
接入流程简述
共享网关和专属网关的差异
以下表格仅对比在业务类操作中网关之间的差异。
差异点 | 共享网关 | 专属网关 |
网络差异 | 公网或VPC网络。 | KMS私有网络。 |
性能差异 | 以加解密性能为例,通过共享网关访问KMS时QPS为1000。 | 以您购买的实例的计算性能规格为准,例如1000、2000等。 |
初始化客户端时的配置差异 |
|
|
API差异 | 支持所有业务类OpenAPI。具体API列表,请参见本文的支持的OpenAPI。 | 专属网关不支持ReEncrypt,其他支持的API和公网访问相同。具体API列表,请参见本文的支持的OpenAPI。 |
身份认证和鉴权差异 |
|
|
审计差异 | 通过操作审计(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概述 |
创建一个主密钥 | 创建一个主密钥。 | |
查询调用者在调用地域的所有主密钥ID | 查询调用者在调用地域的所有主密钥ID。 | |
返回指定主密钥(CMK)的相关信息 | 查询用户主密钥(CMK)详情。 | |
更新主密钥描述信息 | 更新主密钥的描述信息。 | |
启用指定的主密钥进行加解密 | 启用指定的主密钥进行加解密。 | |
禁用指定的主密钥(CMK)进行加解密 | 禁用指定的主密钥(CMK)进行加解密。 | |
给主密钥(CMK)创建一个别名 | 为主密钥(CMK)创建一个别名。 | |
查询当前用户在当前地域的所有别名 | 查询当前用户在当前地域的所有别名。 | |
查询主密钥(CMK)所有别名 | 查询与指定主密钥(CMK)对应的所有别名。 | |
删除别名 | 删除别名。 | |
更新主密钥(CMK)ID | 更新已存在的别名所代表的主密钥(CMK)ID。 | |
获取导入主密钥(CMK)材料的参数 | 获取导入主密钥材料的参数。 | |
导入密钥材料 | 导入密钥材料。 | |
删除已导入的密钥材料 | 删除已导入的密钥材料。 | |
申请删除一个指定的主密钥(CMK) | 申请删除一个指定的主密钥(CMK)。 | |
撤销密钥删除 | 撤销密钥删除。 | |
设置删除保护 | 为用户主密钥(CMK)开启或关闭删除保护。 | |
更新密钥轮转策略 | 更新密钥的周期性自动轮转策略。 | |
查询指定密钥版本信息 | 查询指定密钥版本信息。 | |
为主密钥创建一个新的密钥版本 | 为用户主密钥(CMK)创建密钥版本。 | |
列出主密钥的所有密钥版本 | 列出主密钥的所有密钥版本。 | |
设置密钥策略 | 为KMS实例中的密钥设置密钥策略。 | |
查询密钥策略 | 查询指定密钥的密钥策略。 |
凭据管理
API | 标题 | API概述 |
查询当前用户在当前地域创建的所有凭据 | 查询当前用户在当前地域创建的所有凭据。 | |
删除凭据对象 | 删除凭据对象。 | |
创建凭据 | 创建凭据并存入凭据的初始版本。 | |
更新凭据的元数据 | 更新凭据的元数据。 | |
更新凭据的版本状态 | 更新凭据的版本状态。 | |
更新动态凭据的轮转策略 | 更新凭据轮转策略。 | |
查询凭据的元数据信息 | 查询凭据的元数据信息。 | |
查询凭据的所有版本信息 | 查询凭据的所有版本信息。 | |
获得一个随机口令字符串 | 获得一个随机口令字符串。 | |
为凭据存入一个新版本的凭据值 | 为通用凭据存入一个新版本的凭据值。 | |
恢复被删除的凭据 | 恢复被删除的凭据。 | |
主动轮转动态凭据 | 立即轮转凭据。 | |
设置凭据策略 | 为KMS实例中的凭据钥设置凭据策略。 | |
查询凭据策略 | 查询指定凭据的凭据策略。 |
标签管理
|
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列表 | 描述 | 共享网关 | 专属网关 |
使用对称密钥将明文加密为密文。 | |||
生成一个随机的数据密钥,用于本地数据加密。 | |||
生成一个随机的数据密钥,用于本地数据加密,且不返回数据密钥明文。 | |||
使用传入的公钥加密导出数据密钥。 | |||
随机生成一个数据密钥,通过您指定的KMS密钥和公钥加密后,返回使用KMS密钥加密后的数据密钥密文,以及使用公钥加密后的数据密钥密文。 | |||
解密密文。 | |||
对密文进行转加密。即先将密文解密,然后将解密得到的数据或者数据密钥使用新的主密钥再次进行加密,返回加密结果。 | |||
使用非对称密钥进行签名。 | |||
使用非对称密钥进行验签。 | |||
使用非对称密钥进行解密。 | |||
使用非对称密钥进行加密。 | |||
获取非对称密钥的公钥。 |
业务类-获取凭据值
API列表 | 描述 | 共享网关 | 专属网关 |
获取凭据值。 |
支持的开发语言
下表列举了支持的语言类型,以及各语言SDK的下载地址和参考文档。
支持的语言 | V2.0 SDK | V1.0 SDK(不推荐) |
Java | 下载地址:
参考文档:集成SDK | 下载地址:aliyun-java-sdk-kms 参考文档:开始使用 |
Python | 参考文档:集成SDK | 参考文档:集成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 参考文档:无 | 未提供 |