是否可以使用原始文件的安全设置创建 AWS RDS 只读副本?



我有一个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。有人能帮我更好地理解这一点吗?

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

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

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

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

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

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

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服务器的连接。

相关内容

  • 没有找到相关文章

最新更新