24.4.2. BaselineAdminNetworkPolicy
BaselineAdminNetworkPolicy (BANP)是一个集群范围的自定义资源定义(CRD)。作为 OpenShift Container Platform 管理员,您可以使用 BANP 来设置并强制实施可选的基准网络策略规则,这些规则被用户使用 NetworkPolicy 对象(如果需要的话)覆盖。BANP 的规则操作是 allow 或 deny。
BaselineAdminNetworkPolicy 资源是一个集群单例对象,当传递的流量策略与集群中的任何 NetworkPolicy 对象不匹配时,可用作 guardrail 策略。BANP 也可以用作默认安全模型,该模型默认阻止集群内流量,用户需要使用 NetworkPolicy 对象来允许已知的流量。在创建 BANP 资源时,必须使用 default 作为名称。
管理员可通过 BANP 指定:
-
由一组命名空间或命名空间的
subject。 -
要应用到
subject的所有入口流量的入站规则列表。 -
用于来自
subject的所有出口流量的出口规则列表。
注意
BaselineAdminNetworkPolicy 资源是一个 TechnologyPreviewNoUpgrade 功能,可在非生产环境的测试环境中启用。
24.4.2.1. BaselineAdminNetworkPolicy 示例 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
例 24.5. BANP 的 YAML 文件示例
apiVersion: policy.networking.k8s.io/v1alpha1
kind: BaselineAdminNetworkPolicy
metadata:
name: default
spec:
subject:
namespaces:
matchLabels:
kubernetes.io/metadata.name: example.name
ingress:
- name: "deny-all-ingress-from-tenant-1"
action: "Deny"
from:
- pods:
namespaces:
namespaceSelector:
matchLabels:
custom-banp: tenant-1
podSelector:
matchLabels:
custom-banp: tenant-1
egress:
- name: "allow-all-egress-to-tenant-1"
action: "Allow"
to:
- pods:
namespaces:
namespaceSelector:
matchLabels:
custom-banp: tenant-1
podSelector:
matchLabels:
custom-banp: tenant-1