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

调用API Gateway时Authorization头应传入什么?含Cognito联邦身份场景

关于API Gateway Authorization请求头的两个问题解答

嘿,我来帮你把这两个问题拆解开讲清楚:

问题1:调用API Gateway时,Authorization请求头中需传入什么内容?

这个完全取决于你的API Gateway配置的授权类型,不同场景对应不同的内容:

  • 如果用的是Cognito用户池授权:直接传入用户登录后获取到的IdToken即可
  • 如果用的是IAM授权(比如通过IAM用户、Cognito联合身份角色访问):需要传入**AWS Signature Version 4(SigV4)**生成的签名串,这个签名要结合你的AWS凭证、请求时间、目标区域等信息按照AWS的签名规则生成
  • 如果用的是自定义授权器:传入你的授权器要求的验证令牌(比如自定义JWT、专属API密钥等,具体看你自定义授权的逻辑)
  • 如果API是公开无授权的:这个请求头可以省略,或者传空值也没问题

问题2:使用Cognito联合身份(IAM用户/角色)调用Lambda proxy集成的API Gateway,Authorization头应传入什么?

这种场景下,你的API Gateway肯定是配置了IAM授权(因为是通过IAM身份来做访问控制),所以Authorization头必须传入AWS SigV4签名串。

签名串的格式示例:

AWS4-HMAC-SHA256 Credential=<你的访问密钥ID>/<YYYYMMDD>/<AWS区域>/execute-api/aws4_request, SignedHeaders=<签名的请求头列表>, Signature=<生成的哈希签名值>

额外注意点:

除了Authorization头,你还需要配套传入这两个请求头:

  • X-Amz-Date:请求的时间戳,格式必须是YYYYMMDDTHHMMSSZ(比如20240520T143000Z)
  • 如果是Cognito联合身份生成的临时IAM凭证(绝大多数场景都是临时凭证),还要带上X-Amz-Security-Token,值就是临时凭证里的Session Token

小建议:

别自己手动计算签名,很容易出错!直接用AWS官方的SDK(比如Python的boto3、JavaScript的AWS SDK v3)发送请求,SDK会自动帮你生成所有需要的签名头和参数,省心又靠谱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:13:51