阿里云SDK不仅支持通过调用OpenAPI执行创建实例、创建密钥等管控类操作,还支持执行加密解密、获取凭据值等业务类操作。其中管控类操作仅可通过共享网关访问,而业务类操作既支持通过共享网关也能通过专属网关访问。本文介绍业务如何通过阿里云SDK接入KMS。
接入流程简述
共享网关和专属网关的差异
以下表格仅对比在业务类操作中网关之间的差异。
差异点 | 共享网关 | 专属网关 |
差异点 | 共享网关 | 专属网关 |
网络差异 | 公网或VPC网络。 使用前需要开启公网访问开关。具体操作,请参见通过公网访问KMS实例中的密钥。 | VPC网络。 |
性能差异 | 以加解密性能为例,通过共享网关访问KMS时QPS为1000。 | 以您购买的实例的计算性能规格为准,例如1000、2000等。 |
初始化客户端时的配置差异 |
|
|
API差异 | 支持所有密码运算OpenAPI。具体API列表,请参见本文的业务类-密码运算。 | |
身份认证和鉴权差异 |
|
|
审计差异 | 通过操作审计(ActionTrail),审计操作日志。 | 通过日志服务 SLS(Simple Log Service),审计操作日志。 |
支持的OpenAPI
您可以通过共享网关执行管控类操作和业务类操作,通过专属网关执行业务类操作。具体的 API 列表,请查看以下内容。
Endpoint
身份认证与授权
使用阿里云SDK通过共享网关和专属网关访问OpenAPI时认证方式相同,支持AK、STS Token、RamRoleArn、ECS实例RAM角色等基于RAM的身份认证方式。详细内容,请参见管理访问凭据。
阿里云账号默认有所有资源的Administrator权限且不可修改,其AccessKey泄露会危及资源安全,因此强烈建议不要为主账号创建AccessKey,请创建专用于API访问的RAM用户并创建对应的AccessKey,并完成最小化授权。具体操作,请参见创建AccessKey。
登录RAM控制台,在用户页面,单击目标RAM用户名称。
在认证管理页签下的AccessKey区域,单击创建AccessKey,并按照指引完成创建。
授予RAM用户访问KMS的权限。
方式一:设置基于身份的策略
KMS内置了系统权限策略,可以直接绑定到RAM用户,详细介绍,请参见密钥管理服务系统权限策略参考。您也可以自定义权限策略。
方式二:设置基于资源的策略
KMS支持基于资源的策略,即为单个密钥和凭据设置访问权限,用于控制哪些阿里云账号、RAM用户、RAM角色有权限来管理或使用KMS密钥、凭据。详细介绍,请参见密钥策略、凭据策略。
通过STS服务为RAM用户或RAM角色颁发一个临时访问凭证,可以在限定的有效期内,以符合策略规定的权限访问KMS,超过有效期后,该凭证自动失效。
为RAM用户或RAM角色授予
AliyunSTSAssumeRoleAccess
权限。具体操作,请参见为RAM用户授权、为RAM角色授权。授予RAM用户或RAM角色访问KMS的权限。
方式一:设置基于身份的策略
KMS内置了系统权限策略,可以直接绑定到RAM用户或RAM角色,详细介绍,请参见密钥管理服务系统权限策略参考。您也可以自定义权限策略。
方式二:设置基于资源的策略
KMS支持基于资源的策略,即为单个密钥和凭据设置访问权限,用于控制哪些阿里云账号、RAM用户、RAM角色有权限来管理或使用KMS密钥、凭据。详细介绍,请参见密钥策略、凭据策略。
使用RAM用户或RAM角色调用STS服务的AssumeRole接口获取STS临时访问凭证。具体操作,请参见AssumeRole - 获取扮演角色的临时身份凭证。
RAM用户或云产品可以通过扮演角色的方式获取临时权限,而不是直接使用长期密钥,降低了密钥泄露的风险。例如,在临时的数据处理任务中,RAM用户或云产品临时扮演一个具有特定RamRoleArn的角色,完成任务后角色权限被收回,减少泄露风险。
授予RAM角色访问KMS的权限。
方式一:设置基于身份的策略
KMS内置了系统权限策略,可以直接绑定到RAM角色,详细介绍,请参见密钥管理服务系统权限策略参考。您也可以自定义权限策略。
方式二:设置基于资源的策略
KMS支持基于资源的策略,即为单个密钥和凭据设置访问权限,用于控制哪些阿里云账号、RAM用户、RAM角色有权限来管理或使用KMS密钥、凭据。详细介绍,请参见密钥策略、凭据策略。
获取目标RAM角色的RamRoleArn。具体操作,请参见查看RAM角色。
RamRoleArn是RAM角色的ARN信息,即需要扮演的角色ID。格式为acs:ram::$accountID:role/$roleName。$accountID为阿里云账号ID。$roleName为RAM角色名称。
ECS RAM角色是指为ECS实例授予的RAM角色,该RAM角色是一个受信服务为云服务器的普通服务角色。使用实例RAM角色可以实现在ECS实例内部无需配置AccessKey即可获取临时访问凭证(STS Token),从而调用KMS的OpenAPI。
具体操作,请参见实例RAM角色。
登录RAM控制台,创建可信实体为阿里云服务的RAM角色。
可信实体类型:选择阿里云服务。
角色类型:选择普通服务角色。
受信服务:选择云服务器。
授予RAM角色访问KMS的权限。
方式一:设置基于身份的策略
KMS内置了系统权限策略,可以直接绑定到RAM角色,详细介绍,请参见密钥管理服务系统权限策略参考。您也可以自定义权限策略。
方式二:设置基于资源的策略
KMS支持基于资源的策略,即为单个密钥和凭据设置访问权限,用于控制哪些阿里云账号、RAM用户、RAM角色有权限来管理或使用KMS密钥、凭据。详细介绍,请参见密钥策略、凭据策略。
登录ECS管理控制台,将RAM角色授予ECS实例。
支持的开发语言
下表列举了支持的语言类型,以及各语言SDK的下载地址和参考文档。
支持的语言 | V2.0 SDK(推荐) | V1.0 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 参考文档:无 | 未提供 |
- 本页导读 (1)
- 接入流程简述
- 共享网关和专属网关的差异
- 支持的OpenAPI
- Endpoint
- 身份认证与授权
- 支持的开发语言