最近更新时间:2026-04-10 15:23:10
公共请求参数是调用金山云 OpenAPI 时必须携带的基础参数。本节说明各参数的格式、是否必填以及含义。
使用 Authorization Header 方式,签名信息通过请求头传递。
参数名 | 类型 | 必填 | 描述 |
Authorization | String | 是 | AWS4 签名认证头,格式见下方说明 |
X-Amz-Date | String | 是 | 签名时间,格式 |
Host | String | 是 | 请求域名,例如 |
Authorization: AWS4-HMAC-SHA256
Credential=<AccessKeyId>/<YYYYMMDD>/<region>/<service>/aws4_request,
SignedHeaders=<signed-headers>,
Signature=<signature>字段 | 描述 |
Credential | AccessKeyId 与凭证作用域,格式: |
SignedHeaders | 参与签名的请求头列表,小写,分号分隔,例如 |
Signature | 签名计算结果,64 位十六进制字符串 |
参数名 | 类型 | 必填 | 描述 |
Action | String | 是 | 接口操作名称,对应具体调用的 OpenAPI 接口 |
Version | String | 是 | 接口版本号,参考具体 API 文档 |
DryRun | Boolean | 否 | 权限验证模式: |
除公共参数外,每个接口有各自的业务参数,详见对应接口文档。业务参数的传递方式如下:
GET 请求:业务参数拼接在 Query String 中,与公共参数一起参与签名计算。
GET /?Action=DescribeInstances&Version=2016-03-04&InstanceId.1=ins-xxx&MaxResults=10POST 请求:
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,
Action和Version始终放在 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<HTTPMethod>\n
<CanonicalURI>\n
<CanonicalQueryString>\n
<CanonicalHeaders>\n
<SignedHeaders>\n
<HexEncode(SHA256(RequestPayload))>CanonicalQueryString:所有 Query 参数按参数名 URI 编码后字典序排列,用 & 连接
CanonicalHeaders:参与签名的请求头,格式为 lowercase(header):trimall(value)\n
RequestPayload:请求体内容;GET 请求时为空字符串
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))
纯净模式