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

如何限制API Gateway访问权限?仅允许公司内部用户访问

限制API Gateway仅允许公司内部用户访问的最简方案

要快速实现你的需求,基于IP地址的资源策略限制是最简单的方案——不需要引入额外身份验证服务,只需修改现有SAM模板中的API Gateway配置即可。

当前问题分析

你当前的API Gateway资源策略设置了Principal: "*",这直接允许所有公网用户调用API,是导致公网可访问的核心原因。


步骤1:修改API Gateway资源策略

将MyApiGateway下的Auth.ResourcePolicy.CustomStatements替换为以下内容,把示例中的IP段替换成你公司的公网IP段(支持多个CIDR地址):

MyApiGateway:
  Type: AWS::Serverless::Api
  Properties:
    # 保留原有Name、TracingEnabled、OpenApiVersion等配置...
    Cors:
      AllowHeaders: "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'"
      AllowMethods: "'*'"
      AllowOrigin: "'*'" # 后续可按步骤2收紧
    StageName: test
    Auth:
      ResourcePolicy:
        CustomStatements:
          - Effect: Allow
            Principal: "*"
            Action: "execute-api:Invoke"
            Resource: "execute-api:us-east-1:xxxxxxx4:qkmigyu020/test/GET/pets"
            Condition:
              IpAddress:
                aws:SourceIp:
                  - "192.168.0.0/16"  # 替换为公司公网IP段
                  - "203.0.113.0/24"  # 可添加多个IP段

通过aws:SourceIp条件,仅允许来自指定IP段的请求调用API,直接阻断外部公网访问。


步骤2:收紧CORS配置(可选但推荐)

当前CORS设置AllowOrigin: "'*'"允许所有域名跨域请求,建议改成公司内部的域名或IP,降低安全风险:

Cors:
  AllowHeaders: "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'"
  AllowMethods: "'*'"
  AllowOrigin: "'https://your-company-internal-domain.com'"  # 替换为内部域名/IP

其他可选方案(若IP限制不适用)

如果公司内部用户分布在动态IP环境,可考虑以下方案:

  • IAM身份验证:要求用户使用公司统一的IAM凭证调用API,修改资源策略的Principal为公司IAM用户/角色ARN,并在API Gateway启用IAM授权。
  • API密钥:生成专属API密钥分发给内部用户,在API Gateway启用密钥验证,但需要管理密钥的分发与生命周期。

但IP限制是最直接、维护成本最低的方案,适合固定IP段的公司内部场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 02:06:14