第 8 章 管理网络策略
Kubernetes 网络策略 是一种规范,如何允许 pod 组相互通信和其他网络端点。这些网络策略配置为 YAML 文件。通过只查看这些文件,通常很难确定应用的网络策略是否达到所需的网络拓扑。
Red Hat Advanced Cluster Security for Kubernetes (RHACS)从编配器收集所有定义的网络策略,并提供用来使这些策略更易于使用的工具。
为了支持网络策略强制,RHACS 提供以下工具:
- 网络图
- 网络策略生成器
- 网络策略模拟器
- 构建时网络策略生成器
8.1. 网络图 复制链接链接已复制到粘贴板!
8.1.1. 关于网络图 复制链接链接已复制到粘贴板!
网络图提供有关环境中部署、网络流和网络策略的高级信息。
RHACS 处理每个安全集群中的所有网络策略,以显示哪些部署可以相互联系,并可以访问外部网络。它还监控运行部署并跟踪它们之间的流量。您可以在网络图中查看以下项目:
- 内部实体
- 它们代表了在部署和属于专用地址空间( RFC 1918 中定义的)之间的连接。如需更多信息,请参阅"涉及内部实体的无效"。
- 外部实体
- 这些代表部署与不属于私有地址空间的 IP 地址之间的连接,如 RFC 1918 中定义的。如需更多信息,请参阅网络图中"外部实体和连接"。
- 网络组件
- 在顶部菜单中,您可以选择命名空间(由 NS 标签表示)和部署(由 D 标签表示)以显示所选集群的图形上(由 CL 标签表示)。您可以使用下拉列表并选择要过滤的条件来进一步过滤部署,如常见漏洞和暴露(CVE)、标签和镜像。
- 网络流
- 您可以为图形选择以下流之一:
- 活跃流量
- 选择此默认选项会显示观察到的流量,专注于您选择的命名空间或特定部署。您可以选择显示信息的时间段。
- 不活跃流
- 选择这个选项会显示网络策略允许的潜在流,帮助您识别实现更紧密隔离所需的缺少网络策略。您可以选择显示信息的时间段。
- 网络策略
- 您可以查看所选组件的现有策略,或查看没有策略的组件。您还可以从网络图形视图模拟网络策略。如需更多信息,请参阅"从网络图模拟网络策略"。
8.1.1.2. 网络图中的外部实体和连接 复制链接链接已复制到粘贴板!
网络图视图显示受管集群和外部源之间的网络连接。另外,RHACS 会自动发现并突出显示公共无类别域间路由(CIDR)地址块,如 Google Cloud、AWS、Microsoft Azure、Oracle Cloud 和 Cloudflare。使用此信息,您可以识别具有活跃外部连接的部署,并决定是否从网络外部创建或接收未授权连接。
默认情况下,外部连接指向一个通用的 外部实体 图标和网络图中的不同 CIDR 地址块。但是,您可以通过点 Manage CIDR 块并取消选择自动发现的 CIDR 块 来选择不会显示 自动发现的 CIDR 块。
RHACS 包括以下云供应商的 IP 范围:
- Google Cloud
- AWS
- Microsoft Azure
- Oracle Cloud
- Cloudflare
RHACS 每 7 天获取和更新云供应商的 IP 范围,并每天更新 CIDR 块。如果您使用离线模式,可以通过安装新的支持软件包来更新这些范围。
下图提供了一个网络图示例。在本例中,根据用户选择的选项,图形描述了所选命名空间中的部署。在点部署等项目前,不会显示流量流。该图使用红色徽标来指示缺少策略的部署,从而允许所有网络流量。
8.1.1.3. 涉及内部实体的连接 复制链接链接已复制到粘贴板!
网络图可用于识别与不属于任何已知部署或 CIDR 块的实体的活跃连接的部署。其中一些连接永远不会连接到集群外,并在集群的专用网络内进行。网络图表示它们作为与内部实体的连接或来自 内部实体。
与内部实体的连接代表部署和属于私有地址空间的 IP 地址的连接,如 RFC 1918 中定义的。在某些情况下,Sensor 无法识别连接中涉及的一个或多个部署。在这种情况下,系统会分析 IP 地址,并确定连接是内部还是外部。
以下场景可能会导致连接被归类为涉及内部实体之一:
- IP 地址更改或删除接受连接(服务器)的方启动连接(客户端)仍然会尝试到达它
- 与编配器 API 通信的部署
- 使用网络 CNI 插件进行通信的部署,如 Calico
- 重启 Sensor,从而导致将 IP 地址映射到过去部署,例如当 Sensor 无法识别过去实体的 IP 地址或现有实体的过去 IP 地址时,
- 一个连接涉及不是由编配器管理的实体(在某些情况下,可能被视为在 集群之外),而是使用来自 RFC 1918 中定义的私有地址空间中的 IP 地址。
内部实体通过图标表示,如下图所示。点 Internal entities 显示这些实体的流。
图 8.4. 内部实体示例
8.1.2. 访问控制和权限 复制链接链接已复制到粘贴板!
要查看网络图形,用户必须至少具有授予 Network Graph Viewer 默认权限集的权限。
为 Network Graph Viewer 权限集授予以下权限:
-
读取
部署 -
read
NetworkGraph -
读取
NetworkPolicy
如需更多信息,请参阅"添加资源"部分中的"系统权限集"。
其他资源
8.1.3. 查看部署信息 复制链接链接已复制到粘贴板!
网络图提供了 RHACS 发现的部署、命名空间和连接的可视化映射。点击图形中的部署,您可以查看部署的信息,包括以下详情:
- 网络安全性,如流数、现有或缺少网络策略规则以及监听端口
- 标签和注解
- 端口配置
- 容器信息
- 入口和出口连接的异常和基准流,包括协议和端口号
- 网络策略
流程
查看命名空间中的部署详情:
- 在 RHACS 门户中,进入 Network Graph 并从下拉列表中选择您的集群。
- 点 Namespaces 列表,并使用搜索字段找到命名空间,或选择单独的命名空间。
- 单击 Deployments 列表,并使用搜索字段查找部署,或者选择要在网络图中显示的单个部署。
- 在网络图中,点部署来查看信息面板。
- 点 Details,Flows,Baseline, 或 Network policies 标签页查看对应的信息。
8.1.4. 在网络图中查看网络策略 复制链接链接已复制到粘贴板!
网络策略指定允许 pod 组相互通信和其他网络端点。Kubernetes NetworkPolicy 资源使用标签来选择 pod,并定义允许哪些流量从所选 pod 或所选 pod 的流量的规则。RHACS 在网络图中发现并显示所有 Kubernetes 集群、命名空间、部署和 pod 的网络策略信息。
流程
- 在 RHACS 门户中,进入 Network Graph 并从下拉列表中选择您的集群。
- 点 Namespaces 列表并选择单独的命名空间,或使用搜索字段找到命名空间。
- 点 Deployments 列表并选择单个部署,或使用 search 字段来定位部署。
- 在网络图中,点部署来查看信息面板。
在 Details 选项卡中,在 Network security 部分中,您可以查看提供以下信息的网络策略规则的摘要信息:
- 管理入口或出口流量的网络中是否存在策略
- 如果您的网络缺少策略,因此允许所有入口或出口流量
- 要查看网络策略的 YAML 文件,您可以点策略规则,或者点击 Network policies 选项卡。
8.1.5. 在网络图中配置 CIDR 块 复制链接链接已复制到粘贴板!
您可以指定自定义 CIDR 块,或者在网络图中配置自动发现的 CIDR 块的显示。
流程
在 RHACS 门户中,进入 Network Graph,然后选择 Manage CIDR Blocks。您可以执行以下操作:
切换 自动发现的 CIDR 块,以便在网络图中隐藏自动发现的 CIDR 块。
注意当您隐藏自动发现的 CIDR 块时,所有集群都会隐藏自动发现的 CIDR 块,而不仅适用于网络图中所选集群。
通过执行以下步骤在图形中添加自定义 CIDR 块:
- 在字段中输入 CIDR 名称和 CIDR 地址。要添加额外的 CIDR 块,点 Add CIDR 块 并为每个块输入信息。
- 单击 Update Configuration 以保存更改。