可以使用 Original 的安全设置创建 AWS RDS Read Replica 螺丝吗?
Can creating an AWS RDS Read Replica screw with the Original's Security settings?
我有一个 RDS 实例,我的客户坚持不让我碰它。不过,他说创建一个副本并用它来测试新功能是可以的,所以我继续从原始副本创建一个只读副本,完成后,我将只读副本提升为一个独立的副本实例。然后我创建了一个新的安全组(只允许我的 IP),并在复制的实例上(仅,我已经确认)更改为使用该安全组。我的复制实例工作正常。
我的客户决定登录原始 MySQL RDS 实例(出于某种原因他想这样做)并向我抱怨说 8 个月来他第一次无法访问它。他无法连接 Error 60
。他责怪我,他这样做可能是对的。
所以首先,在这个过程中有没有任何东西看起来像是搞砸了原始 RDS 的安全组,或者原始安全组的入站允许设置?
和second,当我查看安全组设置时,我并不完全理解它是如何工作的。设置如下:
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)根本无法接收任何传入流量,但网络服务(也在 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 中的服务器允许来自 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 服务器的连接.
我有一个 RDS 实例,我的客户坚持不让我碰它。不过,他说创建一个副本并用它来测试新功能是可以的,所以我继续从原始副本创建一个只读副本,完成后,我将只读副本提升为一个独立的副本实例。然后我创建了一个新的安全组(只允许我的 IP),并在复制的实例上(仅,我已经确认)更改为使用该安全组。我的复制实例工作正常。
我的客户决定登录原始 MySQL RDS 实例(出于某种原因他想这样做)并向我抱怨说 8 个月来他第一次无法访问它。他无法连接 Error 60
。他责怪我,他这样做可能是对的。
所以首先,在这个过程中有没有任何东西看起来像是搞砸了原始 RDS 的安全组,或者原始安全组的入站允许设置?
和second,当我查看安全组设置时,我并不完全理解它是如何工作的。设置如下:
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)根本无法接收任何传入流量,但网络服务(也在 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 中的服务器允许来自 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 服务器的连接.