You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需SDK调用AWS Bedrock API时签名不匹配问题排查

AWS Bedrock API签名不匹配问题排查(针对makeRequest方法)

常见签名错误点

  • 请求时间戳问题:AWS签名要求使用UTC时间,格式必须是YYYYMMDD'T'HHMMSS'Z',若本地时间偏移或格式不符,会直接导致签名校验失败。需确保makeRequest生成的时间戳完全符合规范,且请求发送时间与时间戳差值不超过15分钟。
  • Canonical Request构建错误:
    • HTTP方法必须大写(如POST不能写成post)
    • Canonical URI需精准匹配Bedrock接口路径,比如/model/anthropic.claude-v2/invoke,不能多/少斜杠
    • 无查询参数时,Canonical Query String必须为空字符串,不可省略
    • Headers部分必须包含host、x-amz-date,若有content-type也需纳入,且所有头字段需转小写后排序拼接
    • Signed Headers需与Canonical Headers中的字段完全一致,按逗号分隔排序
    • Hashed Payload必须是请求体的SHA-256哈希值,空请求体需固定使用e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
  • String to Sign构建错误:
    • 格式必须为AWS4-HMAC-SHA256\n{timestamp}\n{date}/{region}/bedrock/aws4_request\n{hashed_canonical_request},注意服务名bedrock不可写错
    • Date部分是时间戳的前8位(YYYYMMDD),需与timestamp严格对应
  • 签名密钥生成错误:
    • 生成步骤必须严格遵循:kSecret = "AWS4" + secretAccessKey → kDate = HMAC-SHA256(kSecret, date) → kRegion = HMAC-SHA256(kDate, region) → kService = HMAC-SHA256(kRegion, "bedrock") → kSigning = HMAC-SHA256(kService, "aws4_request"),每一步的参数都不能出错
  • Authorization头格式错误:
    • 格式需为AWS4-HMAC-SHA256 Credential={accessKeyId}/{date}/{region}/bedrock/aws4_request, SignedHeaders={signedHeaders}, Signature={signature},注意各部分分隔符,Credential路径、SignedHeaders需与之前的构建内容完全一致
  • 请求体处理问题:POST请求需保证发送的请求体与计算哈希时的内容完全一致,比如不能有多余空格、换行,JSON序列化需使用无缩进格式

调试建议

  1. 打印Canonical Request和String to Sign,与AWS官方文档示例逐条比对格式和内容
  2. 验证时间戳是否为当前UTC时间,格式是否符合要求
  3. 核对region是否为Bedrock支持的区域(如us-east-1、us-west-2等),不可填错
  4. 检查accessKeyId和secretAccessKey是否存在拼写错误或多余空格

内容的提问来源于stack exchange,提问作者EnriMR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:49:56