【问题标题】:3-tier web application subnet segmentation in AWS VPCAWS VPC 中的 3 层 Web 应用程序子网分段
【发布时间】:2018-07-01 23:40:52
【问题描述】:

我是 3 层 Web 应用程序的 AWS VPC 设置新手。我创建了一个子网为 10.0.0.0/16 的 VPC,在 AWS VPC 中为 3 层 Web 应用程序进行子网分段的最佳最佳实践是什么?我有 ELB,有 2 个 EC2 实例,后端有 RDS 和 S3。

请指教!!谢谢。

【问题讨论】:

    标签: amazon-web-services amazon-ec2


    【解决方案1】:

    你会发现一个常见的模式是:

    • 带有 /16 的 VPC(例如 10.0.0.0/16,它提供所有 10.0.x.x 地址)
    • 带有 /24 的公共子网(例如 10.0.5.0/24,它提供所有 10.0.5.x 地址)
    • 带有/23 的私有子网(例如10.0.6.0/23,它提供所有10.0.6.x 和10.0.7.x)——这更大,因为大多数资源通常都进入私有子网,而且这样做很痛苦后来变大了

    当然,您可以在允许的范围内将上述这些尺寸更改为您想要的任何尺寸。

    与其创建一个三层结构,不如考虑一个二层结构:

    • 每个可用区 1 个公共子网,用于负载均衡器(可能还有堡垒/跳线盒)
    • 每个 AZ 1 个私有子网,用于其他一切——应用程序、数据库等。

    除非您是超级偏执狂,否则无需将应用程序和数据库放在单独的私有子网中。您可以使用安全组来配置额外的安全层,而无需使用单独的子网。这意味着更少的 IP 地址被浪费(例如在部分使用的子网中)。

    当然,您可以对所有事情都使用安全组,并且只使用一层,但是使用私有子网可以提供额外的安全配置保证。

    【讨论】:

    • 1 个子网是否意味着 1 个物理盒子?对于应用服务器和数据库服务器的私有子网,是否意味着它们在同一个盒子中?我认为最好的做法是进行细分并放在不同的盒子中。如果放在单独的框中,配置会是什么样子?
    • 没有。子网是 VPC 网络的逻辑划分。它与虚拟“连接”到网络的资源完全无关。就像您可以将物理计算机插入路由器一样,每个 EC2 实例都连接到子网纯粹是为了网络连接。
    【解决方案2】:

    我们的做法:

    我们创建一个 /16 的 VPC,例如172.20.0.0/16。不要使用默认 VPC。

    然后我们为每个应用程序“层”创建一组子网。

    • 公共 - 任何具有公共 IP 的内容。负载均衡器和 NAT 网关几乎是这里唯一的东西。

    • Web DMZ - Web 服务器位于此处。任何作为负载均衡器目标的东西。

    • 数据 - 负责存储和检索数据的资源。 RDS 实例、EC2 数据库服务器、ElastiCacahe 实例

    • 私有 - 用于真正与 Internet 流量隔离的资源。管理和报告。您的环境中可能不需要它。

    子网都是 /24。每个可用区一个子网。所以会有 3 个公共子网、3 个 Web DMZ 子网等。

    网络 ACL 控制子网之间的流量。公共子网可以与 Web DMZ 通信。 Web DMZ 可以与 Data 对话。数据子网可以相互通信以促进集群。私有子网不能与任何人交谈。

    我有意将网络 ACL 中的内容保持得很粗糙。我不限制特定的端口/应用程序。我们在安全组级别执行此操作。

    专业提示:在 /20 边界上对齐子网组以简化您的网络 ACL 规则。您可以只列出一个包含所有数据子网的 /20,而不是单独列出每个数据子网。

    有些人会认为这种分离程度是过度的。但是我发现它很有用,因为它迫使人们思考应用程序的逻辑结构。它可以防止有人在安全组中做一些愚蠢的事情。它不是防弹的,但它是第二层防御。此外,我们有时会从希望看到传统结构的客户那里获得安全审计,就像您在本地网络中发现的那样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 2018-06-02
      • 2010-11-14
      • 2017-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多