本頁面提供 Google Distributed Cloud (GDC) 實體隔離環境中專案網路政策的總覽。
專案網路政策會定義輸入或輸出規則。與 Kubernetes 網路政策不同,您只能為政策指定一種政策類型。政策中的每項規則都可以設定為「允許」(預設) 或「拒絕」動作。
對於專案內的流量,GDC 預設會將預先定義的專案網路政策 (即專案內政策) 套用至每個專案。
專案中的服務和工作負載預設會與外部服務和工作負載隔離。不過,只要套用跨專案流量網路政策,來自不同專案命名空間且位於同一機構的服務和工作負載,就能彼此通訊。
同樣地,如要將服務和工作負載連至不同機構中專案以外的目的地,也需要明確核准。您必須停用資料竊取防護功能,才能允許機構外部流量。
輸入和輸出防火牆規則是專案網路政策的主要元件,可決定允許或拒絕哪些類型的流量進出網路。如要在 GDC 中為專案命名空間設定防火牆規則,請使用 GDC 控制台。
安全性與連線
根據預設,專案中的服務和工作負載會與該專案隔離。如未設定網路政策,這些服務和工作負載就無法與外部服務通訊。
如要在 GDC 中為專案命名空間設定網路政策,請使用 ProjectNetworkPolicy 資源。您可以透過這項資源定義政策,允許專案內、專案間、外部 IP 位址的通訊,以及來自外部 IP 位址的通訊。此外,只有停用專案的資料竊取防護功能,才能將工作負載移出專案。
GDC 專案網路政策是外加的。工作負載的強制執行結果是針對流量流的「any」比對,比對對象是套用至該工作負載的所有政策聯集。如果有多項政策,系統會將每項政策的規則加總合併,只要流量符合至少一項規則,就會允許通過。
明確的 Deny 規則優先於 Allow 規則。如果流量符合 Deny 規則,即使其他規則或預設平台政策允許該流量,系統仍會捨棄。
此外,套用選取工作負載的單一政策後,所有未指定的流量都會遭到拒絕 (預設拒絕模式)。因此,當您套用一或多項以工作負載為主題的政策時,只有明確允許 (而非明確拒絕) 的流量才能通過。
使用為專案分配的已知 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 建立區域資源。
允許所有網路政策
您可以建立允許所有網路流量的網路政策,為專案建立廣泛的預設存取規則。
您可以設定下列類型的允許所有網路政策:
- 允許所有網路政策:允許來自任何來源的流量,包括其他專案和外部 IP。
- 允許所有外部網路政策:允許與機構外部 IP 位址之間的流量。
- 允許所有專案的網路政策:允許組織內所有專案的流量。
詳情請參閱「建立允許所有流量的網路政策」。
明確拒絕網路政策
您可以在專案網路政策中設定明確拒絕規則,限制特定專案或 CIDR 區塊之間的連線。
拒絕規則的主要功能和限制:
- 優先順序:拒絕規則的優先順序絕對高於允許規則 (包括基本平台政策)。
- 輸出安全規則:為防止意外封鎖重要基礎架構流量,輸出拒絕規則會自動排除系統和非專案命名空間。
- 對等互連限制:為確保設定安全無虞,輸入拒絕規則必須明確指定來源對等互連。您無法將來源對等互連留空,藉此選取所有來源。來源對等互連不得為空白,否則政策會遭到拒絕。
- 無法透過 DEP 拒絕輸出:為專案啟用資料竊取防護 (DEP) 時,您無法設定輸出拒絕規則。
詳情請參閱「建立拒絕網路政策」。
工作負載層級網路政策
您可以建立工作負載層級的網路政策,為專案中的個別 VM 和 Pod 定義精細的存取控管機制。這些政策就像工作負載的防火牆,可根據標籤控管流量,進而提升安全性及隔離應用程式。這項精細程度可讓您嚴格控管專案內和跨專案的工作負載通訊。
工作負載層級的網路政策也能強制執行單一區域的 PNP。
詳情請參閱「建立工作負載層級的專案內政策」和「建立工作負載層級的跨專案政策」。
準備預先定義的角色和存取權
如要設定專案網路政策,您必須具備必要的 Identity and Access 角色:
- 專案 NetworkPolicy 管理員:管理專案命名空間中的專案網路政策。請機構 IAM 管理員授予您專案 NetworkPolicy 管理員 (
project-networkpolicy-admin) 叢集角色。 - 全域 PNP 管理員:在全域專案命名空間中,對所有多區域 PNP 資源擁有寫入權限。請要求組織 IAM 管理員授予您「全域 PNP 管理員」角色 (
global-project-networkpolicy-admin)。詳情請參閱「預先定義的角色說明」。
節點選取和規模考量
設定專案網路政策時,如果指定特定節點或使用廣泛的 CIDR 範圍,政策設定選項可能會影響可擴充性和效能。請考量下列事項:
廣泛 CIDR 範圍對擴充性的影響
- 0.0.0.0/0 的行為:在
ipBlocks規則中使用0.0.0.0/0等廣泛的 CIDR 時,除了外部 IP 位址,叢集中的所有節點也會相符。 - 擴充:叢集中的每個節點都會獲派專屬的 CIDR ID。每個工作負載端點 (VM 或 Pod) 都有基礎內部政策表 (BPF 對應),用於儲存網路規則。在大型叢集中,廣泛的
ipBlocks規則 (例如0.0.0.0/0) 會以節點數量的順序增加政策對應使用量,因為系統必須為每個不重複的節點 CIDR 身分建立項目。 - 最佳做法:如果節點數量非常多或有大量複雜政策,請避免在
ipBlocks中使用過於廣泛的 CIDR 範圍,否則可能會達到每個端點的政策對應上限。如果端點達到這個上限,新的網路政策就無法套用,這可能會中斷網路連線,或導致該工作負載無法強制執行政策。