La multi-tenancy rappresenta uno strumento per isolare la configurazione di sicurezza e di rete tra i tenant in una singola distribuzione di NSX. Per supportare la multi-tenancy, NSX4.0.1.1 include Organizzazioni e progetti.

Il modello di dati del criterio NSX è gerarchico e dispone di due rami creati dal sistema:

  • /infra, che è gestito dall'amministratore dell'infrastruttura.
  • /orgs/default che contiene i costrutti multi-tenancy.
Nota: L'impostazione del multi-tenancy per la distribuzione di NSX è facoltativa e la sua implementazione non ha alcun impatto sulla configurazione di NSX esistente.

Il diagramma seguente illustra il modello di dati per la multi-tenancy.

Modello di dati

Organizzazioni

Una distribuzione di NSX ha un'organizzazione predefinita. Non è possibile creare, modificare o eliminare l'organizzazione. L'oggetto Organizzazione viene creato dal sistema all'avvio. Tutti i gateway di livello 0 e i cluster Edge nel sistema sono accessibili dall'organizzazione.

L'oggetto Organizzazione viene creato dal sistema con il seguente identificatore:

/orgs/default

Progetti

Nell'organizzazione è possibile creare un progetto per ogni tenant che si desidera gestire dal proprio ambiente NSX. I progetti vengono creati in /orgs/default per supportare set di configurazioni indipendenti per ogni tenant:

  • I progetti offrono il modello gerarchico dei criteri in un contesto isolato specifico. Le configurazioni del progetto vengono impostate in /orgs/default/projects/<project-id>/infra.
  • Non è possibile creare gateway di livello 0 e cluster Edge in un progetto. L'amministratore aziendale può condividere i gateway di livello 0 e i cluster Edge dallo spazio /infra con l'organizzazione, che è quindi disponibile per i progetti nell'organizzazione.
  • I progetti hanno accesso ad alcuni oggetti e configurazioni che sono stati condivisi dallo spazio /infra.
  • Dallo spazio infra è possibile creare regole che si applicano alle macchine virtuali in un progetto. Per creare queste regole dallo spazio infra, utilizzare i gruppi predefiniti del progetto o creare gruppi con appartenenze dinamiche o appartenenza statica a una macchina virtuale.
  • Oltre alla creazione di regole dallo spazio infra, la configurazione delle altre risorse del progetto dallo spazio infra non è supportata. Ad esempio, non è possibile creare gruppi nell'organizzazione utilizzando membri statici di progetti diversi dalle macchine virtuali o dai gruppi predefiniti del progetto. La configurazione dallo spazio infra di gateway di livello 1 appartenenti a un progetto non è supportata. Le risorse del progetto devono essere configurate dal progetto.

È possibile effettuare la seguente chiamata API per creare un progetto nell'organizzazione:

PATCH /policy/api/v1/orgs/default/projects/<project-id>

Quando si crea un progetto, specificare il gateway di livello 0 e il cluster Edge che saranno utilizzati dal progetto. Utilizzare questo gateway di livello 0 per tutte le configurazioni all'interno di tale progetto. Il cluster Edge allocato al progetto deve appartenere alla zona di trasporto predefinita. In questa zona di trasporto vengono create le reti del progetto.

Richiesta di esempio:

URL:

PATCH https:/{{nsx-manager-ip}}/policy/api/v1/orgs/default/projects/Project-Dev

Corpo:

{
    "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"
    ]
}

Quando si crea un progetto, vengono creati alcuni oggetti predefiniti, come un dominio predefinito, criteri di sicurezza e gruppi predefiniti. È possibile scegliere di creare più progetti, in base alle proprie esigenze.

Una volta creato un progetto, è possibile effettuare chiamate API per completare le configurazioni di rete per DHCP, gateway di livello 1 e segmenti.

Nota: Per consentire all'amministratore del progetto di connettere segmenti o gateway di livello 1 a un gateway di livello 0 oppure a un VRF di livello 0, assegnare un ruolo personalizzato aggiuntivo all'utente con il ruolo di amministratore del progetto. Il ruolo personalizzato assegnato deve disporre dell'accesso in lettura al gateway di livello 0 del sistema. In questo modo l'amministratore del progetto può visualizzare tutti i gateway di livello 0 nel sistema. Per informazioni dettagliate sulla creazione di un ruolo personalizzato, vedere Crea o gestisci ruoli personalizzati.

Quando si crea il ruolo personalizzato, selezionare Rete e reimpostare tutte le autorizzazioni su Nessuna. Nella finestra di dialogo Imposta autorizzazioni, selezionare Rete > Connettività e impostare le autorizzazioni dei Gateway di livello 0 su sola lettura.

Quote delle risorse

È possibile definire le quote per le risorse in un progetto utilizzando i vincoli. Le quote consentono di definire un limite massimo di risorse specifiche per un determinato progetto. Se non vengono definiti vincoli, vengono applicati i limiti predefiniti del sistema.

Effettuare la seguente chiamata API per definire i vincoli per un progetto:
PATCH /policy/api/v1/infra/constraints/<contraint-id>
Richiesta di esempio:
URL:
PATCH https://{{nsx-manager-ip}}/policy/api/v1/infra/constraints/c-1
Corpo:
{
    "display_name": "TestConstraint",
    "constraint_expression": {
        "resource_type": "EntityInstanceCountConstraintExpression",
        "count": 10,
        "operator": "<="
    },
    "target": {
        "path_prefix": "/orgs/default/projects/project-1",
        "target_resource_type": "Group"
    }
}