入站流量的 AWS 安全组
Posted
技术标签:
【中文标题】入站流量的 AWS 安全组【英文标题】:AWS security group for inbound traffic 【发布时间】:2016-07-15 05:29:48 【问题描述】:我有两台 AWS Linux AMI 服务器。 一个带有 Node.JS HTTPS 服务器,第二个运行我的 Mongo DB。
连接到我的 Mongo DB 服务器的唯一方法是通过我的 Node.JS 服务器。
在我的 Mongo DB 服务器的 AWS 安全组中,我能够将 Node.JS 服务器的 AWS 安全组的名称放在“入站”选项卡的“源”列中,它允许连接,但我想知道设置安全组的实际作用是什么?
更具体地说,这允许哪些 IP 地址?
如果您单击 Source 旁边的“i”,则会显示:
【问题讨论】:
【参考方案1】:我最初使用“私有 IP 地址”在 AWS 实例之间进行通信,因为根据 AWS documentation,
私有 IP 地址是无法通过 互联网。您可以使用私有 IP 地址进行通信 同一网络中的实例(EC2-Classic 或 VPC)。
但经过一些讨论(请参阅下面的 cmets),似乎更好的解决方案可能是利用 AWS 安全组。我最初对使用 AWS 安全组的犹豫是没有根据的。
我担心的是,如果我将分配给我的 Node.js 服务器的相同安全组添加到 MongoDB 服务器的入站流量选项卡的“源”中,那么我的 MongoDB 服务器将继承相同的入站流量规则(所有流量)。
上述担心是没有根据的,因为将入站源设置为安全组不会继承规则,而只是允许来自已分配给该安全组的任何实例的入站流量。
【讨论】:
我认为你正在倒退。执行此操作的首选方法是指定安全组(如您最初所做的那样),而不是 IP 地址。使用 IP 地址不适用于自动扩缩等功能。 嗯,是的,这也可以,但是说这是“正确”的解决方案绝对是错误的,因为您之前的方式同样正确。当您将安全组 ID 设置为源时,您允许匹配该安全组中的任何实例。 VPC 基础架构知道哪些实例是哪些组的成员,因此这种方法非常有效,并且随着您的扩展,维护起来也更加简单。指定一个安全组完全等同于单独添加组成员的私有IP地址,只是不需要管理地址。 @MarkB 你打字速度显然比我快。 @Michael-sqlbot 是的,但你说得比我好。 哦,我明白你在想什么,但是不……其他组中的规则 并不重要。另一组甚至可以没有任何规则。使用组作为源意味着允许来自作为引用组成员的 实例 的流量。与引用组中的规则无关。以上是关于入站流量的 AWS 安全组的主要内容,如果未能解决你的问题,请参考以下文章
Aws Elastic Load Balancing 安全组不允许入站调用