【问题标题】:Restrict inbound traffic to an app on CloudFoundry限制 CloudFoundry 上应用程序的入站流量
【发布时间】:2018-05-16 18:44:35
【问题描述】:

可以使用应用程序安全组来限制源自在 CloudFoundry 上运行的应用程序的出站流量。详情在这里:https://docs.cloudfoundry.org/concepts/asg.html

假设我希望应用程序仅对某个 IP 地址可见 - 换句话说,将入站流量限制到某些 IP 地址。我想这可以使用自定义路由服务并将其绑定到我的应用程序的路由来实现。但是有没有更简单的方法?

我猜通常的方法是使用 API 网关?

【问题讨论】:

    标签: cloud-foundry


    【解决方案1】:

    就像你提到的,路线服务是一种可能性。另一个是在您的应用程序中处理这个问题。具体操作方式取决于所使用的构建包/语言。

    Java 的一个示例是使用由 buildpack 安装的 Tomcat 来限制 IP 访问。您可以使用Remote Address Filter 来做到这一点。如果您使用的是 Spring Boot,您可以使用它提供的嵌入式 Tomcat 执行类似的操作。

    如果您使用的是 Apache HTTPD,则可以使用 Require ip 10.10.10.10 来强制执行该要求。同样,对于 Nginx,您可以使用 allow 10.10.10.10;deny all;

    对于其他语言和框架,请查看您的文档以获取有关如何根据传入 IP 进行限制的说明。唯一需要考虑的复杂情况是,在 Cloud Foundry 上,您的应用程序位于代理之后,因此您的应用程序看到的远程 IP 地址不会是实际客户端的远程 IP。这将驻留在x-forwarded-for 标头中。在上面的示例中,Tomcat、Nginx 和 HTTPD 会为您解析此标头,但根据您的应用程序和框架,您可能需要手动查看此标头以获得正确的 IP。

    以上假设您希望 IP 拒绝在应用程序级别具有特定性和可自定义性。如果您尝试在整个基金会中应用更广泛的规则,那么在流量到达应用程序甚至基金会之前应用这些限制会更有意义。也许您可以在您的基础前或在接受基础流量的外部负载均衡器上使用防火墙。显然,这一切都取决于您在基金会之外可用的基础架构。

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 2015-06-19
      • 1970-01-01
      • 1970-01-01
      • 2013-10-18
      • 2018-06-05
      相关资源
      最近更新 更多