第 7 章 网络安全性


7.1. 了解网络策略 API

Kubernetes 提供了两个用户可用于强制实施网络安全的功能。允许用户强制执行网络策略的一个功能是 NetworkPolicy API,主要用于应用程序开发人员和命名空间租户,通过创建命名空间范围的策略来保护其命名空间。

第二个功能是 AdminNetworkPolicy,它由两个 API 组成:AdminNetworkPolicy (ANP) API 和 BaselineAdminNetworkPolicy (BANP) API。ANP 和 BANP 是为集群和网络管理员设计的,以通过创建集群范围的策略来保护其整个集群。集群管理员可以使用 ANPs 来强制实施优先于 NetworkPolicy 对象的不可覆盖的策略。管理员可以使用 BANP 设置并强制实施可选的集群范围的网络策略规则,当需要时,用户可以使用 NetworkPolicy 对象覆盖它。当一起使用时,ANP、BANP 和网络策略可以实现完整的多租户隔离,管理员可使用这个功能保护集群。

OpenShift Container Platform 中的 OVN-Kubernetes CNI 使用访问控制列表(ACL) Tiers 实施这些网络策略,以评估并应用它们。ACL 按照从 Tier 1 到 Tier 3 的降序进行评估。

第 1 级评估 AdminNetworkPolicy (ANP)对象。第 2 级评估 NetworkPolicy 对象。第 3 级评估 BaselineAdminNetworkPolicy (BANP)对象。

OVK-Kubernetes 访问控制列表 (ACL)

首先评估 ANP。当匹配是 ANP allowdeny 规则时,集群中的任何现有 NetworkPolicyBaselineAdminNetworkPolicy(BANP)对象将不会被评估。当匹配是 ANP pass,评估会从 ACL 的第 1 层移到第 2 层,在其中评估 NetworkPolicy 策略。如果没有 NetworkPolicy 与流量匹配,则评估从第 2 层 ACL 移到评估 BANP 的第 3 层 ACL。

7.1.1. AdminNetworkPolicy 和 NetworkPolicy 自定义资源之间的主要区别

下表解释了集群范围的 AdminNetworkPolicy API 和命名空间范围 NetworkPolicy API 之间的主要区别。

策略元素AdminNetworkPolicyNetworkPolicy

适用的用户

集群管理员

命名空间所有者

影响范围

Cluster

Namespaced

丢弃流量

当显式 Deny 操作设置为一个规则时支持。

在策略创建时通过隐式 Deny 隔离时支持。

委派流量

Pass 操作设置为一个规则时被支持。

Not applicable

允许流量

显式 Allow 操作设置一个规则时被支持。

所有规则的默认操作都是 allow。

策略中的规则优先级

取决于它们出现在 ANP 中的顺序。位置更高的规则有更高的优先级。

规则的效果是叠加的

策略优先级

在 ANP 中,priority 字段用于设置评估的顺序。策略优先级号越低,优先级越高。

在策略之间没有策略排序。

功能优先级

首先通过 1 层 ACL 和 BANP 评估,最后通过第 3 层 ACL 评估。

在 ANP 之后,BANP 之前强制实施,它们会在 ACL 层 2 中进行评估。

匹配 pod 选择

在命名空间之间可应用不同的规则。

可以在单一命名空间中的 pod 之间应用不同的规则。

集群出口流量

通过节点网络 对等点支持

通过 ipBlock 字段以及接受的 CIDR 语法支持。

集群入口流量

不支持

不支持

完全限定域名 (FQDN) 对等支持

不支持

不支持

命名空间选择器

支持通过使用 namespaces.matchLabels 字段进行命名空间的高级选择

支持使用 namespaceSelector 字段支持基于标签的命名空间选择

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.