如何限制RethinkDB对特定应用程序的访问?

时间:2016-09-15 12:53:39

标签: security amazon-web-services elastic-beanstalk rethinkdb

我有一个弹性beanstalk应用程序,它使用rethink-db实例作为其数据库。显而易见的事情是将数据库的访问权限仅限于此应用程序。

但是,如果我将Rethinkdb实例的安全组中的相关端口设置为0.0.0.0以外的任何其他端口,则应用程序无法访问该数据库。

应用程序正在使用数据库的私有DNS进行解析,并且位于同一个亚马逊地区......据我所知,仅此一点就应该让我在没有任何规则的情况下通过安全组。显然不是在这种情况下。

我尝试将应用程序安全组的例外添加到该端口上的数据库安全组,以及应用程序的负载均衡器的安全组。我也同时尝试了两种方法。没有骰子。

beanstalk-app是可扩展的,因此它通常可以从几个可以随时改变的实例进行通信。因此,遗憾的是,越过弹性IP并允许在数据库安全组中使用它。

最后,我被迫将驱动程序端口上的重新思考数据库的安全组保持在0.0.0.0开放...我尝试的任何其他内容使我的应用程序无法访问。

有谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:1)

  

据我所知,仅这一点就应该让我顺便说一句   没有任何规则的安全组

这不正确。您始终必须具有允许访问的安全组规则。默认情况下,所有入站流量都会被阻止。

  

我尝试为应用安全组添加例外   到该端口上的数据库安全组

这听起来就像你需要做的那样。您需要在分配给数据库服务器的安全组中创建入站规则。在该规则中,您将指定Elastic Beanstalk实例所属的安全组的ID。

如果这不起作用,那么您可能需要在问题中发布更多信息,例如实际的安全组设置。

此外,您需要确保您的EB实例正在尝试通过数据库服务器的专用IP连接到数据库服务器。您的问题听起来好像他们正在使用数据库服务器的公共IP。我知道你说他们正在使用数据库服务器的私有DNS,但你需要确定是这种情况,并确保在从EB实例引用时,DNS正确地解析为私有IP。