第 8 章 管理网络策略
Kubernetes 网络策略 是一种规范,如何允许 pod 组相互通信和其他网络端点。这些网络策略配置为 YAML 文件。通过只查看这些文件,通常很难确定应用的网络策略是否达到所需的网络拓扑。
Red Hat Advanced Cluster Security for Kubernetes (RHACS)从编配器收集所有定义的网络策略,并提供用来使这些策略更易于使用的工具。
为了支持网络策略强制,RHACS 提供以下工具:
- 网络图
- 网络策略模拟器
- 网络策略生成器
- 构建时网络策略生成器
本文档描述了网络图(1.0),它在 RHACS 4.0 中已弃用,并计划在以后的发行版本中删除。它还描述了 RHACS 3.74 和 4.0 中提供的网络图(2.0 预览)。
8.1. 网络图(2.0 预览) 复制链接链接已复制到粘贴板!
网络图(2.0 预览)在 RHACS 3.74 和 4.0 中提供,它是一个技术预览功能。
8.1.1. 关于网络图(2.0 预览) 复制链接链接已复制到粘贴板!
网络图提供有关环境中部署、网络流和网络策略的高级信息。
网络图 2.0 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
RHACS 处理每个安全集群中的所有网络策略,以显示哪些部署可以相互联系,并可以访问外部网络。它还监控运行部署并跟踪它们之间的流量。您可以在网络图中查看以下项目:
- 网络组件
- 在顶部菜单中,您可以选择命名空间(由 NS 标签表示)和部署(由 D 标签表示)以显示所选集群的图形上(由 CL 标签表示)。您可以使用下拉列表并选择要过滤的条件来进一步过滤部署,如常见漏洞和暴露(CVE)、标签和镜像。
- 外部实体
- 它们代表了在集群外连接的实体。如需更多信息,请参阅网络图形(2.0 preview)中的"外部实体和连接"。
- 网络策略
- 您可以查看所选组件的现有策略,或查看没有策略的组件。
- 网络流
- 您可以为图形选择以下流之一:
- 活跃流量
- 选择此默认选项会显示观察到的流量,专注于您选择的命名空间或特定部署。您可以选择显示信息的时间段。
- 不活跃流
- 选择这个选项会显示网络策略允许的潜在流,帮助您识别实现更紧密隔离所需的缺少网络策略。您可以选择显示信息的时间段。
您还可以从网络图形视图模拟网络策略。如需更多信息,请参阅"从网络图模拟网络策略",以了解版本 1.0 或 2.0 preview。
在网络图形中的导航和用户界面 (2.0 预览)
- 点击图形中的项目可让您查看有关组件或执行操作,如将网络流添加到您的基准中。
- 打开图例提供了有关使用中的符号及其含义的信息。图例显示表示网络图中命名空间、部署和连接的符号的说明文本。
- 从下拉列表中选择额外的显示选项,控制图形是否显示图标,如网络策略状态徽标、活动外部流量徽标以及用于边缘连接的端口和协议标签。
- RHACS 检测到网络流量的变化,如加入或离开节点。如果检测到更改,网络图会显示可用更新数量的通知。为了避免中断您的关注,图不会自动更新。点通知来更新图形。
在网络图中的外部实体和连接 (2.0 预览)
网络图视图显示受管集群和外部源之间的网络连接。另外,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. 网络图示例
当您点击图形中的项目时,带有 collapsible 部分的 rearranged 侧面板会显示该项目的信息。您可以点以下项目:
- Deployments
- 命名空间
- 外部实体
- CIDR 块
- 外部组
侧面板根据您选择的图形中的项目显示相关信息。标头中项目名称旁边的 D 或 NS 标签(本例中为"postgres"表示它是部署还是命名空间。以下示例演示了部署模式。
图 8.2. 部署示例的侧面板
在 Namespace 模式中,侧面板包含一个搜索栏和一个部署列表。您可以单击部署来查看其信息。在 Namespace 模式中,侧面板还包括 Network policies 选项卡。在此选项卡中,您可以查看、复制到剪贴板,或导出该命名空间中定义的任何网络策略,如下例所示。
图 8.3. 一个命名空间的侧面板示例
8.1.2. 查看部署信息 复制链接链接已复制到粘贴板!
网络图提供了 RHACS 发现的部署、命名空间和连接的可视化映射。点击图形中的部署,您可以查看部署的信息,包括以下详情:
- 网络安全性,如流数、现有或缺少网络策略规则以及监听端口
- 标签和注解
- 端口配置
- 容器信息
- 入口和出口连接的异常和基准流,包括协议和端口号
- 网络策略
流程
查看命名空间中的部署详情:
- 在 RHACS 门户中,进入到 Network Graph (2.0 preview), 然后从下拉列表中选择您的集群。
- 点 Namespace 列表,使用 search 字段找到命名空间或选择单独的命名空间。
- 点 Deployments 列表,并使用搜索字段查找部署或选择要在网络图中显示的独立部署。
- 在网络图中,点部署来查看信息面板。
- 点 Details,Flows,Baseline, 或 Network policies 标签页查看对应的信息。
8.1.2.1. 在网络图中查看网络策略(2.0 预览) 复制链接链接已复制到粘贴板!
网络策略指定允许 pod 组相互通信和其他网络端点。Kubernetes NetworkPolicy 资源使用标签来选择 pod,并定义允许哪些流量从所选 pod 或所选 pod 的流量的规则。RHACS 在网络图中发现并显示所有 Kubernetes 集群、命名空间、部署和 pod 的网络策略信息。
流程
- 在 RHACS 门户中,进入到 Network Graph (2.0 preview), 然后从下拉列表中选择您的集群。
- 点 Namespace 列表,使用 search 字段找到命名空间或选择单独的命名空间。
- 点 Deployments 列表,并使用搜索字段查找部署或选择要在网络图中显示的独立部署。
- 在网络图中,点部署来查看信息面板。
在 Details 选项卡中,在 Network security 部分中,您可以查看提供以下信息的网络策略规则的摘要信息:
- 管理入口或出口流量的网络中是否存在策略
- 如果您的网络缺少策略,因此允许所有入口或出口流量
- 要查看网络策略的 YAML 文件,您可以点策略规则,或者点击 Network policies 选项卡。
8.1.3. 在网络图中配置 CIDR 块(2.0 预览) 复制链接链接已复制到粘贴板!
您可以指定自定义 CIDR 块,或者在网络图中配置自动发现的 CIDR 块的显示。
流程
在 RHACS 门户中,进入到 Network Graph (2.0 preview),然后选择 Manage CIDR Blocks。您可以执行以下操作:
切换 自动发现的 CIDR 块,以便在网络图中隐藏自动发现的 CIDR 块。
注意当您隐藏自动发现的 CIDR 块时,所有集群都会隐藏自动发现的 CIDR 块,而不仅仅是网络图中顶栏上所选集群。
通过执行以下步骤在图形中添加自定义 CIDR 块:
- 在字段中输入 CIDR 名称和 CIDR 地址。要添加额外的 CIDR 块,点 Add CIDR 块 并为每个块输入信息。
- 单击 Update Configuration 以保存更改。
8.1.4. 从网络图模拟网络策略(2.0 预览) 复制链接链接已复制到粘贴板!
您当前的网络策略可能允许不需要的网络通信。要模拟一组新网络策略的影响,请使用网络策略模拟器。有关使用网络策略模拟器生成策略的详情,请参考"在网络图(2.0 preview)中生成网络策略"。
流程
- 在 RHACS 门户中,进入到 Network Graph (2.0 preview)。
- 选择一个集群,然后选择一个或多个命名空间。
- 在网络图标头中,选择 Simulate 网络策略。
- 可选:通过点 Generate and simulate network policies 来生成带有网络策略的 YAML 文件。如需更多信息,请参阅"在网络图形(2.0 preview)中生成网络策略"。
上传要在模拟中使用的网络策略的 YAML 文件。网络图视图显示您提议的网络策略将达到什么。执行以下步骤:
- 点 Upload YAML,然后选择 文件。
- 点 Open。系统会显示一条消息,以指示上传的策略的处理状态。
您可以通过点 View active YAMLS 选项卡来查看与当前网络策略对应的活跃 YAML 文件,然后从下拉列表中选择策略。您还可以执行以下操作:
- 点适当的按钮复制或下载显示的 YAML 文件。
使用 Actions 菜单从活跃流量重建规则,或将规则恢复到之前应用的 YAML。如需更多信息,请参阅"从网络图形(2.0 preview)中生成网络策略"。
警告直接应用网络策略可能会导致运行应用程序出现问题。在将网络策略应用到生产工作负载之前,始终在开发环境或测试集群中下载并测试网络策略。