NSX では、環境でマルチテナントを設定するときに、グループとポリシーを作成できます。
プロジェクトのグループとファイアウォール ルールは、プロジェクト内の仮想マシン、つまりプロジェクトのネットワークに接続されている仮想マシンにのみ適用されます。DFW に「任意」が適用されているものも含め、プロジェクト内のルールは、プロジェクト外のワークロードに影響を及ぼしません。
注: /infra 領域のグループ分けとファイアウォール ルールは、プロジェクト内の仮想マシンを含め、NSX 展開内のすべての仮想マシンに適用されます。たとえば、タグに基づくグループには、プロジェクトの内部と外部でメンバーと同じタグを持つすべての仮想マシンが含まれます。
グループ
作成するすべてのプロジェクトにデフォルト グループが作成されます。デフォルト グループはプロジェクト自体を表します。プロジェクトで作成されたすべてのセグメントは、プロジェクトのデフォルト グループに追加されます。グループに追加されるのは、グループのセグメントに接続している仮想マシンのみです。デフォルト グループは、ルールの範囲を特定のプロジェクトに限定する際に役立ちます。
デフォルト グループには、グループ範囲のパスを定義するグループ範囲の式があります。管理者は、/infra
領域のルールをデフォルト グループの下のプロジェクトにのみ適用できます。/infra
領域から直接適用するか、グループ内の静的メンバーシップを介して適用できます。
作成する追加グループでは、次のものがサポートされます。
- 静的メンバー:仮想マシン、セグメント、セグメントのポート、IP アドレス
- 動的メンバー:仮想マシン
グループを作成するには、次の API 呼び出しを実行します。
PATCH /policy/api/v1/orgs/default/projects/<project-id>/infra/domains/default/groups/<group-id>仮想マシン ベースのグループを作成する要求の例:
URL:
PATCH https://{{nsx-manager-ip}}/policy/api/v1/orgs/default/projects/project-1/infra/domains/default/groups/group-1本文:
{ "expression": [ { "member_type": "VirtualMachine", "key": "Name", "operator": "CONTAINS", "value": "App", "resource_type": "Condition" } ], "description": "my group", "display_name": "g1", "_revision": 0 }
分散ファイアウォール
組織内のプロジェクトでは、緊急、インフラストラクチャ、環境、およびアプリケーションの DFW カテゴリがサポートされます。/infra
ポリシーの優先順位が最も高く、その後にプロジェクト ポリシーが続きます。/infra
領域の DFW ルールは、プロジェクトに拡張できます。
/infra
領域の下に作成されたルールは、デフォルトで環境内のすべてのワークロードに適用されます。- ルールの範囲を定義するには、NSX ユーザー インターフェイスで [適用先] に適切なオプションを選択します。たとえば、[適用先] オプションを使用して、ルールを特定のワークロードに制限できます。
- [適用先] オプションは、
/infra
領域に作成されたグループ、またはシステムによって生成され、プロジェクトのすべての仮想マシンを含むプロジェクトのデフォルト グループ (ORG-default-PROJECT-<name-of-project>
) に使用することもできます。
- 次の手順は、
/infra
領域に作成されたグループに適用されます。- 動的メンバーシップは、プロジェクト内の仮想マシンを含む、システムのすべての仮想マシンを評価します。たとえば、グループ メンバーシップに web というタグの付いたすべての仮想マシンが含まれている場合、グループにはプロジェクトの内部と外部の両方で web タグが付いた仮想マシンが含まれます。
- 静的メンバーシップの場合、仮想マシン(
ORG-default-PROJECT-<name-of-project>
) を使用して、プロジェクトに接続されているワークロードを追加できます。プロジェクトで作成されたその他のリソースは、/infra
領域のグループではサポートされません。
)を明示的に参照するか、プロジェクトのデフォルト グループ (
一部のデフォルト ポリシーは、プロジェクトの作成時にシステムによって作成されます。デフォルト ポリシーは、ポリシーの範囲を特定のプロジェクトに限定する際に役立ちます。
プロジェクト ポリシーの場合、範囲が「任意」に設定されていると、ポリシーはそのプロジェクトに限定されます。プロジェクト ルールは、プロジェクト内のグループと、プロジェクトと共有されているグループにのみアクセスできます。
セキュリティ ポリシーを適用するには、次の 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 }