【问题标题】:Can creating an AWS RDS Read Replica screw with the Original's Security settings?可以使用原始的安全设置创建 AWS RDS 只读副本吗?
【发布时间】:2016-09-10 07:33:18
【问题描述】:

我有一个 RDS 实例,我的客户坚持我不要碰它。不过他说可以创建一个副本,并用它来测试新功能,所以我继续从原始副本创建了一个只读副本,完成后,我将只读副本提升为独立的实例。然后我创建了一个新的安全组(仅允许我的 IP),并在复制的实例上(仅,我已经确认)更改为使用该安全组。我的副本实例工作正常。

我的客户决定登录到原来的 MySQL RDS 实例(出于某种原因他想要这样做),并且向我抱怨 8 个月来他第一次无法访问它。他无法与Error 60 联系。他责备我,他这样做可能是对的。

那么首先,这个过程中是否有任何事情看起来可能会破坏原始 RDS 的安全组或原始安全组的入站允许设置?

第二,当我查看安全组设置时,我并不完全了解它是如何工作的。设置如下:

RDS uses Security Group sg-001  [real ids changed for readability]
sg-001: Inbound TCP 3306 Source: sg-002
sg-002: Inbound TCP 80   Source: sg-003
sg-003: Inbound TCP 80   Source: 0.0.0.0/0
        Inbound TCP 443  Source: 0.0.0.0/0

因此,当我读到该内容时,在我看来,RDS(使用 sg-001)根本无法接收任何传入流量,但 Web 服务(也在 AWS 上运行)仍然能够读取和写入 RDS。有人可以帮助我更好地理解这一点吗?

【问题讨论】:

    标签: amazon-web-services amazon-rds aws-security-group


    【解决方案1】:

    对于您的第一个问题,您描述的步骤不应该引起任何问题,导致您的客户突然无法连接到他的数据库。 AWS 账户是否启用了 CloudTrail?如果是这样,您应该能够看到对 RDS 实例所做的每项更改,以便准确解释发生了什么。

    对于您的第二个问题,以下是您的每个安全组规则的含义:

    sg-001: Inbound TCP 3306 Source: sg-002
    

    sg-001 中的服务器允许来自任何属于 sg-002 成员的服务器在端口 3306 上的传入流量。

    sg-002: Inbound TCP 80   Source: sg-003
    

    sg-002 中的服务器允许从 sg-003 中的任何服务器在端口 80 上传入流量。

    sg-003: Inbound TCP 80   Source: 0.0.0.0/0
            Inbound TCP 443  Source: 0.0.0.0/0
    

    sg033g 中的服务器允许从任何地方通过端口 80 和 443 传入流量。

    我假设 sg-001 是您的数据库,sg-002 是您的 Web 服务器,sg-003 是您的弹性负载均衡器。在这种情况下,互联网上的任何计算机都可以访问 ELB 上的端口 80 和 443。 Web 服务器仅接受来自负载均衡器的流量(即您不能直接从服务器加载页面,您必须通过 ELB),并且数据库仅接受来自 Web 服务器的连接.

    【讨论】:

    • 非常感谢您的解释。这更有意义!至于 CloudTrail,它没有启用。那么,我认为没有其他方法可以查看是否对安全组进行了任何更改?我完全不知道为什么他可以在过去 8 个月里从他家访问 MySQL,而不是在我制作了我的副本之后。
    • @Luth 如果他过去能够远程连接到数据库,我想一定有人在某个时候修改了安全组。
    • 我倾向于同意,但我与他核实过,他能够在我制作复制品前两个小时连接。 :-/ 虽然,正如我上面所指出的,安全组策略中没有任何内容表明他应该曾经被允许远程访问它。这让我很困惑。
    猜你喜欢
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多