【问题标题】:Whitelist IP of AWS API Gateway API endpoint in company's firewall公司防火墙中 AWS API Gateway API 端点的白名单 IP
【发布时间】:2019-08-08 10:22:10
【问题描述】:

我已经构建了一个 AWS API Gateway API 端点,该端点将被我公司网络中的一台机器访问,以定期发布数据。但是,当我通过 Postman 从办公室网络尝试它时,办公室防火墙阻止了它(但是当我使用移动热点/其他 wifi 时,由于没有防火墙挑战,它可以无缝工作),所以我必须将 IP 地址范围设置为白色- 被办公室网络团队列为能够访问 API 端点。

从哪里获取 IP?它们是不变的还是变化的?由于网络安全团队提出的IP被列入白名单的过程是一个漫长的过程,那么是否有一个顺利的过程?

此外,这种将数据从本地推送到云端的方式是否存在风险?我已经实施了 AWS IAM 授权以及用于安全和访问控制的 API-Key。如果还有风险,如何让这个过程完全安全?

请帮忙!

【问题讨论】:

    标签: amazon-web-services api post networking aws-api-gateway


    【解决方案1】:

    怎么样:

    https://www.reddit.com/r/aws/comments/8f1pve/whitelisting_aws_api_gateway/

    API 网关通过 Cloudfront 代理,因此您可以在此处将用于 CLOUDFRONT 服务的 IP 列入白名单。 ips 是轮换的,因此您需要每隔

    更新一次白名单

    您可以订阅一个 SNS 主题,该主题会在 AWS 服务更新时发送它们的 IP 范围。 https://aws.amazon.com/blogs/security/how-to-automatically-update-your-security-groups-for-amazon-cloudfront-and-aws-waf-by-using-aws-lambda/ https://aws.amazon.com/blogs/aws/subscribe-to-aws-public-ip-address-changes-via-amazon-sns/

    除非它是区域 APIGW 端点。

    【讨论】:

      【解决方案2】:

      不幸的是,您不能为 API 网关提供静态 IP,因为它可能会在没有通知的情况下更改,这是由 AWS 设计决定的。在这种情况下,您可以做的是拥有一个与弹性 IP 相关联的反向代理,它将透明地将您的 http 流量路由到 API 网关(然后您需要一个域名和证书,因为您将不再使用 APIGateway 名称)

      此外,这种从本地推送数据的方式是否存在相关风险 去云?我已经实施了 AWS IAM 授权,并且 用于安全和访问控制的 API 密钥。如果还有风险,怎么办 使这个过程完全安全?

      在任何组织中都没有什么是完全安全的,但是为了保护传输中的数据,您应该使用像 https 这样的加密通道(API Gateway 本身支持该通道)。这就是为什么您需要一个域名和一个代理证书

      【讨论】:

        【解决方案3】:

        这解释了AWShttps://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html的IP

        您需要部署 API 网关的区域的“EC2”服务范围。

        对我来说,不清楚 JSON 中的哪些 IP 范围是 API 网关端点的 IP 范围。我用nslookup 做了一些实验,发现您需要使用类似这样的脚本的“EC2”服务的范围:

        const IPCIDR = require("ip-cidr");
        const ipRanges = require('./ips.json');
        
        const relevantRanges = ipRanges.prefixes.filter(el => {
            const cidr = new IPCIDR(el.ip_prefix);
            // Those IPs I get from `nslookup` to my endpoint. They belong to EC2 of the region
            return cidr.contains('3.5.136.1') || cidr.contains('18.192.0.1');
        });
        
        console.log(JSON.stringify(relevantRanges, undefined, 2));
        

        您可以将其用于实验,以找出哪些服务和范围负责端点。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-06
          • 1970-01-01
          • 1970-01-01
          • 2010-12-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-02-20
          相关资源
          最近更新 更多