网络 ACL - Amazon Virtual Private Cloud

网络 ACL

网络访问控制列表 (ACL) 是 VPC 的一个可选安全层,可用作防火墙来控制进出一个或多个子网的流量。您可以设置网络 ACL,使其规则与您的安全组相似,以便为您的 VPC 添加额外安全层。有关安全组和网络 ACL 之间的差别的更多信息,请参阅安全组与网络 ACL 的比较

网络 ACL 基础知识

以下是您需要了解的有关网络 ACL 的基本信息:

  • 您的 VPC 自动带有可修改的默认网络 ACL。默认情况下,它允许所有入站和出站 IPv4 流量以及 IPv6 流量 (如果适用)。

  • 您可以创建自定义网络 ACL 并将其与子网相关联。默认情况下,每个自定义网络 ACL 都拒绝所有入站和出站流量,直至您添加规则。

  • 您的 VPC 中的每个子网都必须与一个网络 ACL 相关联。如果您没有明确地将子网与网络 ACL 相关联,则子网将自动与默认网络 ACL 关联。

  • 您可以将网络 ACL 与多个子网关联。但是,一个子网一次只能与一个网络 ACL 关联。当您将一个网络 ACL 与一个子网关联时,将删除之前的关联。

  • 网络 ACL 包含规则的编号列表。我们按顺序评估(从编号最小的规则开始)规则,以判断是否允许流量进入或离开任何与网络 ACL 关联的子网。您可以使用的最高规则编号为 32766。我们建议您开始先以增量方式创建规则(例如,以 10 或 100 的增量增加),这样您可以在稍后需要时插入新的规则。

  • 网络 ACL 有单独的入站和出站规则,每项规则都或是允许或是拒绝数据流。

  • 网络 ACL 没有任何状态,这意味着对允许入站数据流的响应会随着出站数据流规则的变化而改变(反之亦然)。

对每个 VPC 的网络 ACL 数和每个网络 ACL 的规则数设定了配额(限制)。有关更多信息,请参阅 Amazon VPC 配额

网络 ACL 规则

您可以在默认网络 ACL 中添加或删除规则,或为您的 VPC 创建额外网络 ACL。当您在网络 ACL 中添加或删除规则时,更改也会自动应用到与其相关联的子网。

以下为部分网络 ACL 规则:

  • 规则编号。规则评估从编号最低的规则起开始进行。只要有一条规则与流量匹配,即应用该规则,并忽略与之冲突的任意更大编号的规则。

  • 类型。流量的类型,例如 SSH。您也可以指定所有流量或自定义范围。

  • 协议。您可以指定任何有标准协议编号的协议。有关更多信息,请参阅Protocol Numbers。如果您指定 ICMP 作为协议,您可以指定任意或全部 ICMP 类型和代码。

  • 端口范围。流量的侦听端口或端口范围。例如,80 用于 HTTP 流量。

  • 。[仅限入站规则] 流量的源(CIDR 范围)。

  • 目标。[仅出站规则] 流量的目标(CIDR 范围)。

  • 允许/拒绝允许 还是拒绝 指定的流量。

如果您使用命令行工具或 Amazon EC2 API 添加规则,则系统会自动将 CIDR 范围修改为其规范形式。例如,如果您为 CIDR 范围指定 100.68.0.18/18,我们将创建一个 CIDR 范围为 100.68.0.0/18 的规则。

默认网络 ACL

默认网络 ACL 配置为让所有流量流进和流出与其关联的子网。每个网络 ACL 还包含一个规则编号是星号的规则。此规则确保在数据包不匹配任何其他编号规则时拒绝该数据包。您可以修改或删除此规则。

下面是一个仅支持 IPv4 的 VPC 的示例默认网络 ACL。

入站
规则 # 类型 协议 端口范围 允许/拒绝

100

所有 IPv4 流量

全部

全部

0.0.0.0/0

允许

*

所有 IPv4 流量

全部

全部

0.0.0.0/0

拒绝

出站
规则 # 类型 协议 端口范围 目的地 允许/拒绝

100

所有 IPv4 流量

全部

全部

0.0.0.0/0

允许

*

所有 IPv4 流量

全部

全部

0.0.0.0/0

拒绝

如果您创建具有 IPv6 CIDR 块的 VPC 或将 IPv6 CIDR 块与您的现有 VPC 关联,我们会自动添加允许所有 IPv6 流量流入和流出您的子网的规则。我们还会添加规则编号为星号的规则,该规则可确保拒绝与任何其他编号规则不符的数据包。您不能修改或删除这些规则。下面是一个支持 IPv4 和 IPv6 的 VPC 的示例默认网络 ACL。

注意

如果您修改了您的默认网络 ACL 的入站规则,在您将 IPv6 块与您的 VPC 关联时,我们不会为入站 IPv6 流量自动添加允许 规则。同样,如果您修改了出站规则,我们不会为出站 IPv6 流量自动添加允许 规则。

入站
规则 # 类型 协议 端口范围 允许/拒绝

100

所有 IPv4 流量

全部

全部

0.0.0.0/0

允许

101

所有 IPv6 流量

全部

全部

::/0

允许

*

所有流量

全部

全部

0.0.0.0/0

拒绝

*

所有 IPv6 流量

全部

全部

::/0

拒绝

出站
规则 # 类型 协议 端口范围 目的地 允许/拒绝

100

所有流量

全部

全部

0.0.0.0/0

允许

101

所有 IPv6 流量

全部

全部

::/0

允许

*

所有流量

全部

全部

0.0.0.0/0

拒绝

*

所有 IPv6 流量

全部

全部

::/0

拒绝

自定义网络 ACL

下表显示了一个仅支持 IPv4 的 VPC 的自定义网络 ACL 示例。其中包括允许 HTTP 和 HTTPS 数据流进入的规则 (入站规则 100 和 110)。存在相应的出站规则,以允许响应入站数据流 (出站规则 120,适用于临时端口 32768-65535)。有关如何选择适当的临时端口的更多信息,请参阅临时端口

网络 ACL 还包括允许 SSH 和 RDP 数据流进入子网的入站规则。出站规则 120 允许响应传出子网。

网络 ACL 出站规则 (100 和 110) 允许离开子网的 HTTP 和 HTTPS 数据流。存在相应的入站规则,以允许响应出站数据流 (入站规则 140,适用于临时端口 32768-65535)。

注意

每个网络 ACL 都包含一个默认规则,其规则编号是星号。此规则会确保在数据包不匹配任何其他规则时拒绝此数据包。您可以修改或删除此规则。

入站
规则 # 类型 协议 端口范围 允许/拒绝 注释

100

HTTP

TCP

80

0.0.0.0/0

允许

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

110

HTTPS

TCP

443

0.0.0.0/0

允许

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

120

SSH

TCP

22

192.0.2.0/24

允许

允许来自您的家庭网络的公有 IPv4 地址范围的入站 SSH 流量(通过互联网网关)。

130

RDP

TCP

3389

192.0.2.0/24

允许

允许从您的家庭网络的公有 IPv4 地址范围到 Web 服务器的入站 RDP 流量(通过互联网网关)。

140

自定义 TCP

TCP

32768-65535

0.0.0.0/0

允许

允许来自 Internet 的入站返回 IPv4 流量(即源自子网的请求)。

此范围仅为示例。有关如何选择适当的临时端口的更多信息,请参阅临时端口

*

所有流量

全部

全部

0.0.0.0/0

拒绝

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

出站
规则 # 类型 协议 端口范围 目的地 允许/拒绝 注释

100

HTTP

TCP

80

0.0.0.0/0

允许

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

110

HTTPS

TCP

443

0.0.0.0/0

允许

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

120

自定义 TCP

TCP

32768-65535

0.0.0.0/0

允许

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

此范围仅为示例。有关如何选择适当的临时端口的更多信息,请参阅临时端口

*

所有流量

全部

全部

0.0.0.0/0

拒绝

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

随着数据包流向子网,我们会根据与子网关联的 ACL 的入站规则评估数据包(从规则列表的顶端开始向下移动)。当数据包目标为 HTTPS 端口 (443) 时,评估过程如下。数据包不匹配第一项评估规则 (规则 100)。它匹配第二条规则 (110),即允许数据包进入子网。如果数据包的目的地已经指定为端口 139 (NetBIOS),则它与任何规则均不匹配,而且“*”规则最终会拒绝这个数据包。

在您需要开放一系列端口、同时在此部分端口内您想拒绝部分端口,您可能希望添加一项拒绝 规则。您只需确保将拒绝 规则放在表的较前端,先于一系列的端口数据流的规则。

您可以根据您的用例添加允许 规则。例如,您可以添加一个规则,允许端口 53 上的出站 TCP 和 UDP 访问以进行 DNS 解析。对于您添加的每个规则,请确保存在允许响应流量的相应入站或出站规则。

下表显示了关联有 IPv6 CIDR 块的 VPC 的自定义网络 ACL 的相同示例。此网络 ACL 包含适用于所有 IPv6 HTTP 和 HTTPS 流量的规则。在这种情况下,在 IPv4 流量的现有规则之间插入新规则。您也可以使用大于 IPv4 规则的编号添加规则。IPv4 和 IPv6 流量是独立的,因此,所有 IPv4 流量规则都不适用于 IPv6 流量。

入站
规则 # 类型 协议 端口范围 允许/拒绝 注释

100

HTTP

TCP

80

0.0.0.0/0

允许

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

105

HTTP

TCP

80

::/0

允许

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

110

HTTPS

TCP

443

0.0.0.0/0

允许

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

115

HTTPS

TCP

443

::/0

允许

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

120

SSH

TCP

22

192.0.2.0/24

允许

允许来自您的家庭网络的公有 IPv4 地址范围的入站 SSH 流量(通过互联网网关)。

130

RDP

TCP

3389

192.0.2.0/24

允许

允许从您的家庭网络的公有 IPv4 地址范围到 Web 服务器的入站 RDP 流量(通过互联网网关)。

140

自定义 TCP

TCP

32768-65535

0.0.0.0/0

允许

允许来自 Internet 的入站返回 IPv4 流量(即源自子网的请求)。

此范围仅为示例。有关如何选择适当的临时端口的更多信息,请参阅临时端口

145

自定义 TCP TCP 32768-65535 ::/0 允许

允许来自 Internet 的入站返回 IPv6 流量(即源自子网的请求)。

此范围仅为示例。有关如何选择适当的临时端口的更多信息,请参阅临时端口

*

所有流量

全部

全部

0.0.0.0/0

拒绝

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

*

所有流量

全部

全部

::/0

拒绝

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

出站
规则 # 类型 协议 端口范围 目的地 允许/拒绝 注释

100

HTTP

TCP

80

0.0.0.0/0

允许

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

105

HTTP

TCP

80

::/0

允许

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

110

HTTPS

TCP

443

0.0.0.0/0

允许

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

115

HTTPS

TCP

443

::/0

允许

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

120

自定义 TCP

TCP

32768-65535

0.0.0.0/0

允许

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

此范围仅为示例。有关如何选择适当的临时端口的更多信息,请参阅临时端口

125

自定义 TCP

TCP

32768-65535

::/0

允许

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

此范围仅为示例。有关如何选择适当的临时端口的更多信息,请参阅临时端口

*

所有流量

全部

全部

0.0.0.0/0

拒绝

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

*

所有流量

全部

全部

::/0

拒绝

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

有关更多示例,请参阅 适用于 VPC 向导方案的推荐规则

自定义网络 ACL 和其他 AWS 服务

如果您创建自定义网络 ACL,请注意它可能会如何影响您使用其他 AWS 服务创建的资源。

借助 Elastic Load Balancing,如果您的后端实例的子网有一个网络 ACL,并且您在其中针对源为 0.0.0.0/0 或子网的 CIDR 的所有流量添加了拒绝 规则,则您的负载均衡器将无法对这些实例执行运行状况检查。有关负载均衡器和后端实例的推荐网络 ACL 规则的更多信息,请参阅 Classic Load Balancer 用户指南 中的 VPC 中负载均衡器的网络 ACL

临时端口

上一个部分中的网络 ACL 实例使用了临时端口范围 32768-65535。但是,您可能需要根据自己使用的或作为通信目标的客户端的类型为网络 ACL 使用不同的范围。

发起请求的客户端会选择临时端口范围。根据客户端的操作系统不同,范围也随之更改。

  • 许多 Linux 内核(包括 Amazon Linux 内核)使用端口 32768-61000。

  • 生成自 Elastic Load Balancing 的请求使用端口 1024-65535。

  • Windows 操作系统通过 Windows Server 2003 使用端口 1025-5000。

  • Windows Server 2008 及更高版本使用端口 49152-65535。

  • NAT 网关使用端口 1024 - 65535。

  • AWS Lambda 函数使用端口 1024-65535。

例如,如果一个来自 Internet 上的 Windows XP 客户端的请求到达您的 VPC 中的 Web 服务器,则您的网络 ACL 必须有相应的出站规则,以支持目标为端口 1025-5000 的数据流。

如果您的 VPC 中的一个实例是发起请求的客户端,则您的网络 ACL 必须有入站规则来支持发送到实例类型(Amazon Linux、Windows Server 2008 等)特有的临时端口的数据流。

在实际中,为使不同客户端类型可以启动流量进入您 VPC 中的公有实例,您可以开放临时端口 1024-65535。但是,您也可以在 ACL 中添加规则以拒绝任何在此范围内的来自恶意端口的数据流。请务必将拒绝 规则放在表的较前端,先于开放一系列临时端口的允许 规则。

路径 MTU 发现

路径 MTU 发现用于确定两台设备之间的路径 MTU。路径 MTU 是原始主机和接收主机之间的路径所支持的最大数据包大小。如果主机发送一个大于接收主机的 MTU 或大于路径上某台设备的 MTU 的数据包,则接收主机或设备将返回以下 ICMP 消息:Destination Unreachable: Fragmentation Needed and Don't Fragment was Set (类型 3,代码 4)。这指示原始主机调整 MTU,直到可以传输数据包。

如果您子网中主机之间的最大传输单位 (MTU) 不同,则必须添加以下网络 ACL 规则(入站和出站)。这可确保路径 MTU 发现能够正常工作并防止数据包丢失。为类型选择自定义 ICMP 规则,为端口范围选择目标无法到达需要分段,DF 标志已设置(类型 3,代码 4)。如果您使用 traceroute,还需添加以下规则:选择自定义 ICMP 规则作为类型,并选择超时TTL 中转过期作为端口范围(类型 11,代码 0)。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的 EC2 实例的网络最大传输单位 (MTU)

使用网络 ACL

以下任务为您展示如何使用 Amazon VPC 控制台来处理网络 ACL。

确定网络 ACL 关联

您可以使用 Amazon VPC 控制台来确定与某个子网关联的网络 ACL。网络 ACL 可与多个子网关联,因此,您还可以确定与某个网络 ACL 关联的子网。

确定与某个子网关联的网络 ACL

  1. 打开 Amazon VPC 控制台 https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Subnets,然后选择子网。

    Network ACL (网络 ACL) 中已包含与子网相关联的网络 ACL 以及网络 ACL 的规则。

判断与网络 ACL 关联的特定子网

  1. 打开 Amazon VPC 控制台 https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Network ACLsAssociated With 列指示每个网络 ACL 的关联子网的数目。

  3. 选择网络 ACL。

  4. 在详细信息窗格中,选择子网关联可显示与网络 ACL 关联的子网。

创建网络 ACL

您可以为 VPC 创建自定义网络 ACL。默认情况下,您创建的网络 ACL 将阻止所有入站和出站流量(直到您添加规则),且不与任何子网关联(直到您为其显式关联子网)。

创建网络网络 ACL

  1. 打开 Amazon VPC 控制台 https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Network ACLs

  3. 选择 Create Network ACL

  4. 创建网络 ACL 对话框中,可以选择命名您的网络 ACL,然后 VPC 列表中选择 VPC 的 ID。然后选择是,创建

添加和删除规则

当您在网络 ACL 中添加或删除规则时,与其相关联的子网也会随之更改。您不必终止并重新启动子网中的实例。这些更改在短时间内生效。

如果您使用 Amazon EC2 API 或命令行工具,则无法修改规则。您只能添加和删除规则。如果您使用 Amazon VPC 控制台,则可以修改现有规则的条目。控制台将为您删除现有规则并添加新规则。如果您需要更改 ACL 中的规则顺序,您必须添加有新规则编号的新规则,并随后删除最初的规则。

为网络 ACL 添加规则

  1. 打开 Amazon VPC 控制台 https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Network ACLs

  3. 在详细信息窗格中,根据需要添加的规则的类型,选择 Inbound RulesOutbound Rules 选项卡,然后选择 Edit

  4. Rule #中输入一个规则编号 (例如 100)。规则编号必须尚未在网络 ACL 中使用。我们会按顺序处理规则,以编号最低的规则开始。

    我们建议您使用跳跃的规则编号 (例如 100、200、300) 而不是使用顺序编号 (例如 101、102、103)。这会让添加新规则变得更加简单,无需对现有规则重新编号。

  5. Type 列表中选择规则。例如,要为 HTTP 添加规则,请选择 HTTP。如需添加规则以允许所有 TCP 流量,请选择 All TCP。对于部分选项 (例如 HTTP) 我们会在端口中为您提供。如需使用未列出的规则,请选择 Custom Protocol Rule

  6. (可选) 如果要创建自定义协议规则,请从 Protocol 列表中选择协议的编号和名称。有关更多信息,请参阅IANA List of Protocol Numbers

  7. (可选)如果您已经选定的协议要求提供端口号,您可以输入由连字符分隔的端口号或端口范围(例如 49152-65535)。

  8. SourceDestination 字段中 (根据是入站规则还是出站规则),输入规则适用的 CIDR 范围。

  9. Allow/Deny (允许/拒绝) 列表中,选择 ALLOW (允许) 以允许指定数据流,或选择 DENY (拒绝) 以拒绝指定数据流。

  10. (可选) 要添加其他规则,请选择 Add another rule,然后根据需要重复步骤 4 至 9。

  11. 完成此操作后,选择 Save

从网络 ACL 删除规则

  1. 打开 Amazon VPC 控制台 https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Network ACLs,然后选择网络 ACL。

  3. 在详细信息窗格中,选择 Inbound RulesOutbound Rules 选项卡,然后选择 Edit。为要删除的规则选择 Remove,然后选择 Save

将子网与网络 ACL 关联

如需对特定子网应用特定的网络 ACL 规则,您必须首先将子网与网络 ACL 关联。您可以将网络 ACL 与多个子网关联。但是,一个子网只能与一个网络 ACL 关联。任何未与特定 ACL 关联的子网都会默认与默认网络 ACL 关联。

将子网与网络 ACL 关联

  1. 打开 Amazon VPC 控制台 https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Network ACLs,然后选择网络 ACL。

  3. 在详细信息窗格中的 Subnet Associations 选项卡上,选择 Edit。选中要与网络 ACL 关联的子网的 Associate 复选框,然后选择 Save

解除网络 ACL 与子网的关联

您可以从子网取消自定义网络 ACL 的关联。当子网与自定义网络 ACL 取消关联时,它会随即自动与默认网络 ACL 关联。

解除子网与网络 ACL 的关联

  1. 打开 Amazon VPC 控制台 https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Network ACLs,然后选择网络 ACL。

  3. 在详细信息窗格中,选择 Subnet Associations 选项卡。

  4. 选择 Edit,然后取消选中子网的 Associate 复选框。选择 Save

更改子网的网络 ACL

您可以更改与某个子网关联的网络 ACL。例如,当您创建一个子网时,这个子网会最初与主路由表关联。相反,您可能需要将其与您创建的自定义网络 ACL 相关联。

更改子网的网络 ACL 后,您不必终止并重新启动子网中的实例。这些更改在短时间内生效。

更改子网的网络 ACL 关联

  1. 打开 Amazon VPC 控制台 https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Subnets,然后选择子网。

  3. 选择 Network ACL 选项卡,然后选择 Edit

  4. 更改为列表中选择要与子网关联的网络 ACL,然后选择保存

删除网络 ACL

您只可以删除未与任何子网关联的网络 ACL。您无法删除默认网络 ACL。

删除网络 ACL

  1. 打开 Amazon VPC 控制台 https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Network ACLs

  3. 选择网络 ACL,然后选择 Delete

  4. 在确认对话框中,选择 Yes, Delete

API 和命令概览

您可以使用命令行或 API 执行此页面上所说明的任务。有关命令行界面以及可用 API 列表的更多信息,请参阅 访问 Amazon VPC

为您的 VPC 创建网络 ACL

说明您的一个或多个网络 ACL

向网络 ACL 添加规则

从网络 ACL 中删除规则

替换网络 ACL 中的现有规则

替换网络 ACL 关联

删除网络 ACL

示例:控制对子网中的实例的访问

在本示例中,子网中的任意两个实例可相互通信,并可从受信任的远程计算机访问它们。远程计算机可能是本地网络中的计算机,也可能是其他子网或 VPC 中的实例。您可以使用它连接到实例以执行管理任务。安全组规则和网络 ACL 规则允许从远程计算机 (172.31.1.2/32) 的 IP 地址进行访问。来自 Internet 或其他网络的所有其他流量会被拒绝。


          使用安全组和 NACL

所有实例使用同一个安全组 (sg-1a2b3c4d),均遵守以下规则。

入站规则
协议类型 协议 端口范围 注释
所有流量 全部 全部 sg-1a2b3c4d 允许关联到同一个安全组的实例相互通信。
SSH TCP 22 172.31.1.2/32 允许远程计算机进行入站 SSH 访问。如果实例是 Windows 计算机,则该规则必须对端口 3389 改用 RDP 协议。
出站规则
协议类型 协议 端口范围 目的地 注释
所有流量 全部 全部 sg-1a2b3c4d 允许关联到同一个安全组的实例相互通信。安全组是有状态的。因此您不需要允许入站请求的响应流量的规则。

该子网关联到具有以下规则的网络 ACL。

入站规则
规则 # 类型 协议 端口范围 允许/拒绝 注释
100 SSH TCP 22 172.31.1.2/32 允许 允许远程计算机的入站流量。如果实例是 Windows 计算机,则该规则必须对端口 3389 改用 RDP 协议。
* 所有流量 全部 全部 0.0.0.0/0 拒绝 拒绝与前一条规则不符的所有其他入站流量。
出站规则
规则 # 类型 协议 端口范围 目的地 允许/拒绝 注释
100 自定义 TCP TCP 1024-65535 172.31.1.2/32 允许 允许到远程计算机的出站响应。网络 ACL 没有任何状态。因此需要该规则才能允许针对入站请求的响应流量。
* 所有流量 全部 全部 0.0.0.0/0 拒绝 拒绝不匹配前一条规则的所有其他出站流量。

该方案让您能够灵活地更改实例的安全组或安全组规则,并使用网络 ACL 作为备份防御层。网络 ACL 规则应用到子网中的所有实例。因此,就算您不小心设置了过于宽松的安全组规则,网络 ACL 规则也会继续生效,只允许来自单一 IP 地址的访问。例如,以下规则比之前的规则更加宽松:它们允许来自任意 IP 地址的入站 SSH 访问。

入站规则
类型 协议 端口范围 注释
所有流量 全部 全部 sg-1a2b3c4d 允许关联到同一个安全组的实例相互通信。
SSH TCP 22 0.0.0.0/0 允许来自任意 IP 地址的 SSH 访问。
出站规则
类型 协议 端口范围 目的地 注释
所有流量 全部 全部 0.0.0.0/0 允许所有出站流量。

但是,只有该子网中的其他实例和您的远程计算机能够访问该实例。网络 ACL 规则仍会阻止到该子网的所有入站流量,当然,您的远程计算机除外。

您可以使用 Amazon VPC 控制台中的 VPC 向导来实施 Amazon VPC 的常见方案。如果您按文档所述的那样实现这些方案,则会使用默认网络访问控制列表 (ACL),其中允许所有入站和出站流量。如果需要增加一层安全防护,则可创建网络 ACL 并添加规则。有关更多信息,请参阅 Amazon VPC 控制台向导配置