可以使用应用程序安全组来限制源自CloudFoundry上运行的应用程序的出站流量。详细信息如下:https://docs.cloudfoundry.org/concepts/asg.html
假设我希望app只对某个IP地址可见 - 换句话说,限制某些IP地址的入站流量。我想这可以使用自定义路由服务并将其绑定到我的应用程序的路由来实现。但是有更简单的方法吗?
我想通常的方法是使用API网关?
答案 0 :(得分:1)
就像你提到的那样,路线服务是一种可能性。另一个是在您的应用程序中处理此问题。具体如何做到这取决于所使用的buildpack /语言。
使用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拒绝在应用程序级别是特定的和可自定义的。如果您尝试在整个基础中应用更广泛的规则,那么在流量到达应用程序甚至基础之前应用这些限制会更有意义。也许你可以在你的基金会前面或在接受你的基金会流量的外部负载平衡器上使用防火墙。显然,这完全取决于您在基金会之外可用的基础设施。
希望有所帮助!