1

我设置了一个带有 3 个子网的 AWS VPC - 1 个公共子网和 2 个私有子网。我有一个 EC2 实例,其关联的 Elastic Block Store(EBS 包含我的网站)在公共子网中运行,而 MySQL 数据库在私有子网中。附加到 EC2 实例的安全组允许来自任何来源的入站 HTTP 访问,以及仅来自我的 IP 地址的 SSH 访问。出站安全规则允许所有流量到达所有目的地。与数据库关联的安全组仅允许对入站和出站流量进行 MySQL/Aurora 访问,源和目标是公共访问安全组。

这一切都运行得很好,但是当我开始为子网设置 NACL 时,我遇到了一个我无法弄清楚的障碍。如果我将公共子网的 NACL 上的入站规则更改为“所有流量”或“所有 TCP”以外的任何内容,我会从我的网站收到错误响应:Unable to connect to the database: Connection timed out. 2002.我已尝试使用所有可用选项并始终得到此结果。我还从附加到私有子网的 NACL 中得到了一个意外的结果:如果我拒绝所有入站和出站流量的访问(即删除除默认的“全部拒绝”规则之外的所有规则),网站将继续正常运行(前提是公共子网的 NACL 上的入站规则设置为“所有流量”或“所有 TCP”)。

此处提出了类似的问题,但答案基本上是不打扰使用 NACL,而不是解释如何正确使用它们。我正在学习 AWS 解决方案架构师认证,因此显然需要了解它们的用法,在我的实际示例中,AWS 推荐的 NACL 设置都不起作用。

4

0 回答 0