将应用程序负载均衡器与安全组集成
IBM Cloud® Application Load Balancer for VPC (ALB) 允许您连接 安全组 以增强应用程序的安全性。
安全组是保护 ALB 实例的便捷方法。 通过将安全组连接到负载均衡器,您可以完全控制进出负载均衡器的侦听器及其后端目标的入站和出站流量。 此功能还可方便地收紧负载均衡器后端目标的安全态势。 后端目标可以简单地将负载均衡器的安全组用作其自己的安全组定义中的源,而不是使用其 IP 地址或 CIDR 范围来识别负载均衡器。 这将确保自动允许来自所有负载均衡器设备的流量,而不考虑其 IP 地址。
网络流量规则
下表提供了针对公共和专用应用程序负载均衡器的入站和出站流量的最佳实践。
公共应用程序负载均衡器
入站规则
协议 | 源类型 | 源 | 值 |
---|---|---|---|
TCP | IP 地址 | 0.0.0.0/0 | Listener port |
在典型用例中,通常允许从所有源到公共负载均衡器上的侦听器端口的入站流量。
协议 | 源类型 | 源 | 值 |
---|---|---|---|
TCP | IP 地址 | 209.173.53.167/20 | Listener port |
但是,如果您的需求需要限制入站流量,那么可以指定源 CIDR,例如 209.173.53.167/20
。 这将允许 IP 范围内的所有公共 IP 地址到达公共负载均衡器。
出站规则
协议 | 目标类型 | 目标 | 值 |
---|---|---|---|
TCP | 安全组 | Back-end target |
Back-end target port |
TCP | 安全组 | 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 | 安全组 | Back-end target security group |
Back-end target port |
TCP | 安全组 | Back-end target security group |
Health check port (如果与后端目标端口不同) |
确保后端目标位于安全组中,并配置为出站规则中的目标。 使用嵌套安全组可使 ALB 仅允许到后端目标和运行状况检查端口的出站流量。
此外,后端目标必须具有与 DNS 解析器的连接,才能解析负载均衡器的名称。 这是因为负载均衡器通过其 DNS 名称进行访问。
在负载均衡器供应期间连接安全组
创建应用程序负载均衡器时,最多可以连接五个安全组。 如果在创建负载均衡器期间未指定安全组,那么将使用 VPC 的缺省安全组。
如果未至少选择一个安全组,那么建议您更新缺省安全组规则,以最大限度减少新创建的应用程序负载均衡器上负载均衡器流量的中断。
先决条件: 配置安全组和规则
确保存在要连接到 ALB 的安全组。 还要确保为负载均衡器流量配置了其规则。 如果需要创建安全组,请执行以下步骤。 或者,您可以使用 IBM Cloud VPC APIDOCS 创建一个安全组。
要使用 UI 创建安全组,请执行以下操作:
-
从浏览器打开 IBM Cloud 控制台并登录账户。
-
选择导航菜单
,然后单击基础架构
> 网络 > 安全组。
-
单击创建。
-
为您的安全组提供一个唯一的名称。
-
选择安全组的 VPC。 必须在与负载均衡器相同的 VPC 中创建安全组。
-
单击添加配置入站和出站规则,这些规则定义了允许哪些类型的流量进入和离开安全组。 请为每条规则填写以下信息:
- 指定用于所允许流量的 CIDR 块或 IP 地址。 或者,您也可以在同一 VPC 中指定一个安全组,以允许连接到所选安全组的所有源的流量或来自这些源的流量。
- 选择将应用规则的协议和端口。 有关网络规则的最佳实践,请参阅 网络流量规则。
提示:
- 系统将对所有规则求值,而不考虑这些规则的添加顺序。
- 规则是有状态的,这意味着会自动允许响应所允许流量的返回流量。 例如,如果创建了一条允许 80 端口 TCP 入站流量的规则,那么该规则也允许将 80 端口的出站 TCP 流量回复到发端主机,而无需另一条规则。
-
可选: 如果计划将此安全组应用于其他实例,请编辑接口。 在“负载均衡器”部分中执行附加安全组。
-
完成创建规则后,单击 创建安全组。
安全组示例
例如,配置以下入站规则,允许 HTTP 监听器 80 端口(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 创建期间连接安全组
要在 创建应用程序负载均衡器 时连接安全组,请执行以下步骤:
- 从浏览器打开 IBM Cloud 控制台并登录账户。
- 选择导航菜单
,然后单击基础架构
> 网络 > 负载平衡器。
- 单击创建。
- 根据需要配置名称,VPC,类型,子网,侦听器和池。
- 从安全组表中选择要附加的安全组的复选框。
- 单击 创建 以供应负载均衡器。
确保安全组规则允许负载均衡器流量。 确保安全组中允许您的侦听器,池和运行状况检查端口。
连接和拆离安全组
要将安全组连接到现有负载均衡器,请执行以下步骤:
在 2021 年 2 月 25 日之前创建的负载均衡器未连接安全组,并且允许所有入站和出站流量。 如果将安全组附加到没有安全组的负载均衡器,那么无法还原为没有安全组。 通过使用允许所有入站和出站流量的规则附加安全组,可以还原为先前的“允许所有入站和出站流量”行为。 但是,这样的规则在本质上不如建立更严格的安全组更安全,因此不建议这样做。
- 从浏览器打开 IBM Cloud 控制台并登录账户。
- 选择导航菜单
,然后单击基础架构
> 网络 > 负载平衡器。
- 从负载均衡器列表中,选择负载均衡器以查看其详细信息页面。
- 单击 附加的安全组 选项卡以查看附加的安全组。
- 要附加一个或多个安全组,请单击 附加。 最多可以选择 5 个安全组以连接到 ALB。
- 选择要附加的安全组。
- 单击连接。
要从负载均衡器拆离安全组,请执行以下步骤:
- 从浏览器打开 IBM Cloud 控制台并登录账户。
- 选择导航菜单
,然后单击基础架构
> 网络 > 负载平衡器。
- 从负载均衡器列表中,选择负载均衡器以查看其详细信息页面。
- 单击 附加的安全组 选项卡以查看附加的安全组。
- 要拆离安全组,请单击安全组的“操作”菜单
。
- 单击拆离。