Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS RDS-可以使用原始';什么是安全设置?_Amazon Web Services_Amazon Rds_Aws Security Group - Fatal编程技术网

Amazon web services AWS RDS-可以使用原始';什么是安全设置?

Amazon web services AWS RDS-可以使用原始';什么是安全设置?,amazon-web-services,amazon-rds,aws-security-group,Amazon Web Services,Amazon Rds,Aws Security Group,我有一个RDS实例,我的客户坚持我不要碰它。他说可以创建一个副本,然后用它来测试新功能,所以我继续从原始副本创建了一个读取副本,完成后,我将读取副本升级为独立实例。然后,我创建了一个新的安全组(仅允许我的IP),并在复制的实例上(仅,我已确认)更改为使用该安全组。我的复制实例运行良好 我的客户决定登录到原来的MySQL RDS实例(因为某种原因,他想这么做),并向我抱怨,8个月来他第一次无法访问它。他无法连接到错误60。他责备我,他这样做也许是对的 因此,首先,在这个过程中,是否有任何事情看起来

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

我的客户决定登录到原来的MySQL RDS实例(因为某种原因,他想这么做),并向我抱怨,8个月来他第一次无法访问它。他无法连接到
错误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)根本无法接收任何传入流量,但webservice(也在AWS上运行)仍然能够读取和写入RDS。有人能帮我更好地理解这一点吗?

对于您的第一个问题,您描述的步骤不应该导致任何问题,从而导致您的客户突然无法连接到他的数据库。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是您的弹性负载平衡器。在这种情况下,internet上的任何计算机都可以访问ELB上的端口80和443。web服务器只接受来自负载平衡器的流量(即,您不能直接从服务器加载页面,您必须通过ELB),数据库只接受来自web服务器的连接。

对于第一个问题,您描述的步骤不应该导致任何问题,这些问题会导致您的客户突然无法连接到他的数据库。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是您的弹性负载平衡器。在这种情况下,internet上的任何计算机都可以访问ELB上的端口80和443。web服务器只接受来自负载平衡器的流量(即,您不能直接从服务器加载页面,您必须通过ELB),数据库只接受来自web服务器的连接。

非常感谢您的解释。那就更有意义了!至于CloudTrail,它没有启用。那么,我假设没有其他方法可以查看是否对安全组进行了任何更改?我完全不明白为什么在过去的8个月里他可以从家里访问MySQL,而不是在我制作我的副本之后。@Luth我想如果他过去能够远程连接到数据库,一定有人在某个时候修改了安全组。我倾向于同意,但我与他核实过,在我制作复制品前的两个小时,他就可以连接了尽管如此,正如我在上面指出的,在安全组的策略中没有任何内容说他应该被允许远程访问它。这让我很困惑。非常感谢你的解释。那就更有意义了!至于CloudTrail,它没有启用。那么,我假设没有其他方法可以查看是否对安全组进行了任何更改?我完全不明白为什么在过去的8个月里他可以从家里访问MySQL,而不是在我制作我的副本之后。@Luth我想如果他过去能够远程连接到数据库,一定有人在某个时候修改了安全组。我倾向于同意,但我与他核实过,在我制作复制品前的两个小时,他就可以连接了尽管如此,正如我在上面指出的,在安全组的策略中没有任何内容说他应该被允许远程访问它。这使我困惑。