带有公有和私有子网以及 Amazon Site-to-Site VPN 访问权限的 VPC - Amazon Virtual Private Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

带有公有和私有子网以及 Amazon Site-to-Site VPN 访问权限的 VPC

此场景的配置包括一个包含公有子网和私有子网的 Virtual Private Cloud (VPC),以及一个虚拟私有网关,以允许您自己的网络可以通过 IPsec VPN 隧道进行通信。如果您想将您的网络扩展到云并且直接从您的 VPC 访问 Internet,则我们建议您采用此方案。在此场景中,您可以在公有子网中运行有可扩展 Web 前端的多层应用程序,还能够将您的数据储存在通过 Amazon Site-to-Site VPN 连接与您的网络相连的私有子网中。

还可以选择为 IPv6 配置此场景。在子网中启动的实例可接收 IPv6 地址。我们不支持通过虚拟私有网关上的站点到站点 VPN 连接进行 IPv6 通信;但是,VPC 中的实例可通过 IPv6 彼此通信,公有子网中的实例可以通过 IPv6 进行 Internet 通信。有关 IPv4 和 IPv6 寻址的更多信息,请参阅IP 寻址

有关管理 EC2 实例软件的信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南 中的管理 Linux 实例上的软件

概览

下表展示了此场景配置的主要组成部分。


				此场景示意图:具有公有和私有子网以及 VPN 访问权的 VPC

此情景的配置包括:

  • IPv4 CIDR 大小为 /16 的 Virtual Private Cloud (VPC) (示例:10.0.0.0/16)。提供 65536 个私有 IPv4 地址。

  • IPv4 CIDR 大小为 /24 的公有子网 (示例:10.0.0.0/24)。提供 256 个私有 IPv4 地址。公有子网是指与包含指向互联网网关的路由的路由表关联的子网。

  • IPv4 CIDR 大小为 /24 的仅 VPN 子网 (示例:10.0.1.0/24)。提供 256 个私有 IPv4 地址。

  • Internet 网关。它将 VPC 连接到互联网和其他 Amazon 产品。

  • 在您的 VPC 和网络之间的站点到站点 VPN 连接。站点到站点 VPN 连接由位于站点到站点 VPN 连接的 Amazon 一端的虚拟私有网关、以及位于站点到站点 VPN 连接的您这一端的客户网关组成。

  • 子网范围内具有私有 IPv4 地址的实例 (例如 10.0.0.5 和 10.0.1.5),该范围允许实例彼此通信并与 VPC 中的其他实例通信。

  • 公有子网中具有弹性 IP 地址(示例:198.51.100.1)的实例,这些弹性 IP 地址是使其能够从 Internet 访问的公有 IPv4 地址。可在启动时为实例分配公有 IPv4 地址而不是弹性 IP 地址。在仅限 VPN 的子网中的实例是后端服务器,它们不需要从 Internet 接受传入流量,但是可以从您的网络发送和接收流量。

  • 与公有子网关联的自定义路由表。此路由表中包含一个条目允许子网中的实例与 VPC 中的其他实例建立通信,另一个条目则允许子网中的实例直接与 Internet 建立通信。

  • 与仅限 VPN 的子网关联的主路由表。路由表中包含允许子网中的实例与 VPC 中的其他实例通信的条目;以及允许子网中的实例直接与您的网络通信的条目。

有关更多信息,请参阅子网。有关互联网网关的更多信息,请参阅 使用互联网网关连接到互联网。有关 NAT 网关的更多信息,请参阅 NAT 网关。有关 Amazon Site-to-Site VPN 连接的更多信息,请参阅在《Amazon Site-to-Site VPN 用户指南》https://docs.amazonaws.cn/vpn/latest/s2svpn/

IPv6 配置

您可以选择为此场景启用 IPv6。除了上面列出的组件外,还包括以下配置:

  • 与 VPC 关联的 /56 IPv6 CIDR 块(示例:2001:db8:1234:1a00::/56)。Amazon 自动分配 CIDR;您不能自选范围。

  • 与公有子网关联的 /64 IPv6 CIDR 块 (示例:2001:db8:1234:1a00::/64)。您可以从分配给 VPC 的范围内选择您的子网范围。您无法选择 IPv6 CIDR 大小。

  • 与仅 VPN 子网关联且大小为 /64 的 IPv6 CIDR 块 (示例:2001:db8:1234:1a01::/64)。您可以从分配给 VPC 的范围内选择您的子网范围。您无法选择 IPv6 CIDR 大小。

  • 子网范围内分配给实例的 IPv6 地址 (示例:2001:db8:1234:1a00::1a)。

  • 自定义路由表中的路由表条目,允许公有子网中的实例使用 IPv6 相互通信和直接通过 Internet 通信。

  • 主路由表中的一个路由表条目,它允许仅 VPN 子网内的实例使用 IPv6 彼此进行通信。

公有子网中的 Web 服务器具有以下地址。

服务器 IPv4 地址 弹性 IP 地址 IPv6 地址

1

10.0.0.5

198.51.100.1 2001:db8:1234:1a00::1a

2

10.0.0.6

198.51.100.2 2001:db8:1234:1a00::2b
3 10.0.0.7 198.51.100.3 2001:db8:1234:1a00::3c

私有子网中的数据库服务器具有以下地址。

服务器 IPv4 地址 IPv6 地址

1

10.0.1.5

2001:db8:1234:1a01::1a

2

10.0.1.6

2001:db8:1234:1a01::2b
3 10.0.1.7 2001:db8:1234:1a01::3c

路由

您的 VPC 有一个隐藏路由器 (显示在此场景的配置图中)。在这个情景中,Amazon VPC 更新了在仅限 VPN 的子网中使用的主路由表,并创建了一个自定义路由表并将其关联到公有子网。

仅限 VPN 的子网中的实例无法直接连接 Internet;所有 Internet 绑定流量必须首先通过虚拟私有网关到达您的网络,随后流量会接受您的防火墙和公司安全策略检测。如果实例发送任何Amazon 绑定流量(例如,请求 Amazon S3 或 Amazon EC2 API),则请求必须经过虚拟私有网关通向您的网络,并在到达 Amazon 之前进入互联网。

提示

任何来自您的网络、前往公有子网中实例的弹性 IP 地址的流量都会流经 Internet,而不是流经虚拟私有网关。您也可以设置路由和安全组规则,以允许来自您的网络的数据流可通过虚拟私有网关到达公有子网。

站点到站点 VPN 连接既可配置为静态路由的站点到站点 VPN 连接,也可配置为动态路由的站点到站点 VPN 连接(使用 BGP)。如果您选择静态路由,您将收到提示,要求您在创建站点到站点 VPN 连接时手动输入您的网络的 IP 前缀。如果您选择动态路由,IP 前缀会使用 BGP,自动发布到您的 VPC 的虚拟私有网关。

下表描述了此场景的路由表。

主路由表

第一个条目是 VPC 中本地路由的默认条目;此条目允许此 VPC 中的实例通过 IPv4 相互通信。第二个条目将来自私有子网的所有其他 IPv4 子网流量通过虚拟私有网关 (例如 vgw-1a2b3c4d) 路由到您的网络。

目的地 目标
10.0.0.0/16 本地
0.0.0.0/0 vgw-id

自定义路由表

第一个条目是 VPC 中本地路由的默认条目;这项条目允许 VPC 中的实例在彼此之间进行通信。第二个条目将来自公有子网的所有其他 IPv4 子网流量通过互联网网关(例如 igw-1a2b3c4d)路由到 Internet。

目的地 目标
10.0.0.0/16 本地
0.0.0.0/0 igw-id

替代路由

或者,如果您希望私有子网中的实例能够访问 Internet,您可以在公有子网中创建一个网络地址转换 (NAT) 网关或实例,然后设置路由,以使该子网的 Internet 绑定流量能够通向 NAT 设备。这使得仅限 VPN 的子网中的实例能够通过互联网网关发送请求(例如获取软件更新)。

有关手动设置 NAT 设备的更多信息,请参阅 使用 NAT 设备连接到互联网或其他网络

要使私有子网的 Internet 绑定流量能够通向 NAT 设备,您必须对主路由表进行如下更新。

第一个条目是 VPC 中本地路由的默认条目。第二个条目将通往您自己的本地(客户)网络的子网流量路由到虚拟私有网关。在此示例中,假定您的本地网络的 IP 地址范围为 172.16.0.0/12。第三个条目将所有其他子网流量发送到 NAT 网关。

目的地 目标
10.0.0.0/16 本地
172.16.0.0/12 vgw-id
0.0.0.0/0 nat-gateway-id

IPv6 路由

如果您将 IPv6 CIDR 块与您的 VPC 和子网关联,则您的路由表必须包含适用于 IPv6 流量的单独路由。下面的表显示了当您选择在 VPC 中启用 IPv6 通信时此场景的自定义路由表。

主路由表

第二个条目是自动为 VPC 中通过 IPv6 的本地路由添加的默认路由。

目的地 目标
10.0.0.0/16 本地
2001:db8:1234:1a00::/56 本地
0.0.0.0/0 vgw-id

自定义路由表

第二个条目是自动为 VPC 中通过 IPv6 的本地路由添加的默认路由。第四个条目将所有其他 IPv6 子网流量路由到互联网网关。

目的地 目标
10.0.0.0/16 本地
2001:db8:1234:1a00::/56 本地
0.0.0.0/0 igw-id
::/0 igw-id

安全性

Amazon 提供了多种可以用于提高 VPC 中资源安全性的功能。安全组用于允许关联资源(例如 EC2 实例)的入站和出站流量。网络 ACL 用于允许或拒绝子网级别的入站和出站流量。在大多数情况下,使用安全组即可满足您的需求。不过,如需为 VPC 增加额外的安全保护,您可以使用网络 ACL。有关更多信息,请参阅比较安全组和网络 ACL

在此场景中,您将使用安全组,而不使用网络 ACL。如果希望使用网络 ACL,请参阅 推荐网络 ACL 规则

您的 VPC 带有默认的安全组。如果您在启动期间没有指定其他安全组,在该 VPC 中启动的实例会与默认安全组自动关联。在这个情景中,我们建议您创建以下安全组,而不是使用默认安全组:

  • WebServerSG:在公有子网中启动 Web 服务器时指定该安全组。

  • DBServerSG:在仅 VPN 子网中启动数据库服务器时指定该安全组。

分配到同一个安全组的实例可以位于不同的子网之中。但是,在这个场景中,每个安全组都对应一项实例承担的角色类型,每个角色则要求实例处于特定的子网内。因此,在这个场景中,所有分配到一个安全组的实例都位于相同的子网之中。

下表描述了 WebServerSG 安全组的推荐规则,这些规则允许 Web 服务器接收 Internet 流量,以及来自您的网络的 SSH 和 RDP 流量。Web 服务器也可发起对仅限 VPN 的子网中的数据库服务器的读取和写入请求,并向 Internet 发送流量;例如获取软件更新。由于 Web 服务器不发起任何其他出站通信,因此将删除默认出站规则。

注意

组内包括 SSH 和 RDP 访问,以及 Microsoft SQL Server 和 MySQL 访问。根据您的情况,您可能仅需要 Linux (SSH 和 MySQL) 或 Windows (RDP 和 Microsoft SQL Server) 规则。

入站
协议 端口范围 注释

0.0.0.0/0

TCP

80

允许从任意 IPv4 地址对 Web 服务器进行入站 HTTP 访问。

0.0.0.0/0

TCP

443

允许从任意 IPv4 地址对 Web 服务器进行入站 HTTPS 访问。

您网络的公有 IP 地址范围

TCP

22

允许从您的网络对 Linux 实例进行入站 SSH 访问(通过互联网网关)。

您网络的公有 IP 地址范围

TCP

3389

允许从您的网络对 Windows 实例进行入站 RDP 访问(通过互联网网关)。

出站

您的 DBServerSG 安全组 ID

TCP

1433

允许对分配到 DBServerSG 的数据库服务器进行出站 Microsoft SQL Server 访问.

您的 DBServerSG 安全组 ID

TCP

3306

允许对归属于 DBServerSG 的数据库服务器进行出站 MySQL 访问.

0.0.0.0/0

TCP

80

允许对 Internet 进行出站 HTTP 访问。

0.0.0.0/0

TCP

443

允许对 Internet 进行出站 HTTPS 访问。

下表描述了 DBServerSG 安全组的推荐规则,这些规则允许 Microsoft SQL Server 和 MySQL 读和写 Web 服务器请求以及来自您的网络的 SSH 和 RDP 流量。数据库服务器也可以发起通往 Internet 的流量(您的路由表会通过虚拟私有网关发送该流量)。

入站
协议 端口范围 注释

您的 WebServerSG 安全组 ID

TCP

1433

允许与 WebServerSG 安全组关联的 Web 服务器进行入站 Microsoft SQL Server 访问。

您的 WebServerSG 安全组 ID

TCP

3306

允许与 WebServerSG 安全组关联的 Web 服务器进行入站 MySQL Server 访问。

您的网络的 IPv4 地址范围

TCP

22

允许从您的网络到 Linux 实例的入站 SSH 数据流(通过虚拟私有网关)。

您的网络的 IPv4 地址范围

TCP

3389

允许从您的网络对 Windows 实例进行入站 RDP 访问(通过虚拟私有网关)。

出站

目的地 协议 端口范围 注释

0.0.0.0/0

TCP

80

允许通过虚拟私有网关对 Internet 进行出站 IPv4 HTTP 访问(例如获取软件更新)。

0.0.0.0/0

TCP

443

允许通过虚拟私有网关对 Internet 进行出站 IPv4 HTTPS 访问(例如获取软件更新)。

(可选) VPC 的安全组带有默认规则,可自动允许指定实例在彼此之间建立通信。要允许自定义安全组进行此类通信,您必须添加下列规则:

入站
协议 端口范围 注释

安全组 ID

All

All

允许来自分配到此安全组的其他实例的入站数据流.

出站
目的地 协议 端口范围 注释
The ID of the security group All All Allow outbound traffic to other instances assigned to this security group.

IPv6 的安全组规则

如果您将 IPv6 CIDR 块与您的 VPC 和子网关联,则必须向 WebServerSG 和 DBServerSG 安全组添加单独的规则来控制您的实例的入站和出站 IPv6 流量。在此场景中,Web 服务器能够接收通过 IPv6 的所有 Internet 流量以及来自您的本地网络的通过 IPv6 的 SSH 或 RDP 流量。它们也可以发起到 Internet 的出站 IPv6 流量。数据库服务器无法发起到 Internet 的出站 IPv6 流量,因此,它们不需要任何附加的安全组规则。

以下是针对 WebServerSG 安全组的特定于 IPv6 的规则 (是上面所列规则的补充)。

入站
协议 端口范围 注释

::/0

TCP

80

允许从任意 IPv6 地址对 Web 服务器进行入站 HTTP 访问。

::/0

TCP

443

允许从任意 IPv6 地址对 Web 服务器进行入站 HTTPS 访问。

您的网络的 IPv6 地址范围

TCP

22

(Linux 实例) 允许您的网络通过 IPv6 进行入站 SSH 访问。

您的网络的 IPv6 地址范围

TCP

3389

(Windows 实例) 允许您的网络通过 IPv6 进行入站 RDP 访问。

出站
目的地 协议 端口范围 注释
::/0 TCP HTTP Allow outbound HTTP access to any IPv6 address.
::/0 TCP HTTPS Allow outbound HTTPS access to any IPv6 address.

实现此场景

要实现此场景,请获取有关您的客户网关的信息,并创建 VPC。

这些过程包括用于为您的 VPC 启用和配置 IPv6 通信的可选步骤。如果您不想在 VPC 上使用 IPv6,则不必执行这些步骤。

准备您的客户网关
  1. 确定将作为您的客户网关设备使用的设备。有关更多信息,请参阅《Amazon Site-to-Site VPN 用户指南》中的您的客户网关设备

  2. 获取客户网关设备外部接口的可在 Internet 上路由的 IP 地址。地址必须是静态的,可位于执行网络地址转换 (NAT) 任务的设备之后。

  3. 如果需要创建静态路由站点到站点 VPN 连接,请获取应通过站点到站点 VPN 连接传播到虚拟私有网关的内部 IP 范围列表(以 CIDR 表示)。有关更多信息,请参阅《Amazon Site-to-Site VPN 用户指南》中的路由表和 VPN 路由优先级

有关如何将 Amazon VPC 用于 IPv6 的信息,请参阅 支持 IPv6 寻址的 VPC

推荐网络 ACL 规则

在此场景中,您可以为公有子网创建网络 ACL,并为仅限 VPN 的子网创建一个单独的网络 ACL。下表显示了我们为每个网络 ACL 推荐的规则。除非明确要求,否则它们会阻止所有流量。

Inbound
规则 # 源 IP 协议 端口 允许/拒绝 注释

100

0.0.0.0/0

TCP

80

允许

允许从任意 IPv4 地址到 Web 服务器的入站 HTTP 流量。

110

0.0.0.0/0

TCP

443

允许

允许从任意 IPv4 地址到 Web 服务器的入站 HTTPS 流量。

120

您的家庭网络的公有 IPv4 地址范围

TCP

22

允许

允许从您的家庭网络到 Web 服务器的入站 SSH 流量(通过互联网网关)。

130

您的家庭网络的公有 IPv4 地址范围

TCP

3389

允许

允许从您的家庭网络到 Web 服务器的入站 RDP 流量(通过互联网网关)。

140

0.0.0.0/0

TCP

32768-65535

允许

允许来自 Internet 上的主机的入站返回流量,这些流量对应于源自子网的请求。

此范围仅为示例。有关为您的配置选择正确的临时端口的信息,请参阅临时端口

*

0.0.0.0/0

全部

全部

拒绝

拒绝所有未经前置规则 (不可修改) 处理的入站 IPv4 流量。

Outbound
规则 # 目的 IP 协议 端口 允许/拒绝 注释

100

0.0.0.0/0

TCP

80

允许

允许出站 HTTP 流量从子网流向 Internet。

110

0.0.0.0/0

TCP

443

允许

允许出站 HTTPS 流量从子网流向 Internet。

120

10.0.1.0/24

TCP

1433

允许

允许对仅限 VPN 连接的子网中的数据库服务器进行出站 MS SQL 访问.

此端口号仅为示例。其他示例包括用于访问 MySQL/Aurora 的 3306、用于访问 PostgreSQL 的 5432、用于访问 Amazon Redshift 的 5439 和用于访问 Oracle 的 1521。

140

0.0.0.0/0

TCP

32768-65535

允许

允许对 Internet 客户端的出站 IPv4 响应(例如,向访问子网中的 Web 服务器的人员提供网页)。

此范围仅为示例。有关为您的配置选择正确的临时端口的信息,请参阅临时端口

*

0.0.0.0/0

全部

全部

拒绝

拒绝所有未经前置规则 (不可修改) 处理的出站数据流。

Inbound
规则 # 源 IP 协议 端口 允许/拒绝 注释

100

10.0.0.0/24

TCP

1433

允许

允许公有子网中的 Web 服务器读写仅限 VPN 连接的子网中的 MS SQL 服务器.

此端口号仅为示例。其他示例包括用于访问 MySQL/Aurora 的 3306、用于访问 PostgreSQL 的 5432、用于访问 Amazon Redshift 的 5439 和用于访问 Oracle 的 1521。

120

您的家庭网络的私有 IPv4 地址范围

TCP

22

允许

允许来自家庭网络的入站 SSH 流量(通过虚拟私有网关)。

130

您的家庭网络的私有 IPv4 地址范围

TCP

3389

允许

允许来自家庭网络的入站 RDP 流量(通过虚拟私有网关)。

140

您的家庭网络的私有 IP 地址范围

TCP

32768-65535

允许

允许家庭网络中的客户端返回的入站流量(通过虚拟私有网关)。

此范围仅为示例。有关为您的配置选择正确的临时端口的信息,请参阅临时端口

*

0.0.0.0/0

全部

全部

拒绝

拒绝所有未经前置规则 (不可修改) 处理的入站数据流。

Outbound
规则 # 目的 IP 协议 端口 允许/拒绝 注释

100

您的家庭网络的私有 IP 地址范围

All

All

允许

允许从子网到您的家庭网络的所有出站数据流(通过虚拟私有网关)。这条规则还涵盖规则 120。但是,可以通过使用特定协议类型及端口编号使此规则更为严格。如果您使此规则更为严格,则您的网络 ACL 中必须包括规则 120,以确保出站响应不会被阻止。

110

10.0.0.0/24

TCP

32768-65535

允许

允许对公有子网中 Web 服务器的出站响应.

此范围仅为示例。有关为您的配置选择正确的临时端口的信息,请参阅临时端口

120

您的家庭网络的私有 IP 地址范围

TCP

32768-65535

允许

允许对本地网络中客户端的出站响应(通过虚拟私有网关)。

此范围仅为示例。有关为您的配置选择正确的临时端口的信息,请参阅临时端口

*

0.0.0.0/0

全部

全部

拒绝

拒绝所有未经前置规则 (不可修改) 处理的出站数据流。

适用于 IPv6 的推荐网络 ACL 规则

如果您实施了支持 IPv6 的场景 3 并创建了具有关联 IPv6 CIDR 块的 VPC 和子网,则必须向网络 ACL 添加单独的规则,以控制入站和出站 IPv6 流量。

以下是您的网络 ACL 的 IPv6 特定规则(对上文列出的规则的补充)。

Inbound
规则 # 源 IP 协议 端口 允许/拒绝 注释

150

::/0

TCP

80

允许

允许来自任意 IPv6 地址的入站 HTTP 流量。

160

::/0

TCP

443

允许

允许来自任意 IPv6 地址的入站 HTTPS 流量。

170

您的家庭网络的 IPv6 地址范围

TCP

22

允许

允许来自您的家庭网络的通过 IPv6 的入站 SSH 流量(通过互联网网关)。

180

您的家庭网络的 IPv6 地址范围

TCP

3389

允许

允许来自您的家庭网络的通过 IPv6 的入站 RDP 流量(通过互联网网关)。

190

::/0

TCP

1024-65535

允许

允许来自 Internet 上的主机的入站返回流量,这些流量对应于源自子网的请求。

此范围仅为示例。有关为您的配置选择正确的临时端口的信息,请参阅临时端口

*

::/0

all

全部

拒绝

拒绝所有未经前置规则 (不可修改) 处理的入站 IPv6 流量。

Outbound
规则 # 目的 IP 协议 端口 允许/拒绝 注释

150

::/0

TCP

80

允许

允许出站 HTTP 流量从子网流向 Internet。

160

::/0

TCP

443

允许

允许出站 HTTPS 流量从子网流向 Internet。

170

2001:db8:1234:1a01::/64

TCP

1433

允许

允许对私有子网中的数据库服务器进行出站 MS SQL 访问.

此端口号仅为示例。其他示例包括用于访问 MySQL/Aurora 的 3306、用于访问 PostgreSQL 的 5432、用于访问 Amazon Redshift 的 5439 和用于访问 Oracle 的 1521。

190

::/0

TCP

32768-65535

允许

允许对 Internet 客户端进行出站响应(例如,向访问子网中的 Web 服务器的人员提供网页)。

此范围仅为示例。有关为您的配置选择正确的临时端口的信息,请参阅临时端口

*

::/0

全部

全部

拒绝

拒绝所有未经前置规则 (不可修改) 处理的出站 IPv6 流量。

Inbound
规则 # 源 IP 协议 端口 允许/拒绝 注释

150

2001:db8:1234:1a00::/64

TCP

1433

允许

允许公有子网中的 Web 服务器读写私有子网中的 MySQL 服务器.

此端口号仅为示例。其他示例包括用于访问 MySQL/Aurora 的 3306、用于访问 PostgreSQL 的 5432、用于访问 Amazon Redshift 的 5439 和用于访问 Oracle 的 1521。

*

::/0

全部

全部

拒绝

拒绝所有未经前置规则 (不可修改) 处理的入站 IPv6 流量。

Outbound
规则 # 目的 IP 协议 端口 允许/拒绝 注释

130

2001:db8:1234:1a00::/64

TCP

32768-65535

允许

允许对公有子网的出站响应 (例如,响应与私有子网中的数据库服务器通信的公有子网中的 Web 服务器)。

此范围仅为示例。有关为您的配置选择正确的临时端口的信息,请参阅临时端口

*

::/0

all

全部

拒绝

拒绝所有未经前置规则 (不可修改) 处理的出站 IPv6 流量。