【问题标题】:AWS RDS public accessAWS RDS 公开访问
【发布时间】:2015-08-07 00:33:45
【问题描述】:

我对 AWS 配置感到困惑。我的目标是创建一个可从网络内外访问的数据库。

这就是我所拥有的。 RDS 实例运行 postgresql。来自 VPC 内部的连接正常工作。

端点设置为可公开访问 - 当从外部访问时,实际上会解析。但是,连接挂起,表明流量被某人阻止。

安全组不错:
入站:来自 0.0.0.0/0 的端口 5432 出站:全部来自 0.0.0.0/0

子网。我认为这就是问题所在,对吧? 起初,我在子网组中有两个私有子网和两个公共子网。为简化起见,我在不改变结果的情况下删除了私有的。

所以我们有两个公共子网:

两者都具有与 Internet 网关相同的路由表

据我所知,一切正常……那么是谁阻止了我的数据库连接?

【问题讨论】:

  • 是否有机会检查并查看您的公司防火墙是否被阻止。另一项检查是尝试在完全不同的 vpc 中启动一个虚拟 ec2 实例,然后尝试连接到 postgre rds——如果 ec2 方法有效,那么它就是你的防火墙问题。我希望没有 acls 阻塞(VPC ACL)
  • AWS 在配置他们的服务方面有着糟糕的经历。感觉就像工程师与现实世界失去了联系,他们设计和编写了文档,并且不再能够考虑为你认识的观众写作……不知道如何设置。难以置信。
  • 谢谢@Naveen Vijay!在我的情况下,防火墙阻止了对端口 3306 的传出请求。

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


【解决方案1】:

默认情况下,即使您在 RDS 设置过程中将“公共可访问性”设置为“是”,“安全组”仍然不允许端口 3306。

因此你必须点击RDS的安全组,然后添加一个规则以允许来自任何IP的3306。

这里是参考设置。但在这里我必须首先警告你,这种公开的可访问性会将你的数据库暴露在互联网上。请自行承担风险。

【讨论】:

    【解决方案2】:

    根据新的 AWS RDS UI。遵循以下步骤。

    1. 打开 Amazon RDS 控制台。
    2. 从导航窗格中选择数据库,然后选择数据库实例。
    3. 选择修改。
    4. 连接性

    另外[重要]: 使用 PORT 和 IP 更新入站和出站策略

    【讨论】:

    • 大多数寻找答案的人通常都知道这一点。如果您解释一下您标记为红色的内容以及这是否在公共访问连接中发挥任何作用,我会很高兴
    【解决方案3】:

    要检查两件事:

    1. 确保 RDS 实例设置了publicly accessible 属性,以便为其分配公共地址

    2. 另外,根据 AWS RDS 文档,“如果您希望 VPC 中的数据库实例可公开访问,您必须 enable the VPC attributes DNS hostnames and DNS resolution。”

    此外,请检查您的 RDS 实例主机名解析到的 IP 是否为公共 IP 地址。

    【讨论】:

    • 如果我有时间阅读那些“详细”的亚马逊文档,我不会寻找快速有效的答案。这是大多数人已经知道的。
    • 如果您不阅读文档,那么您将永远无法为自己学习任何东西。
    • “另外,请检查您的 RDS 实例主机名解析到的 IP 是否为公共 IP 地址。” - 如何检查?
    【解决方案4】:

    自 2021 年 10 月起,RDS 实例可能拥有自己的安全组。因此,您只需创建或编辑安全组以允许公共访问*。

    一般而言,RDS 实例都有一个默认的安全组。我建议创建一个新的安全组以允许公共访问,而不是编辑 default 组。

    添加新的安全组。

    • 转到 RDS > 安全组
    • 点击Create DB Security Group
    • 输入namedescription,点击Create按钮保存
    • 点击安全组列表中新建的安全组名称
    • 点击位于框右上角的Add Rule
    • 勾选CIDR/IP单选按钮
    • CIDR/IP to Authorize 文本字段中输入 0.0.0.0/0
    • 点击Add Rule按钮保存

    保存后,返回RDS实例列表,RDS > 数据库

    • 勾选RDS实例,点击右上角修改
    • Connectivity > Security group 下查找并选择新创建的安全组
    • 确保在Connectivity > Additional Settings 下选中Publicly accessible
    • 保存

    您可以选择编辑现有的安全组。这可能会阻止修改 RDS 实例的步骤。

    为了编辑安全组。

    • 转到 RDS > 安全组
    • 单击要编辑的安全组,例如default
    • 点击位于框右上角的Add Rule
    • 勾选CIDR/IP单选按钮
    • CIDR/IP to Authorize 文本字段中输入 0.0.0.0/0
    • 点击Add Rule按钮保存

    [*] - 你应该考虑添加一个 IP 或 IP 范围(如果有的话)。

    【讨论】:

      【解决方案5】:

      无法连接到我的可公开访问的 RDS 以及关注 https://aws.amazon.com/premiumsupport/knowledge-center/rds-connectivity-instance-subnet-vpc/

      事实证明,我的一个子网路由表没有到公共 0.0.0.0/0 的路由记录,添加后它可以工作。

      【讨论】:

        猜你喜欢
        • 2017-12-26
        • 2019-07-28
        • 2016-04-22
        • 2015-04-17
        • 2020-07-01
        • 2017-12-29
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        相关资源
        最近更新 更多