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

如何携带Cognito访问令牌调用AWS_IAM认证的Lambda Function URL

调用带IAM认证的Lambda Function URL传递Cognito Access Token的方案

核心结论

Lambda Function URL的IAM认证模式下,不能直接将Cognito用户池的access token放在Authorization头来完成认证。这种模式要求请求必须使用AWS Signature V4签名,和API Gateway的自定义认证逻辑完全不同。

Lambda Function URL的IAM认证调用规则(翻译自AWS官方文档)

当Lambda Function URL配置为IAM认证时,所有请求必须通过AWS Signature V4进行签名。你需要使用AWS SDK、AWS CLI或者手动生成符合规范的签名HTTP请求来调用,请求中要包含Signature V4格式的Authorization头,而非直接传入Cognito的access token。

可行替代方案

如果想通过Cognito的access token控制Lambda Function URL的访问,有两种落地方式:

  • 切换认证模式为NONE,在Lambda代码内验证token:
    1. 将Function URL的认证类型设置为NONE
    2. 在Lambda函数代码中,从请求头提取Authorization字段内的access token
    3. 使用aws-jwt-verify这类工具库,验证token的签名有效性、过期时间以及自定义权限声明
  • 通过API Gateway代理请求:
    1. 配置API Gateway(HTTP或REST类型),启用Cognito用户池认证
    2. 将API Gateway的集成目标设置为Lambda Function URL(或直接集成Lambda)
    3. 客户端将Cognito access token放在Authorization头请求API Gateway,由网关完成认证后再转发请求到Lambda

内容的提问来源于stack exchange,提问作者Diego Dávila Vilchez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 14:25:17