NSX では、環境でマルチテナントを設定するときに、ポリシーを作成できます。

プロジェクトのファイアウォール ルールは、プロジェクト内の仮想マシン、つまりプロジェクトのネットワークに接続されている仮想マシンにのみ適用されます。DFW に「任意」が適用されているものも含め、プロジェクト内のルールは、プロジェクト外のワークロードに影響を及ぼしません。
注: /infra 領域のグループ分けとファイアウォール ルールは、プロジェクト内の仮想マシンを含め、NSX 展開内のすべての仮想マシンに適用されます。たとえば、タグに基づくグループには、プロジェクトの内部と外部でメンバーと同じタグを持つすべての仮想マシンが含まれます。

プロジェクトの分散ファイアウォール

組織内のプロジェクトでは、緊急、インフラストラクチャ、環境、およびアプリケーションの DFW カテゴリがサポートされます。/infra ポリシーの優先順位が最も高く、その後にプロジェクト ポリシーが続きます。/infra 領域の DFW ルールは、プロジェクトに拡張できます。

  • /infra 領域の下に作成されたルールは、デフォルトで環境内のすべてのワークロードに適用されます。
    • ルールの範囲を定義するには、NSX ユーザー インターフェイスで [適用先] に適切なオプションを選択します。たとえば、[適用先] オプションを使用して、ルールを特定のワークロードに制限できます。
    • [適用先] オプションは、/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
}