本页面简要介绍了 Google Distributed Cloud (GDC) air-gapped 中的项目网络政策。
项目级网络政策定义入站规则或出站规则。与 Kubernetes 网络政策不同,您只能为一项政策指定一种政策类型。
对于项目内的流量,GDC 会默认为每个项目应用预定义的项目网络政策(即项目内政策)。
默认情况下,项目中的服务和工作负载与外部服务和工作负载隔离。不过,来自不同项目命名空间且位于同一组织内的服务和工作负载可以通过应用跨项目流量网络政策相互通信。
同样,将服务和工作负载连接到不同组织中项目之外的目标位置也需要明确批准。您必须停用数据渗漏防护功能,才能允许跨组织流量。
入站和出站防火墙规则是项目网络政策的主要组成部分,用于确定允许哪些类型的流量进出您的网络。如需在 GDC 中为项目命名空间设置防火墙规则,请使用 GDC 控制台。
安全性和连接性
默认情况下,项目中的服务和工作负载在该项目内是隔离的。如果不配置网络政策,它们就无法与外部服务和工作负载通信。
如需在 GDC 中为项目命名空间设置网络政策,请使用 ProjectNetworkPolicy
资源。借助此资源,您可以定义政策,以允许在项目内、项目之间、与外部 IP 地址之间以及从外部 IP 地址进行通信。此外,只有在为项目停用数据渗漏防护功能后,您才能将工作负载从项目中转移出去。
GDC 项目网络政策是叠加的。工作负载的最终强制执行结果是,流量流与应用于该工作负载的所有政策的并集之间存在 any 匹配。如果存在多项政策,则每项政策的规则会以累加方式组合,只要流量与至少一条规则匹配,就会被允许通过。
此外,应用单个政策后,所有未指定的流量都会被拒绝。因此,当您应用一个或多个以工作负载为对象的政策时,系统只会允许政策指定的流量。
当您使用为项目分配的已知 IP 地址时,系统会对组织的出站流量执行源网络地址转换 (NAT)。
全局项目网络政策
您可以创建全局项目网络政策。全球项目网络政策的范围涵盖整个 GDC 宇宙。每个 GDC 宇宙可以包含多个 GDC 可用区,这些可用区组织成相互关联并共享控制平面的区域。例如,包含两个区域(每个区域有三个地区)的宇宙可能如下所示:us-virginia1-a
、us-virginia1-b
、us-virginia1-c
和 eu-ams1-a
、eu-ams1-b
、eu-ams1-c
。
可用区级项目网络政策的范围仅限于创建时指定的可用区。每个可用区都是独立的灾难域。一个可用区管理使用本地控制平面的基础架构、服务、API 和工具。
如需详细了解 GDC 宇宙中的全局资源,请参阅多地区概览。
您可以使用 Networking Kubernetes 资源模型 (KRM) API 创建全局项目网络政策。使用 API 版本 networking.global.gdc.goog
创建全局资源。
您可以使用 KRM API 或 GDC 控制台创建地区级项目网络政策。使用 API 版本 networking.gdc.goog
创建区域资源。
工作负载级网络政策
您可以创建工作负载级网络政策,以针对项目中的各个虚拟机和 pod 定义精细的访问权限控制。这些政策就像工作负载的防火墙一样,可根据标签控制流量,从而增强安全性并隔离应用。这种精细度可让您更严格地控制哪些工作负载可以在项目内和项目之间相互通信。
工作负载级网络政策还支持在单个可用区内强制执行 PNP。
如需了解详情,请参阅创建工作负载级网络政策。
准备预定义角色和访问权限
如需配置项目网络政策,您必须拥有必要的身份和访问权限角色:
- Project NetworkPolicy Admin:管理项目命名空间中的项目网络政策。请让您的组织 IAM 管理员为您授予 Project NetworkPolicy Admin (
project-networkpolicy-admin
) 集群角色。 - 全局 PNP 管理员:对全局项目命名空间中的所有多区域 PNP 资源拥有写入权限。请让您的组织 IAM 管理员向您授予 Global PNP Admin (
global-project-networkpolicy-admin
) 角色。如需了解详情,请参阅预定义角色说明。