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

API Gateway调用Lambda:AWS::Lambda::Permission与IAM Role选型咨询

API Gateway调用Lambda的权限方案对比与最佳实践

两种权限方案的核心差异

  • AWS::Lambda::Permission:属于Lambda资源的权限附加策略,直接授权API Gateway服务主体调用指定Lambda函数。配置步骤少,无需额外管理IAM角色,适合简单场景。
  • AWS::IAM::Role:为API Gateway创建专属执行角色,通过角色的权限策略授予调用Lambda(或其他AWS服务)的权限。这种方式权限配置更灵活,支持批量授权和扩展其他操作权限。

方案选择与最佳实践

单API单Lambda场景:优先使用AWS::Lambda::Permission

这种场景下,Permission方案足够满足需求,且符合最小权限原则:

  • 配置示例(CloudFormation YAML):
    LambdaInvokePermission:
      Type: AWS::Lambda::Permission
      Properties:
        FunctionName: !Ref MyLambdaFunction
        Action: lambda:InvokeFunction
        Principal: apigateway.amazonaws.com
        SourceArn: !Sub "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApiGateway}/*/*/${MyApiResourcePath}"
    
  • 关键要点:通过SourceArn精确限制只有指定的API Gateway路径能调用该Lambda,避免权限过度开放。

多API多Lambda/复杂权限场景:使用IAM角色

当需要让API Gateway调用多个Lambda,或同时需要访问其他AWS服务(如读取S3文件、查询DynamoDB)时,IAM角色是更优选择:

  • 角色配置示例(CloudFormation YAML):
    ApiGatewayExecutionRole:
      Type: AWS::IAM::Role
      Properties:
        AssumeRolePolicyDocument:
          Version: '2012-10-17'
          Statement:
            - Effect: Allow
              Principal:
                Service: apigateway.amazonaws.com
              Action: sts:AssumeRole
        Policies:
          - PolicyName: LambdaInvokeAndOtherPermissions
            PolicyDocument:
              Version: '2012-10-17'
              Statement:
                - Effect: Allow
                  Action: lambda:InvokeFunction
                  Resource:
                    - !GetAtt LambdaFunction1.Arn
                    - !GetAtt LambdaFunction2.Arn
                - Effect: Allow
                  Action: s3:GetObject
                  Resource: !Sub "arn:aws:s3:::${MyBucket}/*"
    
  • 优势:统一管理API Gateway的所有权限,后续扩展时只需更新角色的权限策略,无需逐个修改Lambda的Permission资源。

通用最佳实践

  • 严格遵循最小权限原则:无论哪种方案,都避免使用通配符*,精确指定允许调用的Lambda ARN或API Gateway路径。
  • 确保CloudFormation资源依赖正确:比如Permission资源要依赖Lambda函数和API Gateway的部署资源,防止因资源未就绪导致权限配置失效。
  • 定期审计权限:通过IAM Access Analyzer等工具检查权限是否存在过度授权的情况,及时调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 23:30:20