【问题标题】:Why might the CIDR/IP in DB security group be different from instance elastic IP?为什么数据库安全组中的 CIDR/IP 可能与实例弹性 IP 不同?
【发布时间】:2012-05-13 03:05:23
【问题描述】:

我有一个 EC2 实例,它能够连接到我的 RDS 实例,但它的弹性 IP 没有出现在白名单 IP 的数据库安全组中。

这怎么可能?

我问是因为我创建了一个新实例,我也想将其列入白名单,并且仅输入其弹性 IP 似乎不是做事的方式,因为其他服务器都没有列出其弹性 IP。

提前致谢,

【问题讨论】:

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


    【解决方案1】:

    这里可能有两个原因:

    流量来源

    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 基础设施的一个鲜为人知但仍然很重要且非常有用的功能的效果,请参阅第 Using Instance IP Addresses 页上的 Public and Private 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 地址,从而相应地暗示相应的访问权限。

    【讨论】:

    • 在花了很长时间试图解决这个问题之后,我非常感谢这个答案。我会考虑给我的长子取名 Steffen。
    • 由于某种原因,添加安全组和外部 IP 地址均无效。然而,设置 private ip 就成功了。
    猜你喜欢
    • 2020-05-13
    • 2018-11-01
    • 1970-01-01
    • 2014-03-03
    • 2023-03-28
    • 2018-07-13
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    相关资源
    最近更新 更多