我们目前在Heroku上有一个RoR应用程序,带有AWS RDS后端。目前,RDS实例可用于所有入站流量。要仅允许来自我的Heroku应用的流量,我可以将适用的IP块列入白名单:
...或者像Proximo或QuotaGuard这样的附加组件是我唯一的选择吗?
此外,考虑到RDS实例受密码保护,是否存在安全问题,因为RDS实例可用于所有传入流量?
答案 0 :(得分:1)
正如Jarmod的评论所暗示的那样,不建议将数据库暴露给全世界,即使它受密码保护且通信已加密。并不是说您的数据是完全公开的,但在处理敏感信息时,除了用户/密码授权外,还建议控制谁可以请求访问数据。
不幸的是,当你在Heroku上运行时,你没有太多的选择。如果您知道它的url / endpoint,即使是Heroku自己的Postgresql数据库也可以公开访问。
如果您想提高安全性,您有两种选择:
如您所知,您可以使用代理插件(如Proximo或Fixie),并将AWS安全组配置为仅接受来自代理的静态IP的连接。
我在回复中详细说明了这种方法的缺点:“How to properly determine Amazon AWS Heroku subnets?”
根据您的公司规模和产品成熟度,考虑从Heroku迁移到AWS可能是个好主意。
当您的应用程序堆栈完全从AWS内部运行时,您可以更好地控制安全性,并可以决定您希望保护数据的程度。
我帮助了一些具有类似迁移和安全性的客户,这是从Heroku迁移到AWS的三大理由之一。
希望有所帮助。