如何正确确定Amazon AWS Heroku子网?

如何正确确定Amazon AWS Heroku子网?,heroku,amazon-web-services,Heroku,Amazon Web Services,我需要能够通过防火墙访问Heroku上构建的应用程序的服务器。不幸的是,来自Heroku的AWS实例的IP似乎变化很大。是否有一种“正确”的方法来确定应用程序需要从Heroku的AWS平台获得哪个子网?没有可靠的方法来接受防火墙中的Heroku公共IP。即使有,你也会破坏你的应用程序,通过HeloCu上的其他应用程序打开攻击向量。 解决方案是在公开的服务中有一个足够的身份验证层。不幸的是,没有一个好的方法可以持续获取这些信息。然而,在AWS论坛上,EC2工程师偶尔会发布他们的IP范围(这里是一个

我需要能够通过防火墙访问Heroku上构建的应用程序的服务器。不幸的是,来自Heroku的AWS实例的IP似乎变化很大。是否有一种“正确”的方法来确定应用程序需要从Heroku的AWS平台获得哪个子网?

没有可靠的方法来接受防火墙中的Heroku公共IP。即使有,你也会破坏你的应用程序,通过HeloCu上的其他应用程序打开攻击向量。
解决方案是在公开的服务中有一个足够的身份验证层。

不幸的是,没有一个好的方法可以持续获取这些信息。然而,在AWS论坛上,EC2工程师偶尔会发布他们的IP范围(这里是一个最近的例子:)


然而,这样做的缺点是需要大量的手工工作。

这一问题是在几年前Proximo这样的服务还不存在或者在Heroku社区中还不知道的时候提出的

今天,如果你想让你的出站流量通过一个静态IP,你可以在你的防火墙中加入白名单,你可以使用代理服务,比如Proximo(Fixie是另一个例子)

使用这些服务有几个缺点:

1) 侵入式设置 虽然这些插件的设置相对简单,但了解它们如何影响应用程序是很重要的

例如,在Proximo的情况下,您需要将流程包装在一个特殊的实用程序中。 此实用工具将“自动转发由包装进程通过代理建立的出站TCP连接。”

2) 潜伏期 为了使出站流量来自静态IP,这些服务通过代理路由流量。这意味着您将在出站通信中添加另一个跃点

我知道在Heroku上运行的应用程序通常对网络延迟不太敏感,但考虑到这个问题很重要

3) 正常运行时间 尽管这些服务相对稳定,但应该注意,通过专门的第三方代理路由流量会增加另一个故障点,并可能影响应用程序的整体稳定性

总之,这些服务将帮助您解决问题。但是,我会把它们当作临时解决方案,而不是一个完整的解决方案。

请放心,这些类型的修复可以持续很长时间,但是如果安全性对于您在Heroku上运行的应用程序变得越来越重要,那么开始规划到AWS的迁移可能是一个好主意

如果您想知道什么时候是您的团队向AWS过渡的最佳时机,我在这里分享了一些注意事项:


希望这会有所帮助。

首先,我希望只公开一个特定的计算云,而不是整个AWS基础设施。第二,对于这个特定的场景,我没有其他的选择来提供“足够的身份验证层”,因为它非常有限。它证实了我已经掌握的一些数据,并帮助我做的事情更加稳健。