AWS安全组不允许入站流量

时间:2012-11-03 21:59:35

标签: security networking amazon-web-services

我想允许app-server组中的节点与database组中的mysql和redis机器通信。但是,我只能使显式IP适用于入口规则。当我尝试定义组时,为了使自动缩放更容易,流量被阻止。

这是我的设置

当我跑步时

ec2-describe-group database

我得到了

PERMISSION      890752071609    database        ALLOWS  tcp     3306    3306    FROM    USER    890752071609    NAME default    ID sg-5ce3766c  ingress
PERMISSION      890752071609    database        ALLOWS  tcp     3306    3306    FROM    USER    890752071609    NAME app-server ID sg-b81b8088  ingress
PERMISSION      890752071609    database        ALLOWS  tcp     6379    6379    FROM    USER    890752071609    NAME default    ID sg-5ce3766c  ingress
PERMISSION      890752071609    database        ALLOWS  tcp     6379    6379    FROM    USER    890752071609    NAME app-server ID sg-b81b8088  ingress
PERMISSION      890752071609    database        ALLOWS  tcp     0       65535   FROM    USER    890752071609    NAME database   ID sg-d262f1e2  ingress
PERMISSION      890752071609    database        ALLOWS  tcp     22      22      FROM    CIDR    0.0.0.0/0       ingress

但是,当我尝试使用app-server组中的计算机上的redis-cli连接到端口6379时,出现redis超时错误。

如果我明确添加我要连接的服务器的弹性IP,就像这样

PERMISSION      890752071609    database        ALLOWS  tcp     3306    3306    FROM    CIDR    111.snip.25/32        ingress
PERMISSION      890752071609    database        ALLOWS  tcp     6379    6379    FROM    CIDR    222.snip.25/32        ingress

redis-cli通话有效。但是,我希望更灵活,而是添加整个安全组。

amazon docs

  

通过将安全组指定为源,您可以允许来自属于源安全组的所有实例的传入流量。您允许的传入流量基于源安全组中实例的专用IP地址。如果要创建三层Web服务,则可以在帐户中指定另一个安全组(请参阅创建三层Web服务)。

这应该有效,不是吗?我做错了什么?

1 个答案:

答案 0 :(得分:2)

检查/尝试的建议很少:

  1. AWS sec group 允许跨区域规则。我不知道您的Redis机器是否在同一地区。
  2. 尝试从AWS Web界面或Dome9控制台(www.dome9.com)创建此设置,以确保没有未显示的隐藏设置。
  3. 不要失去希望 - 这种设置工作 - AWS sec组是专为此用例而设计的。