gpt4 book ai didi

amazon-web-services - 添加带有 Internet 网关的公共(public)子网和带有 NAT 的私有(private)子网时,RDS 公共(public)访问丢失

转载 作者:行者123 更新时间:2023-12-04 13:56:50 24 4
gpt4 key购买 nike

任何帮助将非常感激!

最初,我们的 AWS VPC 中有 3 个子网。 VPC 有一个 IGW 和一个默认路由表,其中包含 2 条路由 - 1 条用于内部路由,0.0.0.0/0 用于 IGW。标准的初始 VPC 设置。

在 VPC 中,我们有一个 RDS 实例,带有一个 RDS 代理,并且在我们开发解决方案时将数据库设置为公共(public)访问。 DB 与默认 VPC SG 以及特定 SG 相关联,该特定 SG 将 IP 地址列入白名单以通过公共(public)端点连接数据库。

同样在 VPC 中,我们有一个使用默认 VPC 安全组和上述 3 个子网的 Lambda。

Lambda 可以连接到 RDS 代理,我们可以通过列入白名单的 IP 连接到 RDS 公共(public)端点 - 这符合预期。

问题:

现在我们需要为 Lambda 提供互联网访问(它需要与 RedisLabs 连接)。为此,我们添加了:

  • 公共(public)子网 (subnet-00245f33edbae3358)
  • 公共(public)子网上的 NAT
  • 创建与现有 3 个私有(private)子网(subnet-06d1124e、subnet-ba82bce1、subnet-3344b955)关联的路由表,路由为 0.0.0.0/0 -> NAT
  • 创建与新公共(public)子网 (subnet-00245f33edbae3358) 关联的路由表,路由为 0.0.0.0/0 -> IGW

  • 有了这个地方,Lambda 仍然可以通过 RDS 代理(预期)访问数据库,现在可以访问互联网(预期),但是我们通过面向公众的端点失去了与数据库的连接。

    配置中是否缺少允许 Lambda 访问 RDS 和 Internet 并且还允许我们通过公共(public)端点访问 RDS 的内容?或者我们是否需要公共(public)子网中的 SSH 隧道来执行此操作?

    提前致谢!

    附加信息:

    RDS 目前具有以下 SG:
    - prod-auth-service-rds - 允许来自我列入白名单的 IP 的 TCP 3306
    - sg-11cb746b(默认) - 所有流量,自引用源(sg-11cb746b)

    RDS 在子网上:
    - subnet-06d1124e - 现有的私有(private)子网
    - 子网-ba82bce1 - 现有的私有(private)子网
    - 子网-3344b955 - 现有的私有(private)子网

    NAT 在子网 00245f33edbae3358 上

    最佳答案

    编辑:重新阅读您的回复,如果您的 RDS 数据库位于私有(private)子网上,那么无论您在数据库设置中设置为该选项的内容如何,​​它都无法公开访问。
    ————

    查看附加信息后,我认为问题在于您的 RDS 安全组。它只允许来自您默认安全组或您的个人白名单 IP 中的事物的流量。

    即使 lambda 位于您的默认安全组中,RDS 也会将流量视为来自您的 Lambda,他们将其视为来自没有安全组的 NAT Gataway。

    您可以通过将 NAT 网关的 EIP 作为额外的白名单 IP 添加到 RDS SG 的入站规则来解决此问题。

    关于amazon-web-services - 添加带有 Internet 网关的公共(public)子网和带有 NAT 的私有(private)子网时,RDS 公共(public)访问丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60974428/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com