マルチテナントは、単一の NSX 環境のテナント間でセキュリティとネットワーク構成を分離する手段を提供します。マルチテナントをサポートするために、NSX 4.0.1.1 では組織とプロジェクトが導入されています。

NSX ポリシー データ モデルは階層型で、システムによって作成された 2 つのブランチがあります。

  • /infra。インフラストラクチャ管理者によって管理されます。
  • /orgs/default。マルチテナント構造を保持します。
注: NSX 環境のマルチテナントの設定はオプションです。実装は既存の NSX 構成に影響しません。

次の図は、マルチテナントのデータ モデルを示しています。

データ モデル

組織

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-1 ゲートウェイを Tier-0 ゲートウェイまたは Tier-0 VRF に接続できるようにするには、プロジェクト管理者ロールを持つユーザーに追加のカスタム ロールを割り当てます。割り当てるカスタム ロールには、システム Tier-0 ゲートウェイへの読み取りアクセス権が必要です。これにより、プロジェクト管理者はシステム内のすべての Tier-0 ゲートウェイを表示できます。カスタム ロールの作成の詳細については、 カスタム ロールの作成または管理を参照してください。

カスタム ロールを作成するときに、[ネットワーク] を選択し、すべての権限を なし にリセットします。[権限の設定] ダイアログ ボックスで [ネットワーク] > [接続] の順に選択し、[Tier-0 ゲートウェイ] 権限を読み取り専用に設定します。

リソースの割り当て

制約を使用して、プロジェクト内のリソースの割り当てを定義できます。割り当てにより、特定のプロジェクトに対する特定のリソースの上限を定義できます。制約が定義されていない場合は、システムのデフォルトの制限が適用されます。

次の API 呼び出しを実行して、プロジェクトの制約を定義します。
PATCH /policy/api/v1/infra/constraints/<contraint-id>
要求の例:
URL:
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"
    }
}