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

如何在AppSync自定义Lambda Authoriser中获取请求源IP地址

AppSync Lambda授权器获取请求源IP解决方案

默认情况下AWS AppSync的自定义Lambda授权器不会主动透传客户端请求头到授权函数,所以你打印event和context时看不到X-Forwarded-For字段,可通过以下方式配置获取:

方案1:配置授权器透传指定请求头(推荐)

这是官方支持的原生方案,操作步骤如下:

  • 进入AppSync控制台,打开目标API的「授权」页,找到你配置的自定义Lambda授权器
  • 在授权器配置项中找到**身份来源(Identity sources)**配置项,选择类型为Header,值填写X-Forwarded-For,保存配置
  • 重新部署AppSync API后,再打印授权器的event参数,即可在event.requestContext.identity.sourceIp或者event的顶级字段中拿到客户端源IP,X-Forwarded-For头的第一个值即为客户端真实公网IP

配置完成后可参考以下代码读取IP:

exports.handler = async (event, context) => {
    // 直接读取上下文内置源IP
    const clientIp = event.requestContext.identity.sourceIp
    // 也可以读取透传的X-Forwarded-For头解析真实IP
    const xForwardedFor = event.headers['X-Forwarded-For']
    const realIp = xForwardedFor.split(',')[0].trim()
    console.log('客户端真实IP:', realIp)
    // 原有授权逻辑
}

方案2:兼容旧版本AppSync的替代方案

如果你的AppSync实例版本不支持上述透传配置,可采用以下替代方式:

  • 在AppSync前端部署一层CloudFront/API Gateway作为代理,在代理层将客户端源IP写入自定义请求头(例如X-Client-IP),再将该头配置到授权器的透传列表中
  • 也可在前端请求时主动将客户端IP写入自定义授权头的额外字段,在Lambda授权器中解析授权Token即可提取对应IP

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:54:02