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