实施网络安全组,确保三层网络架构工作负载的安全 Power Virtual Server
IBM Power Virtual Server 于 IBM 数据中心
本主题借助插图和示例介绍网络安全组(NSG)的架构概述,并解释 NSG 如何在 Power Edge Router (PER) 和支持 CRN 的增强型 IBM® Power® Virtual Server 工作区中工作。 网络安全组(NSG)用于定义安全规则,以允许或拒绝与 Power Virtual Server 工作区中配置的资源相关的特定网络流量。 有关 NSG 及其核心组件的更多信息,请参阅 网络安全组。
在 Power Virtual Server 工作区运行三层网络应用程序通常需要一个包含以下组件的网络:
- 虚拟私有云 (VPC) 中的应用负载平衡器 (ALB)
- 多个虚拟服务器实例,如网络服务器、应用服务器和数据库 (DB) 服务器
- 跳转主机进行管理访问
- 跨 Power Virtual Server 工作区复制数据库
- 私人端点,如域名系统(DNS)和 Secrets Manager
网络的高层结构
下图提供了 Power Virtual Server 环境中示例网络的高级架构视图,并说明了各种子网和组件的连接方式。 图中包括不同的虚拟机(VM),如网络服务器、数据库服务器和应用服务器。 网络还包括子网范围、跳转主机、中转网关和专用端点(DNS 和 Secrets Manager )等组件。
下表解释了高层网络架构图中描述的网络组件:
组件 | 描述 |
---|---|
Transit Gateway (TGW) | 连接 VPC 和 Power Virtual Server 工作区。 中转网关可实现不同子网和区域之间安全高效的通信。 有关中转网关的更多信息,请参阅 关于 IBM Cloud Transit Gateway。 |
Z1 | Power Virtual Server 工作区,其中包含用于生产工作负载的网络服务器(虚拟机)、应用服务器 ( ) 和数据库服务器 ( )。VM2VM3 |
Z2 | Power Virtual Server 工作区,其中包含另一个数据库服务器 ( ),用于数据库复制和灾难恢复 (DR)。VM4 |
应用程序负载均衡器 (ALB) | 在多个网络服务器实例之间分配传入的网络流量,以平衡负载,提供高可用性和高性能。 ALB 位于虚拟私有云 (VPC) 10.10.10.0/24 子网中。 更多信息,请参阅 关于应用程序负载平衡器。 |
跳转主机 ( VM1 ) | 提供对 Power Virtual Server 资源的安全管理和行政访问。 跳跃宿主也被称为堡垒宿主。 跳转主机位于 VPC 内的 10.10.11.0/24 子网。 |
网络服务器( Z1 Workspace 中的虚拟机) | 管理传入的 HTTP 或 HTTPS 网络请求。 网络服务器(虚拟机)托管在 Z1 Workspace 的 10.10.20.0/24 子网中。 |
应用程序服务器 ( VM2 in Z1 Workspace) | 运行应用程序工作负载,并与网络服务器(虚拟机)和数据库服务器 ( VM3 ) 通信。 应用服务器 ( VM2 ) 与网络服务器 (10.10.20.0/24 ) 位于同一子网。 |
DB 服务器 ( VM3 in Z1 Workspace) | 充当数据库服务器,存储应用程序数据。 DB Sever ( VM3 ) 位于 Z1 工作区的 10.10.21.0/24 子网中。 该数据库服务器实例与网络服务器(虚拟机)和应用服务器( VM2 )隔离。 |
DB 服务器 ( VM4 in Z2 Workspace) | 在 Z1 工作区中充当数据库服务器 ( VM3 ) 的副本。 DB 服务器 ( VM4 ) 位于 Z2 工作区的 10.10.30.0/24 子网中。 工作区之间的数据库复制有助于确保冗余和高可用性。 |
DNS(专用端点) | 用作网络中的专用端点。 DNS 在云环境中安全地提供内部域名解析,并托管在 161.26.0.0/16 子网中。 |
Secrets Manager ( Private Endpoint) IaaS | 用作 IaaS 专用端点,可安全地存储和管理 API 密钥和登录凭证等敏感数据。 Secrets Manager 托管在 166.8.0.0/14 子网中。 更多信息,请参见 IBM Cloud Secrets Manager. |
网络地址组和 CIDR 成员
下表列出了本主题中用作示例的网络地址组 (NAG) 和相关的无类别域间路由 (CIDR) 成员。 NAG 使用逻辑组而不是单个 IP,从而简化了 NSG 规则的实施。 有关 NAG 的更多信息,请参阅 网络地址组。
国家咨询组 | CIDR 成员 |
---|---|
ALB(负载平衡器) | 10.10.10.0/24 |
MGMT(管理学) | 10.10.11.0/24 |
REPL(复制) | 10.10.30.0/24 |
IBM (云服务) | 161.26.0.0/16 和 166.8.0.0/14 |
网络地址组和网络安全组布局
下图说明了 NAG 和 NSG 的布局以及流量在网络中的流动方式。
下表列出了 NAG 和 NSG 布局图中使用的 NAG 和 NSG,并解释了布局图中每个组件的用途:
NAG/NSG | 关联组件 | 用途 |
---|---|---|
ALB NAG | ALB (10.10.10.0/24 ) |
包含 ALB,并确保 ALB 可以与 WEB NSG 中的网络服务器(虚拟机)通信。 |
MGMT NAG | 跳转主机 (10.10.11.0/24 ) |
包含跳转主机 ( VM1 ) 并控制对生产 ( Z1 ) 和灾难恢复 ( Z2 ) 工作区组件的 SSH 访问。 |
REPL NAG | DR DB 服务器 (10.10.30.0/24 ) |
包含灾难恢复数据库服务器 ( VM4 ) 并允许从 DB NSG 中的数据库服务器 ( VM3 ) 复制 MySQL。 |
IBM NAG | DNS (161.26.0.0/16 ) 和 Secrets Manager (166.8.0.0/14 ) 专用端点 |
包含 DNS 和 Secrets Manager 专用端点,允许 DNS 和 HTTPS 流量。 |
WEB NSG | 网络服务器 (10.10.20.0/24 ) |
对网络服务器 (VM) 进行分组,以应用允许来自 ALB 的 HTTP 流量并启用到 APP NSG 中应用服务器 ( VM2 ) 的出站 HTTPS 流量的规则。 |
APP NSG | 应用程序服务器 (10.10.20.0/24 ) |
组应用服务器 ( VM2 ) 应用规则,允许来自 WEB NSG 的 HTTP 流量和 DB NSG 中数据库服务器 ( VM3 ) 的 MySQL 流量。 |
DB NSG | DB 服务器 (10.10.21.0/24 ) |
对数据库服务器 ( VM3 ) 进行分组,以应用允许来自 APP NSG 中应用服务器 ( VM2 ) 的 MySQL 流量和启用到 REPL NAG 中灾难恢复数据库服务器 ( VM4 ) 的复制流量的规则。 |
跨网络组件的流量
下表概述了使用不同协议的各网络组件之间的预期流量及其用途,如 NAG 和 NSG 布局图所示。
源 | 目标 | 协议 | 用途 |
---|---|---|---|
ALB | 网络服务器(虚拟机) | HTTP | 将传入的 HTTP 流量分配和路由到网络服务器(虚拟机)。 |
跳转主机 ( VM1 ) | 网络服务器(虚拟机) | SSH | 控制对生产 ( Z1 ) 和灾难恢复 ( Z2 ) 工作区组件的 SSH 访问。 |
网络服务器(虚拟机) | 应用程序服务器 ( VM2 ) | HTTP | 将 HTTP 请求发送到应用程序服务器 ( VM2 ) 进行进一步处理。 |
应用程序服务器 ( VM2 ) | DB 服务器 ( VM3 ) | MySQL | 允许数据库操作所需的流量。 应用程序服务器 ( VM2 ) 查询数据库服务器 ( VM3 ) 以存储或检索数据。 |
DB 服务器 ( VM3 ) | DB 服务器 (DR) ( VM4 ) | MySQL | 允许数据库服务器 ( VM3 ) 和其他数据库服务器 ( VM4 ) 之间的数据复制流量,以实现灾难恢复和冗余。 |
网络服务器(虚拟机) 应用程序服务器 (VM2) DB 服务器 (VM3) |
DNS 专用端点 | DNS | 为内部和外部通信解析域名。 |
网络服务器(虚拟机) 应用程序服务器 (VM2) DB 服务器 (VM3) |
Secrets Manager 私人端点 | HTTPS | 存储和管理敏感数据,如应用程序接口密钥和登录凭证。 |
有关在 Power Virtual Server 工作区中实施 NSG 时如何处理网络流量和安全规则并确定其优先级的更多信息,请参阅 NSG 中的网络流量规则和优先级。
为网络服务器定义 NSG 规则
本节概述了可在 NSG 中定义的规则,以控制允许或拒绝哪些流量进入 Web 服务器。 请考虑下列要求:
- 拒绝其他网络服务器之间的 SSH 流量。
- 允许从 ALB HTTP。
- 允许从跳转主机访问 SSH。
- 允许来自网络服务器的所有流量。
- 允许从 IBM 解析器返回 DNS 数据包。
- 允许从 Secrets Manager 返回 HTTPS 数据包。
- 允许从应用服务器返回 HTTP 数据包。
- 定义一条隐式拒绝规则,限制所有其他未指定的流量。
根据这些要求,您可以创建 NSG 并通过以下配置定义安全规则。 下表中的每一行代表一条单独的安全规则。
rule | 操作 | 协议 | 远程 | 源 | 目标 | 标志 |
---|---|---|---|---|---|---|
拒绝其他网络服务器之间的 SSH 连接 | 拒绝 | TCP | WEB NSG | 1-65535 | 22-22 | – |
允许从 ALB HTTP | 允许 | TCP | ALB NAG | 1-65535 | 80 | – |
允许从跳转主机使用 SSH | 允许 | TCP | MGMT NAG | 1-65535 | 22-22 | – |
允许来自其他网络服务器的所有流量 | 允许 | 任意 | WEB NSG | – | – | – |
允许从 IBM 解析器返回 DNS 数据包 | 允许 | UDP | IBM NAG | 53 | 1-65535 | – |
HTTPS 允许从 Secrets Manager | 允许 | TCP | IBM NAG | 443-443 | 1-65535 | ACK,FIN |
允许从应用服务器返回 HTTP 数据包 | 允许 | TCP | APP NSG | 80-80 | 1-65535 | ACK,FIN |
隐性否认 | 拒绝 | 任意 | 任意 | – | – | – |
为应用服务器定义 NSG 规则
本节概述了可在 NSG 中定义的规则,以控制允许或拒绝应用服务器访问的流量。 请考虑下列要求:
- 允许来自网络服务器的 HTTP 流量。
- 允许从跳转主机使用 SSH。
- 允许来自其他应用服务器的所有流量。
- 允许从 IBM 解析器返回 DNS 数据包。
- 允许从 Secrets Manager 返回 HTTPS 数据包。
- 允许从数据库服务器返回数据包。
- 定义一条隐式拒绝规则,限制所有其他未指定的流量。
根据这些要求,您可以创建 NSG 并通过以下配置定义安全规则。 下表中的每一行代表一条单独的安全规则。
rule | 操作 | 协议 | 远程 | 源 | 目标 | 标志 |
---|---|---|---|---|---|---|
允许从网络服务器 HTTP | 允许 | TCP | WEB NSB | 1-65535 | 80 | – |
允许从跳转主机使用 SSH | 允许 | TCP | MGMT NAG | 1-65535 | 22-22 | – |
允许来自其他应用服务器的所有流量 | 允许 | 任意 | APP NSG | – | – | – |
允许从 IBM 解析器返回 DNS 数据包 | 允许 | UDP | IBM NAG | 53 | 1-65535 | – |
HTTPS 允许从 Secrets Manager | 允许 | TCP | IBM NAG | 443-443 | 1-65535 | ACK,FIN |
允许从数据库服务器返回数据包 | 允许 | TCP | DB NSG | 80-80 | 1-65535 | ACK,FIN |
隐性否认 | 拒绝 | 任意 | 任意 | – | – | – |
为数据库服务器定义 NSG 规则
本节概述了可在 NSG 中定义的规则,以控制允许或拒绝进入数据库服务器的流量。 请考虑下列要求:
- 允许来自应用服务器的 MySQL 流量。
- 允许来自跳转主机的 SSH 流量。
- 允许来自其他数据库服务器的所有流量。
- 允许从 IBM 解析器返回 DNS 数据包。
- 允许从 Secrets Manager 返回 HTTPS 数据包。
- 允许从复制服务器返回数据库数据包。
- 定义一条隐式拒绝规则,限制所有其他未指定的流量。
根据这些要求,您可以创建 NSG 并通过以下配置定义安全规则。 下表中的每一行代表一条单独的安全规则。
rule | 操作 | 协议 | 远程 | 源 | 目标 | 标志 |
---|---|---|---|---|---|---|
允许从应用服务器 MySQL | 允许 | TCP | APP NSG | 1-65535 | 3306-3306 | – |
允许从跳转主机使用 SSH | 允许 | TCP | MGMT NAG | 1-65535 | 22-22 | – |
允许来自其他数据库服务器的所有流量 | 允许 | 任意 | DB NSG | – | – | – |
允许从 IBM 解析器返回 DNS 数据包 | 允许 | UDP | IBM NAG | 53 | 1-65535 | – |
HTTPS 允许从 Secrets Manager | 允许 | TCP | IBM NAG | 443-443 | 1-65535 | ACK、FIN |
允许从复制服务器返回数据库数据包 | 允许 | TCP | REPL NAG | 3306-3306 | 1-65535 | ACK、FIN |
隐性否认 | 拒绝 | 任意 | 任意 | – | – | – |
有关设置、配置和管理 NSG 的更多信息,请参阅 在工作区中设置网络安全组。