为Heroku应用程序保护公开可用的RDS后端

时间:2016-10-27 19:52:25

标签: ruby-on-rails amazon-web-services heroku rds

我们目前在Heroku上有一个RoR应用程序,带有AWS RDS后端。目前,RDS实例可用于所有入站流量。要仅允许来自我的Heroku应用的流量,我可以将适用的IP块列入白名单:

  

https://ip-ranges.amazonaws.com/ip-ranges.json

...或者像Proximo或QuotaGuard这样的附加组件是我唯一的选择吗?

此外,考虑到RDS实例受密码保护,是否存在安全问题,因为RDS实例可用于所有传入流量?

1 个答案:

答案 0 :(得分:1)

正如Jarmod的评论所暗示的那样,不建议将数据库暴露给全世界,即使它受密码保护且通信已加密。并不是说您的数据是完全公开的,但在处理敏感信息时,除了用户/密码授权外,还建议控制谁可以请求访问数据。

不幸的是,当你在Heroku上运行时,你没有太多的选择。如果您知道它的url / endpoint,即使是Heroku自己的Postgresql数据库也可以公开访问。

如果您想提高安全性,您有两种选择:

1)使用出站代理插件

如您所知,您可以使用代理插件(如Proximo或Fixie),并将AWS安全组配置为仅接受来自代理的静态IP的连接。

我在回复中详细说明了这种方法的缺点:“How to properly determine Amazon AWS Heroku subnets?

2)将您的应用程序从Heroku迁移到AWS

根据您的公司规模和产品成熟度,考虑从Heroku迁移到AWS可能是个好主意。

当您的应用程序堆栈完全从AWS内部运行时,您可以更好地控制安全性,并可以决定您希望保护数据的程度。

我帮助了一些具有类似迁移和安全性的客户,这是从Heroku迁移到AWS的三大理由之一。

希望有所帮助。