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

如何通过IAM策略配置让API Gateway拥有调用Lambda函数的权限

解决API Gateway调用Lambda的权限配置问题

核心原因

问题出在Lambda函数的资源权限策略上,而非API Gateway的IAM角色权限。控制台手动保存集成请求时,AWS会自动给Lambda添加一条允许API Gateway触发的权限规则,你需要把这条规则通过IAM策略手动配置,避免重复手动操作。

具体配置步骤

1. 编写Lambda的资源权限策略

直接给Lambda函数添加一条信任API Gateway的权限策略,允许API Gateway服务主体调用该Lambda函数。示例策略如下:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "apigateway.amazonaws.com"
      },
      "Action": "lambda:InvokeFunction",
      "Resource": "arn:aws:lambda:你的区域:你的账号ID:function:connect_api",
      "Condition": {
        "ArnLike": {
          "AWS:SourceArn": "arn:aws:execute-api:你的区域:你的账号ID:你的API ID/*/*/*"
        }
      }
    }
  ]
}
  • 替换占位符:你的区域(比如us-east-1)、你的账号ID(12位数字)、你的API ID(API Gateway控制台里的API标识符)
  • Condition里的SourceArn可按需调整路径,比如限制到特定阶段或资源路径,提升安全性

2. 应用该策略到Lambda函数

可通过以下方式配置:

  • AWS CLI命令:
aws lambda add-permission \
  --function-name connect_api \
  --statement-id AllowAPIGatewayInvoke \
  --action "lambda:InvokeFunction" \
  --principal apigateway.amazonaws.com \
  --source-arn "arn:aws:execute-api:你的区域:你的账号ID:你的API ID/*/*/*"
  • CloudFormation模板(基础设施即代码场景):在Lambda资源中添加Permissions属性:
Resources:
  ConnectApiLambda:
    Type: AWS::Lambda::Function
    Properties:
      FunctionName: connect_api
      # 其他Lambda配置项...
  APIGatewayInvokeLambdaPermission:
    Type: AWS::Lambda::Permission
    Properties:
      FunctionName: !Ref ConnectApiLambda
      Action: lambda:InvokeFunction
      Principal: apigateway.amazonaws.com
      SourceArn: !Sub "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${YourApiId}/*/*/*"

3. 验证配置

配置完成后直接通过API Gateway调用测试,无需再手动保存集成请求。可在Lambda控制台的「配置」->「权限」->「基于资源的策略」中查看是否已添加该规则。

注意事项

  • 确保API Gateway的IAM角色已具备调用Lambda的权限(你之前已配置,无需修改)
  • 权限策略的SourceArn尽量缩小范围,比如指定到具体HTTP方法和资源路径,避免过度授权
  • 若使用API Gateway阶段变量,需确保SourceArn的路径匹配实际调用路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 16:24:53