什么是终结点访问控制列表?

重要

Azure 有两种不同的 部署模型 用于创建和使用资源:资源管理器和经典部署模型。 本文介绍使用经典部署模型的情况。 Microsoft建议大多数新部署使用 Resource Manager 部署模型。

终结点访问控制列表(ACL)是可用于 Azure 部署的安全增强功能。 ACL 提供选择性地允许或拒绝虚拟机终结点的流量的功能。 此数据包筛选功能提供了额外的安全层。 只能为终结点指定网络 ACL。 不能为虚拟网络或虚拟网络中包含的特定子网指定 ACL。 建议尽可能使用网络安全组(NSG)而不是 ACL。 使用 NSG 时,将替换终结点访问控制列表,不再强制实施。 若要了解有关 NSG 的详细信息,请参阅 网络安全组概述

可以使用 PowerShell 或 Azure 门户配置 ACL。 若要使用 PowerShell 配置网络 ACL,请参阅 使用 PowerShell 管理终结点的访问控制列表。 若要使用 Azure 门户配置网络 ACL,请参阅 如何设置虚拟机的终结点

使用网络访问控制列表(ACL),可以执行以下操作:

  • 选择性地允许或拒绝基于远程子网 IPv4 地址范围到虚拟机输入终结点的传入流量。
  • 封锁列表 IP 地址
  • 为每个虚拟机终结点创建多个规则
  • 使用规则排序来确保在给定虚拟机终结点上应用正确的规则集(最低到最高)
  • 指定特定远程子网 IPv4 地址的 ACL。

有关 ACL 限制,请参阅 Azure 限制 文章。

ACL 的工作原理

ACL 是包含规则列表的对象。 创建 ACL 并将其应用到虚拟机终结点时,数据包筛选将在 VM 的主机节点上进行。 这意味着来自远程 IP 地址的流量由主机节点筛选,以匹配 ACL 规则,而不是在 VM 上进行筛选。 这可以防止 VM 在数据包筛选上花费宝贵的 CPU 周期。

创建虚拟机时,会设置默认 ACL 来阻止所有传入流量。 但是,如果为 (端口 3389) 创建了终结点,则会修改默认 ACL 以允许该终结点的所有入站流量。 然后,允许来自任何远程子网的入站流量发送到该终结点,无需防火墙预配。 除非为这些端口创建了终结点,否则所有其他端口的入站流量都会被阻止。 默认情况下允许出站流量。

示例默认 ACL 表

规则# 远程子网 端点 允许/拒绝
100 0.0.0.0/0 3389 许可证

允许和拒绝

可以通过创建指定“允许”或“拒绝”的规则来有选择地允许或拒绝虚拟机输入终结点的网络流量。 请务必注意,默认情况下,创建终结点时,允许向终结点发送所有流量。 因此,请务必了解如何创建允许/拒绝规则,并按优先顺序放置规则,以便对选择允许访问虚拟机终结点的网络流量进行精细控制。

注意事项:

  1. 无 ACL – 默认情况下,创建终结点时,我们允许所有访问该终结点。
  2. 许可证- 添加一个或多个“允许”范围时,默认情况下会拒绝所有其他范围。 只有来自允许 IP 范围的数据包才能与虚拟机终结点通信。
  3. 否认- 添加一个或多个“拒绝”范围时,默认情况下允许所有其他流量范围。
  4. 允许和拒绝的组合 - 如果要找出允许或拒绝的特定 IP 范围,可以使用“允许”和“拒绝”的组合。

规则和规则优先级

可以在特定的虚拟机终结点上设置网络 ACL。 例如,可以为在虚拟机上创建的 RDP 终结点指定网络 ACL,以锁定特定 IP 地址的访问。 下表显示了授予对特定范围的公共虚拟 IP(VIP)的访问权限以允许 RDP 访问的方法。 所有其他远程 IP 均被拒绝。 我们遵循 优先级最低的 规则顺序。

多个规则

在下面的示例中,如果要仅允许从两个公共 IPv4 地址范围(65.0.0.0/8 和 159.0.0.0/8)访问 RDP 终结点,可以通过指定两个 允许 规则来实现此目的。 在这种情况下,由于默认情况下为虚拟机创建了 RDP,因此可能需要基于远程子网锁定对 RDP 端口的访问。 以下示例显示了一种授予对特定范围的公共虚拟 IP(VIP)的访问权限以允许 RDP 访问的方法。 所有其他远程 IP 均被拒绝。 这很有效,因为可以为特定的虚拟机终结点设置网络 ACL,默认情况下拒绝访问。

示例 - 多个规则

规则# 远程子网 端点 允许/拒绝
100 65.0.0.0/8 3389 许可证
200 159.0.0.0/8 3389 许可证

规则顺序

由于可以为终结点指定多个规则,因此必须有一种方法来组织规则,以确定哪个规则优先。 规则顺序指定优先级。 网络 ACL 遵循 优先级最低的 规则顺序。 在下面的示例中,端口 80 上的终结点有选择地授予对特定 IP 地址范围的访问权限。 若要对此进行配置,我们在 175.1.0.1/24 空间中有一个地址的拒绝规则(规则 #100)。 然后,使用优先级为 200 指定第二个规则,该规则允许访问 175.0.0.0/8 下的所有其他地址。

示例 - 规则优先级

规则# 远程子网 端点 允许/拒绝
100 175.1.0.1/24 80 否认
200 175.0.0.0/8 80 许可证

网络 ACL 和负载均衡集

可以在负载均衡集终结点上指定网络 ACL。 如果为负载均衡集指定了 ACL,则网络 ACL 将应用于该负载均衡集中的所有虚拟机。 例如,如果使用“端口 80”创建负载均衡集,并且负载均衡集包含 3 个 VM,则一个 VM 的终结点“端口 80”上创建的网络 ACL 将自动应用于其他 VM。

网络 ACL 和负载均衡集

后续步骤

使用 PowerShell 管理终结点的访问控制列表