为什么数据库安全组中的CIDR / IP可能与实例弹性IP不同?

时间:2012-05-03 15:03:42

标签: amazon-ec2 amazon-web-services amazon-rds

我有一个EC2实例,可以连接到我的RDS实例,但其弹性IP不会出现在白名单IP的数据库安全组中。

这怎么可能?

我问,因为我创建了一个新实例,我也希望将其列入白名单,只是输入弹性IP似乎不是处理事情的方式,因为其他服务器都没有列出其弹性IP。

提前致谢,

1 个答案:

答案 0 :(得分:13)

这里可能有两个原因:

流量来源

Security Group Rules不一定仅将IP地址指定为流量来源,而是定期引用其他安全组:

  

源可以是单独的IP地址(203.0.113.1),范围是   地址(例如,203.0.113.0 / 24),或EC2安全组。该   安全组可以是您的AWS账户中的另一个组,一个组   另一个AWS账户或安全组本身。

     

通过指定安全组作为源,允许传入   来自属于源安全组的所有实例的流量。   [...]如果您正在创建帐户,则可以在帐户中指定其他安全组   三层Web服务(请参阅创建三层Web服务)。

     

[强调我的]

因此,Amazon RDS实例的数据库安全组可能会引用用于Amazon EC2实例的EC2安全组,这意味着已经存在相应的访问权限。有关此概念/方法的详细信息,请参阅我对AWS - Configuring access to EC2 instance from Beanstalk App的回答。

公共与私有IP地址

您可能会看到AWS DNS基础架构的一个鲜为人知但又重要但非常有用的功能的效果,请参阅第Public and Private Addresses页上的Using Instance IP Addresses部分:

  

Amazon EC2还提供内部DNS名称和公有DNS名称   分别映射到私有和公共IP地址。该   内部DNS名称只能在Amazon EC2中解析。 公众   DNS名称解析为Amazon EC2外部的公共IP地址   网络和Amazon EC2网络中的私有IP地址 [强调我的]

也就是说,当您在Amazon EC2网络中使用公共DNS(例如ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com)并将其解析为私有IP地址时在Amazon EC2网络外使用时的公共或弹性IP地址。

因此,由于各种原因,各种AWS产品通常通过其私有IP地址而非外部IP地址相互连接,最重要的是网络速度和成本(请参阅我对AWS EC2 Elastic IPs bandwidth usage and charges的回答)详情)。

因此,您的Amazon RDS实例的数据库安全组可能会引用您的Amazon EC2实例的私有IP地址,从而暗示相应的访问权限。