将应用程序负载均衡器与安全组集成

IBM Cloud® Application Load Balancer for VPC (ALB) 允许您绑定 安全组,以增强应用程序的安全性。

安全组是保护 ALB 实例的便捷方法。 通过将安全组连接到负载均衡器,您可以完全控制进出负载均衡器的侦听器及其后端目标的入站和出站流量。 此功能还可方便地收紧负载均衡器后端目标的安全态势。 后端目标可以简单地将负载均衡器的安全组用作其自己的安全组定义中的源,而不是使用其 IP 地址或 CIDR 范围来识别负载均衡器。 这将确保自动允许来自所有负载均衡器设备的流量,而不考虑其 IP 地址。

网络流量规则

下表提供了针对公共和专用应用程序负载均衡器的入站和出站流量的最佳实践。

公共应用程序负载均衡器

入站规则

公共负载平衡器入站规则的配置信息
协议 源类型 源 值
TCP IP 地址 0.0.0.0/0 Listener port

在典型用例中,通常允许从所有源到公共负载均衡器上的侦听器端口的入站流量。

来自特定 CIDR 的公共负载平衡器入站规则的配置信息
协议 源类型 源 值
TCP IP 地址 209.173.53.167/20 Listener port

但是,如果您的需求需要限制入站流量,那么可以指定源 CIDR,例如 209.173.53.167/20。 这将允许 IP 范围内的所有公共 IP 地址到达公共负载均衡器。

出站规则

公共负载均衡器出站规则的配置信息
协议 目标类型 目标 值
TCP Security group Back-end target Back-end target port
TCP Security group Back-end target Health check port

确保后端目标位于安全组中,并配置为出站规则中的目标。 使用嵌套安全组允许 ALB 仅允许到后端目标和运行状况检查端口的出站流量。

您可以将出站规则配置为比显示的更宽松 (例如,允许所有流量到达任何目标)。 但是,出于安全原因,建议不要执行此操作。

专用应用程序负载均衡器

入站规则

专用负载平衡器入站规则的配置信息
协议 源类型 源 值
TCP IP 地址 Subnet CIDR or VPC security group Listener port

通常将专用负载均衡器的入站规则限制为您自己的工作负载。 确保从特定子网 CIDR 或源设备所属的安全组指定源。 首选使用特定 CIDR 或嵌套安全组; 但是,个别 IP 地址也有效。

仅当客户机位于同一 VPC 中时,嵌套安全组才是选项。 如果客户端位于不同的 VPC 中或处于本地环境,并通过 Transit Gateway 或 Direct Link 连接到负载均衡器的 VPC,则必须使用 IP 地址或 CIDR 来识别这些客户端。

出站规则

专用负载均衡器出站规则的配置信息
协议 目标类型 目标 值
TCP Security group Back-end target security group Back-end target port
TCP Security group Back-end target security group Health check port(如果与后端目标端口不同)

确保后端目标位于安全组中,并配置为出站规则中的目标。 使用嵌套安全组可使 ALB 仅允许到后端目标和运行状况检查端口的出站流量。

此外,后端目标必须具有与 DNS 解析器的连接,才能解析负载均衡器的名称。 这是因为负载均衡器通过其 DNS 名称进行访问。

在负载均衡器供应期间连接安全组

创建应用程序负载均衡器时,最多可以连接五个安全组。 如果在创建负载均衡器期间未指定安全组,那么将使用 VPC 的缺省安全组。

如果未至少选择一个安全组,那么建议您更新缺省安全组规则,以最大限度减少新创建的应用程序负载均衡器上负载均衡器流量的中断。

先决条件: 配置安全组和规则

确保存在要连接到 ALB 的安全组。 还要确保为负载均衡器流量配置了其规则。 如果需要创建安全组,请执行以下步骤。 或者,您可以使用 IBM Cloud VPC APIDOCS 创建一个安全组。

要使用 UI 创建安全组,请执行以下操作:

  1. 在浏览器中打开 IBM Cloud 控制台,并登录您的账户。

  2. 选择导航菜单 菜单图标,然后单击基础架构 VPC 图标 > 网络 > 安全组。

  3. 单击创建。

  4. 请为您的安全组指定一个唯一的名称。

  5. 选择安全组的 VPC。 必须在与负载均衡器相同的 VPC 中创建安全组。

  6. 单击 “添加” 以配置入站和出站规则,这些规则用于定义允许哪些类型的流量进出该安全组。 请针对每条规则填写以下信息:

    • 指定用于所允许流量的 CIDR 块或 IP 地址。 或者,您可以在同一 VPC 中指定一个安全组,以允许与所选安全组关联的所有来源之间的流量进出。
    • 选择将应用规则的协议和端口。 有关网络规则的最佳实践,请参阅 网络流量规则。

    提示:

    • 系统将对所有规则求值,而不考虑这些规则的添加顺序。
    • 规则是有状态的,这意味着会自动允许响应所允许流量的返回流量。 例如,如果您创建了一条允许通过端口 80 接收来自 TCP 的入站流量的规则,该规则也会自动允许通过端口 80 向源主机发送 TCP 的出站回复流量,而无需另行设置规则。
  7. 可选: 如果计划将此安全组应用于其他实例,请编辑接口。 在“负载均衡器”部分中执行附加安全组。

  8. 完成创建规则后,单击 创建安全组。

安全组示例

例如,配置以下入站规则,允许 HTTP 监听器( TCP 端口 80)上的所有流量通过。

入站规则配置信息示例
协议 源类型 源 值
TCP 任意 0.0.0.0/0 端口 80

然后,配置出站规则,允许 TCP 流量访问您的后端目标:

出站规则配置信息示例
协议 目标类型 目标 值
TCP 任意 10.11.12.13/32 (后端目标 IP 地址) 80 (后端目标端口)
TCP 任意 10.11.12.14/32 (后端目标 IP 地址) 80 (后端目标运行状况检查端口)

过程: 在 ALB 创建期间连接安全组

要在 创建应用程序负载均衡器 时连接安全组,请执行以下步骤:

  1. 在浏览器中打开 IBM Cloud 控制台,并登录您的账户。
  2. 选择导航菜单 菜单图标,然后单击基础架构 VPC 图标 > 网络 > 负载平衡器。
  3. 单击创建。
  4. 根据需要配置名称,VPC,类型,子网,侦听器和池。
  5. 从安全组表中选择要附加的安全组的复选框。
  6. 单击 创建 以供应负载均衡器。

确保安全组规则允许负载均衡器流量。 确保安全组中允许您的侦听器,池和运行状况检查端口。

连接和拆离安全组

要将安全组连接到现有负载均衡器,请执行以下步骤:

在 2021 年 2 月 25 日之前创建的负载均衡器未连接安全组,并且允许所有入站和出站流量。 如果将安全组附加到没有安全组的负载均衡器,那么无法还原为没有安全组。 通过使用允许所有入站和出站流量的规则附加安全组,可以还原为先前的“允许所有入站和出站流量”行为。 但是,这样的规则在本质上不如建立更严格的安全组更安全,因此不建议这样做。

  1. 在浏览器中打开 IBM Cloud 控制台,并登录您的账户。
  2. 选择导航菜单 菜单图标,然后单击基础架构 VPC 图标 > 网络 > 负载平衡器。
  3. 从负载均衡器列表中,选择负载均衡器以查看其详细信息页面。
  4. 单击 附加的安全组 选项卡以查看附加的安全组。
  5. 要附加一个或多个安全组,请单击 附加。 最多可以选择 5 个安全组以连接到 ALB。
  6. 选择要附加的安全组。
  7. 单击连接。

要从负载均衡器拆离安全组,请执行以下步骤:

  1. 在浏览器中打开 IBM Cloud 控制台,并登录您的账户。
  2. 选择导航菜单 菜单图标,然后单击基础架构 VPC 图标 > 网络 > 负载平衡器。
  3. 从负载均衡器列表中,选择负载均衡器以查看其详细信息页面。
  4. 单击 附加的安全组 选项卡以查看附加的安全组。
  5. 要拆离安全组,请单击安全组的“操作”菜单 "操作" 图标。
  6. 单击拆离。