使用非对称密钥进行签名。
接口说明
注意事项
-
RAM 用户或 RAM 角色调用该 OpenAPI 需要被授予的权限策略详情,请参见访问控制。
-
本接口可以通过共享网关或专属网关调用。详细介绍,请参见阿里云 SDK。
共享网关:通过公网、VPC 域名访问 KMS,该方式需要打开公网开关。具体操作,请参见通过公网访问 KMS 实例中的密钥。
专属网关:通过 KMS 私网地址(
<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com
)访问 KMS。
QPS 限制
通过共享网关调用:本接口的单用户 QPS 限制为 200 次/秒。超过限制,API 调用将会被限流,这可能影响您的业务,请合理调用。
通过专属网关调用:本接口的单用户 QPS 限制以您 KMS 实例的计算性能规格为准。详细介绍,请参见性能数据。
详细说明
仅支持 Usage 为SIGN/VERIFY的非对称密钥。支持的签名算法如下表:
KeySpec | Algorithm | 说明 |
RSA_2048 | RSA_PSS_SHA_256 | RSASSA-PSS using SHA-256 and MGF1 with SHA-256 |
RSA_2048 | RSA_PKCS1_SHA_256 | RSASSA-PKCS1-v1_5 using SHA-256 |
RSA_3072 | RSA_PSS_SHA_256 | RSASSA-PSS using SHA-256 and MGF1 with SHA-256 |
RSA_3072 | RSA_PKCS1_SHA_256 | RSASSA-PKCS1-v1_5 using SHA-256 |
EC_P256 | ECDSA_SHA_256 | ECDSA on the P-256 Curve(secp256r1) with a SHA-256 digest |
EC_P256K | ECDSA_SHA_256 | ECDSA on the P-256K Curve(secp256k1) with a SHA-256 digest |
EC_SM2 | SM2DSA | SM2 椭圆曲线数字签名算法 |
按照国家标准 GB/T 32918.2《信息安全技术 SM2 椭圆曲线公钥密码算法 第 2 部分:数字签名算法》,计算 SM2 签名值时,Digest 参数不是对原始消息直接计算 SM3 摘要,而是对 Z(A)和 M 的拼接值计算的摘要,其中 M 是待签名的原始消息,Z(A)是 GB/T 32918.2 中定义的用户 A 的杂凑值。
本文将提供一个示例,使用密钥 ID 为5c438b18-05be-40ad-b6c2-3be6752c****
、密钥版本 ID 为2ab1a983-7072-4bbc-a582-584b5bd8****
的非对称密钥,通过签名算法RSA_PSS_SHA_256
对摘要信息ZOyIygCyaOW6GjVnihtTFtIS9PNmskdyMlNKiuy****=
进行签名。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息
请求参数
名称 |
类型 |
必填 |
描述 |
示例值 |
KeyId |
string |
是 |
主密钥(CMK)的全局唯一标识符。 说明
该参数也可以被指定为主密钥绑定的别名。更多信息,请参见别名使用说明。 |
5c438b18-05be-40ad-b6c2-3be6752c**** |
KeyVersionId |
string |
是 |
密钥版本 ID。密钥版本的全局唯一标识符。 |
2ab1a983-7072-4bbc-a582-584b5bd8**** |
Algorithm |
string |
是 |
签名算法。 |
RSA_PSS_SHA_256 |
Digest |
string |
是 |
使用 Algorithm 中对应的哈希算法,对原始消息生成的摘要。 说明
|
ZOyIygCyaOW6GjVnihtTFtIS9PNmskdyMlNKiu****= |
DryRun |
string |
否 |
是否开启 DryRun 模式。
DryRun 模式用于测试 API 调用,验证您是否具有相应资源的权限,以及请求参数是否配置正确。DryRun 模式开启后,KMS 会始终返回失败并提示失败原因。失败原因包含如下:
|
false |
返回参数
名称 |
类型 |
描述 |
示例值 |
object |
|||
KeyVersionId |
string |
密钥版本 ID。密钥版本的全局唯一标识符。 |
2ab1a983-7072-4bbc-a582-584b5bd8**** |
KeyId |
string |
主密钥的全局唯一标识符。 说明
如果请求中的 KeyId 参数使用的是主密钥的别名,在响应中会返回别名对应的主密钥标识符。 |
5c438b18-05be-40ad-b6c2-3be6752c**** |
Value |
string |
计算出来的签名。 说明
使用 Base64 编码。 |
M2CceNZH00ZgL9ED/ZHFp21YRAvYeZHknJUc207OCZ0N9wNn9As4z2bON3FF3je+1Nu+2+/8Zj50HpMTpzYpMp2R93cYmACCmhaYoKydxylbyGzJR8y9likZRCrkD38lRoS40aBBvv/6iRKzQuo9EGYVcel36cMNg00VmYNBy3pa1rwg3gA4l3cy6kjayZja1WGPkVhrVKsrJMdbpl0ApLjXKuD8rw1n1XLCwCUEL5eLPljTZaAveqdOFQOiZnZEGI27qIiZe7I1fN8tcz6anS/gTM7xRKE++5egEvRWlTQQTJeApnPSiUPA+8ZykNdelQsOQh5SrGoyI4A5pq****== |
RequestId |
string |
本次调用请求的 ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。 |
475f1620-b9d3-4d35-b5c6-3fbdd941423d |
示例
正常返回示例
JSON
格式
{
"KeyVersionId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
"KeyId": "5c438b18-05be-40ad-b6c2-3be6752c****",
"Value": "M2CceNZH00ZgL9ED/ZHFp21YRAvYeZHknJUc207OCZ0N9wNn9As4z2bON3FF3je+1Nu+2+/8Zj50HpMTpzYpMp2R93cYmACCmhaYoKydxylbyGzJR8y9likZRCrkD38lRoS40aBBvv/6iRKzQuo9EGYVcel36cMNg00VmYNBy3pa1rwg3gA4l3cy6kjayZja1WGPkVhrVKsrJMdbpl0ApLjXKuD8rw1n1XLCwCUEL5eLPljTZaAveqdOFQOiZnZEGI27qIiZe7I1fN8tcz6anS/gTM7xRKE++5egEvRWlTQQTJeApnPSiUPA+8ZykNdelQsOQh5SrGoyI4A5pq****==",
"RequestId": "475f1620-b9d3-4d35-b5c6-3fbdd941423d"
}
错误码
HTTP status code |
错误码 |
错误信息 |
描述 |
---|---|---|---|
400 | InvalidParameter | The specified parameter is not valid. | 参数非法。 |
404 | InvalidAccessKeyId.NotFound | The Access Key ID provided does not exist in our records. | |
404 | Forbidden.KeyNotFound | The specified Key is not found. | 指定的密钥不存在。 |
404 | Forbidden.AliasNotFound | The specified Alias is not found. | 指定的别名找不到 |
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。