當您在環境中設定多租戶時,NSX 支援建立原則。

專案的防火牆規則僅會套用至專案中的虛擬機器,亦即,連線至專案中網路的虛擬機器。專案中的規則 (包括將「任何」套用至 DFW 的規則) 不會影響專案外部的工作負載。
備註: /infra 空間中的分組和防火牆規則會套用至 NSX 部署中的每一個虛擬機器,包括專案中的虛擬機器。例如,在以標籤為基礎的群組,會包含具有與成員相同標籤的所有虛擬機器,包括專案內部和外部的虛擬機器。

專案的分散式防火牆

組織內的專案支援「緊急」、「基礎結構」、「環境」和「應用程式 DFW 」類別。/infra 原則的優先順序最高,其次是「專案」原則。/infra 空間中的 DFW 規則可以延伸至專案。

  • 依預設,在 /infra 空間下建立的規則會套用至環境中的所有工作負載。
    • 若要定義規則的範圍,請在 NSX UI 上選取套用至的適當選項。例如,您可以使用套用至選項,將規則限定在特定工作負載範圍內。
    • 您還可以將套用至選項用於在 /infra 空間下建立的群組,或由系統產生且包含專案中所有虛擬機器的專案預設群組 (ORG-default-PROJECT-<project-name>)。
  • 以下內容適用於在 /infra 空間中建立的群組:
    • 動態成員資格會評估系統的所有虛擬機器,包括專案中的虛擬機器。例如,如果組成員資格包含標記有 web 的所有虛擬機器,則群組將包含專案內部和外部帶有 web 標記的虛擬機器。
    • 對於靜態成員資格,您可以明確參考虛擬機器 (成員 > 虛擬機器),或使用專案預設群組 (ORG-default-PROJECT-<project-name>),來新增連線至專案的工作負載。/infra 空間中的群組不支援建立於專案下的其他資源。

預設規則

建立專案時,將在專案內的原則清單底端建立一個「應用程式」類別的預設安全性原則。預設原則定義了專案內的虛擬機器在未遇到任何其他規則時的行為。

預設原則包含以下規則:

  • 允許與 DHCP 通訊的規則。

    (src:ANY dst:ANY services:DHCP Client|DHCP Server Action Allow)

  • 允許在專案內的工作負載之間進行通訊的規則。

    (src:Project default groups (ORG-default-PROJECT-<project-name> dst:Project default groups (ORG-default-PROJECT-<project-name> services:ANY Action Allow)

  • 拒絕所有其他通訊的規則。

    (src:ANY dst:ANY services:ANY Action Deny)

預設原則可確保專案內的虛擬機器只能連線至同一專案中的其他虛擬機器,包括 DHCP。與專案外部的虛擬機器或與系統建立的其他 IP 位址的通訊將被阻擋,只能透過新增規則或修改預設安全性原則中的規則才能允許通訊。

為專案新增分散式防火牆

對於專案原則,如果將範圍設定為 [任何],則原則將僅限於該專案內。專案規則僅有權存取專案中的群組以及已與專案共用的群組。

請發出以下 API 呼叫,來套用安全原則:
PATCH /policy/api/v1/orgs/default/projects/<project-id>/infra/domains/default/security-policies/<security-policy-id>

範例要求:

URL:
PATCH https://{{nsx-manager-ip}}/policy/api/v1/orgs/default/projects/project-1/infra/domains/default/security-policies/web-db
本文:
{
  "resource_type": "SecurityPolicy",
    "description": "web-db",
    "display_name": "web-db",
    "rules": [
    {
      "resource_type": "Rule",
      "description": "web-db-rule-1",
      "display_name": "web-db-rule-1",
      "sequence_number": 1,
      "source_groups": [
        "/orgs/default/projects/project-1/infra/domains/default/groups/group-1"
      ],
      "destination_groups": [
        "/orgs/default/projects/project-1/infra/domains/default/groups/group-1"
      ],
      "services" : ["/infra/services/HTTP"],
      "action" : "ALLOW",
      "_revision": 0
    }
  ],
  "sequence_number": 1,
  "_revision": 0
}