全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

公共参数

最近更新时间:2026-04-10 15:23:10

公共请求参数说明(AWS4-HMAC-SHA256)

公共请求参数是调用金山云 OpenAPI 时必须携带的基础参数。本节说明各参数的格式、是否必填以及含义。


签名方式

使用 Authorization Header 方式,签名信息通过请求头传递。


请求头参数

参数名

类型

必填

描述

Authorization

String

AWS4 签名认证头,格式见下方说明

X-Amz-Date

String

签名时间,格式 YYYYMMDD'T'HHMMSS'Z'(ISO 8601 基本格式),例如 20260410T031018Z

Host

String

请求域名,例如 iam.api.ksyun.com

Authorization 头格式

Authorization: AWS4-HMAC-SHA256
  Credential=<AccessKeyId>/<YYYYMMDD>/<region>/<service>/aws4_request,
  SignedHeaders=<signed-headers>,
  Signature=<signature>

字段

描述

Credential

AccessKeyId 与凭证作用域,格式:AccessKeyId/日期/区域/服务名/aws4_request

SignedHeaders

参与签名的请求头列表,小写,分号分隔,例如 host;x-amz-date

Signature

签名计算结果,64 位十六进制字符串


Query 参数

公共参数

参数名

类型

必填

描述

Action

String

接口操作名称,对应具体调用的 OpenAPI 接口

Version

String

接口版本号,参考具体 API 文档

DryRun

Boolean

权限验证模式:true 仅校验权限不执行操作,false 执行实际操作

业务参数

除公共参数外,每个接口有各自的业务参数,详见对应接口文档。业务参数的传递方式如下:

GET 请求:业务参数拼接在 Query String 中,与公共参数一起参与签名计算。

GET /?Action=DescribeInstances&Version=2016-03-04&InstanceId.1=ins-xxx&MaxResults=10

POST 请求

  • Content-Type: application/x-www-form-urlencoded:业务参数放在请求体中,Query String 只保留公共参数,请求体内容参与 Payload Hash 计算

  • Content-Type: application/json:业务参数以 JSON 格式放在请求体中,请求体内容参与 Payload Hash 计算

POST /?Action=CreateInstance&Version=2016-03-04
Content-Type: application/json

{"ImageId":"img-xxx","InstanceType":"N3.2B"}

注意:无论 GET 还是 POST,ActionVersion 始终放在 Query String 中。签名时 CanonicalQueryString 只包含 Query String 中的参数,请求体参数通过 Payload Hash 纳入签名。


请求示例

GET /?Action=ListUsers&Version=2015-11-01 HTTP/1.1
Host: iam.api.ksyun.com
X-Amz-Date: 20160914T114902Z
Authorization: AWS4-HMAC-SHA256 Credential=AKLTGo0pHK-EQWiDZWTSBSll2Q/20160914/cn-beijing-6/iam/aws4_request, SignedHeaders=host;x-amz-date, Signature=88f6284257863dedfc350da05d19d07f76cca622e93b829f5ce26c1a75d3da39

签名计算步骤

第一步:构造 Canonical Request

<HTTPMethod>\n
<CanonicalURI>\n
<CanonicalQueryString>\n
<CanonicalHeaders>\n
<SignedHeaders>\n
<HexEncode(SHA256(RequestPayload))>
  • CanonicalQueryString:所有 Query 参数按参数名 URI 编码后字典序排列,用 & 连接

  • CanonicalHeaders:参与签名的请求头,格式为 lowercase(header):trimall(value)\n

  • RequestPayload:请求体内容;GET 请求时为空字符串

第二步:构造 StringToSign

AWS4-HMAC-SHA256\n
<X-Amz-Date>\n
<YYYYMMDD>/<region>/<service>/aws4_request\n
<HexEncode(SHA256(CanonicalRequest))>

第三步:计算签名密钥

kDate    = HMAC-SHA256("AWS4" + SecretKey, YYYYMMDD)
kRegion  = HMAC-SHA256(kDate, region)
kService = HMAC-SHA256(kRegion, service)
kSigning = HMAC-SHA256(kService, "aws4_request")

第四步:计算签名

Signature = HexEncode(HMAC-SHA256(kSigning, StringToSign))

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈