マルチテナントは、単一の NSX 環境のテナント間でセキュリティとネットワーク構成を分離する手段を提供します。マルチテナントをサポートするために、NSX 4.0.1.1 では組織とプロジェクトが導入されています。
NSX ポリシー データ モデルは階層型で、システムによって作成された 2 つのブランチがあります。
-
/infra
。インフラストラクチャ管理者によって管理されます。 /orgs/default
。マルチテナント構造を保持します。
次の図は、マルチテナントのデータ モデルを示しています。
組織
NSX 環境には、デフォルトの組織が 1 つあります。組織を作成、変更、または削除することはできません。組織オブジェクトは、起動時にシステムによって作成されます。システム内のすべての Tier-0 ゲートウェイと Edge クラスタは、組織からアクセスできます。
組織オブジェクトは、次の識別子を使用してシステムによって作成されます。
/orgs/defaultプロジェクト
組織で、NSX 環境から管理するテナントごとにプロジェクトを作成できます。プロジェクトは、各テナントの独立した構成セットをサポートするため、/orgs/default
の下に作成されます。
- プロジェクトは、特定の隔離されたコンテキストでポリシー階層モデルを提供します。プロジェクト構成は、
/orgs/default/projects/<project-id>/infra
で設定されます。 - プロジェクトの下に Tier-0 ゲートウェイと Edge クラスタを作成することはできません。エンタープライズ管理者は、
/infra
空間の Tier-0 ゲートウェイと Edge クラスタを組織と共有します。これは、組織の下のプロジェクトで使用できます。 - プロジェクトは、
/infra
空間から共有されている一部のオブジェクトおよび構成にアクセスできます。 infra
領域から、プロジェクトの仮想マシンに適用されるルールを作成できます。これらのルールをinfra
領域から作成するには、プロジェクトのデフォルト グループを利用するか、動的メンバーシップまたは仮想マシンの静的メンバーシップを持つグループを作成します。infra
領域からのルール作成以外に、infra
領域からの他のプロジェクト リソースの構成はサポートされていません。たとえば、仮想マシン/プロジェクトのデフォルト グループ以外のプロジェクトの静的メンバーを使用して、組織の下にグループを作成することはできません。infra 領域からプロジェクトに属する Tier-1 ゲートウェイを構成することはできません。プロジェクト リソースはプロジェクト内から構成する必要があります。
組織の下にプロジェクトを作成するには、次の API 呼び出しを実行します。
PATCH /policy/api/v1/orgs/default/projects/<project-id>プロジェクトを作成するときに、プロジェクトで使用する Tier-0 ゲートウェイと Edge クラスタを指定します。この Tier-0 ゲートウェイは、そのプロジェクト内のすべての構成に使用します。プロジェクトに割り当てられた Edge クラスタは、デフォルトのトランスポート ゾーンに属している必要があります。このトランスポート ゾーンに、プロジェクト ネットワークが作成されます。
要求の例:
URL:
PATCH https:/{{nsx-manager-ip}}/policy/api/v1/orgs/default/projects/Project-Dev
本文:
{ "site_infos": [ { "edge_cluster_paths": [ "/infra/sites/default/enforcement-points/default/edge-clusters/ca1b2a4f-057d-42da-b3b8-cf218b1c1a51" ], "site_path": "/infra/sites/default" } ], "tier_0s": [ "/infra/tier-0s/Tier0GatewayTest" ] }
プロジェクトを作成すると、デフォルト ドメインなどの一部のデフォルト オブジェクト、セキュリティ ポリシー、およびデフォルト グループが作成されます。要件に応じて、複数のプロジェクトを作成できます。
プロジェクトが作成されたら、API 呼び出しを実行して、DHCP、Tier-1 ゲートウェイ、セグメントなどのネットワーク構成を完了できます。
カスタム ロールを作成するときに、[ネットワーク] を選択し、すべての権限を なし にリセットします。[権限の設定] ダイアログ ボックスで の順に選択し、[Tier-0 ゲートウェイ] 権限を読み取り専用に設定します。
リソースの割り当て
制約を使用して、プロジェクト内のリソースの割り当てを定義できます。割り当てにより、特定のプロジェクトに対する特定のリソースの上限を定義できます。制約が定義されていない場合は、システムのデフォルトの制限が適用されます。
PATCH /policy/api/v1/infra/constraints/<contraint-id>要求の例:
PATCH https://{{nsx-manager-ip}}/policy/api/v1/infra/constraints/c-1本文:
{ "display_name": "TestConstraint", "constraint_expression": { "resource_type": "EntityInstanceCountConstraintExpression", "count": 10, "operator": "<=" }, "target": { "path_prefix": "/orgs/default/projects/project-1", "target_resource_type": "Group" } }