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

如何在API Gateway的HTTP请求头中传递Secrets Manager的值

如何将Secrets Manager中的Token设置到Authorization请求头

完全可行,根据你的使用场景,有以下几种实现方式:

1. 借助API Gateway Lambda授权器(自定义授权器)

这是最常用的方案,适合通过API Gateway转发请求的场景:

  • 编写Lambda函数从Secrets Manager获取Token,在返回的授权策略中通过context字段携带Token
  • 在API Gateway的集成请求中,将context中的Token映射到Authorization请求头

示例Lambda代码:

import boto3
import json

secrets_manager = boto3.client('secretsmanager')

def lambda_handler(event, context):
    # 从Secrets Manager读取指定密钥
    secret = secrets_manager.get_secret_value(SecretId='your-secret-id')
    auth_token = secret['SecretString']

    # 返回授权策略,同时在context中传递Token
    return {
        'principalId': 'authorized-user',
        'policyDocument': {
            'Version': '2012-10-17',
            'Statement': [
                {
                    'Action': 'execute-api:Invoke',
                    'Effect': 'Allow',
                    'Resource': event['methodArn']
                }
            ]
        },
        'context': {
            'authToken': auth_token
        }
    }

配置API Gateway:

  • 在对应方法的集成请求中,添加HTTP请求头Authorization
  • 将映射值设置为 $context.authorizer.authToken

2. API Gateway直接集成Secrets Manager(无需Lambda)

如果不需要额外的授权逻辑,可以直接让API Gateway从Secrets Manager获取Token并设置请求头:

  1. 创建API Gateway方法,集成类型选择「AWS Service」
  2. 配置服务为Secrets Manager,动作选择GetSecretValue
  3. 在集成请求的映射模板中,构造请求参数指定要获取的Secret ID
  4. 通过集成响应的映射模板提取Secret中的Token,映射到Authorization头

3. Lambda内部发起请求时设置头

如果是Lambda自身需要调用外部API,直接在请求中注入Token即可:

import boto3
import requests

secrets_manager = boto3.client('secretsmanager')

def lambda_handler(event, context):
    secret = secrets_manager.get_secret_value(SecretId='your-secret-id')
    auth_token = secret['SecretString']

    # 发起请求时设置Authorization头
    response = requests.get(
        'https://target-api-endpoint.com',
        headers={'Authorization': f'Bearer {auth_token}'}
    )
    return {'status_code': response.status_code, 'body': response.json()}

你之前没找到的「Lambda返回值设置请求头」场景,核心是通过API Gateway的上下文映射实现——Lambda返回的context数据会被API Gateway捕获,再通过映射规则转成请求头,而非Lambda直接返回HTTP头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 15:11:05