Implementazione della multi-tenancy
Imparare a implementare la multi-tenancy su Netezza Performance Server 11.2.1.1 e versioni successive utilizzando la rete esterna e l'isolamento delle risorse degli utenti.
1. Separazione di una rete esterna.
La separazione delle reti potrebbe richiedere meno di 2 ore.
- Impostazione del collegamento esterno
- IBM Cloud Pak for Data System supporta la connessione a più reti esterne utilizzando porte uplink di fabric switch dedicate. Per connettersi con successo a più reti esterne, è necessario:
- Collegare le porte supplementari.
Su ogni switch fabric, le porte 45-48 sono dedicate agli uplink della rete del cliente.
- Configurare LACP.
- Contattare l'assistenza IBM per aggiornare il file
ymldella configurazione di rete di IBM Cloud Pak for Data System e applicare la nuova configurazione.Per completare questo passaggio, è necessario fornire le seguenti informazioni all'assistenza IBM :- Numeri delle porte dello switch di tessuto IBM Cloud Pak for Data System, che sono state cablate per la connessione aggiuntiva: il tipo di porta configurato sulle porte dello switch del cliente rivolte verso BM Cloud Pak for Data System (trunk o accesso); numero di VLAN per una porta trunk.
- L'IP flottante, l'IP gateway e la netmask che si desidera utilizzare sull'interfaccia di rete aggiuntiva.
Un esempio di configurazione di rete
ymlcon due reti esterne con porte di accesso sul lato cliente:all: children: [...] switches: hosts: FabSw1a: ansible_host: localhost external_connection_enabled: True external_connection_config: external_link1: switch_ports: ['45'] port_config: mtu: 9000 link_speed: 10000 vlans: ['4080'] strict_vlan: false name: h0 lacp_link: True lacp_rate: Fast clag_id: 100 partner_switch: 'Fabsw1b' external_link2: switch_ports: ['46'] port_config: mtu: 9000 link_speed: 10000 vlans: ['4081'] strict_vlan: false name: h1 lacp_link: True lacp_rate: Fast clag_id: 101 partner_switch: 'Fabsw1b' vars: [...] application_network_enabled: True application_network: network1: default_gateway: true vlan: 4080 # just number, no slash prefix: 24 gateway: 192.168.10.1 floating_ip: 192.168.10.10 mtu: <OPTIONAL> custom_routes: <OPTIONAL> network2: default_gateway: false vlan: 4081 # just number, no slash prefix: 24 gateway: 192.168.20.1 floating_ip: 192.168.20.10 mtu: <OPTIONAL> custom_routes: <OPTIONAL>
- Collegare le porte supplementari.
- Isolamento a livello di connessione
Dopo essersi collegati a più reti esterne, è possibile isolare un database corrispondente.
Il comando SET CONNECTION definisce i record di accesso all'host per i client Netezza rispetto a uno o più database.SET CONNECTION HOSTSSL DATABASE dev_db IPADDR ‘192.168.10.0’ IPMASK ‘255.255.255.0’ SET CONNECTION HOSTSSL DATABASE qa_db IPADDR ‘192.168.20.0’ IPMASK ‘255.255.255.0’
2. Segregazione dei database.
Le modifiche allo schema possono essere completate in meno di un'ora.
- Creare database per diversi inquilini:
MYDB.SCH1 (USER)=> CREATE DATABASE dev_db with COLLECT HISTORY ON; MYDB.SCH1 (USER)=> CREATE DATABASE qa_db with COLLECT HISTORY ON; - Impostare
disable_crossdb_writesuONinpostgressql.conf. Per ulteriori informazioni, consultare le istruzioni.
3. Creare un gruppo di risorse utente.
Le modifiche alle ACL potrebbero richiedere meno di un'ora per essere completate.
- Privilegi di amministratore concessi agli utenti o ai gruppi.
- Privilegi degli oggetti che sono associati a oggetti specifici (ad esempio, la tabella xyz).
- Classi di oggetti (ad esempio, tutte le tabelle).
Per ottenere la multi-tenancy, è possibile avere due gruppi di risorse. Ad esempio, development_group e qa_group.
Ogni gruppo di risorse può avere più utenti al suo interno. Per semplicità, concedere al gruppo tutti i privilegi di amministratore e di oggetto. È possibile concedere i privilegi secondo le necessità.
Per ulteriori informazioni, vedere Modello di sicurezza Netezza.
Un gruppo di risorse è un gruppo speciale con una percentuale minima di risorse non nulla. Ogni gruppo di risorse deve avere RESOURCE MINIMUM e RESOURCE MAXIMUM allocati, come specificato per l'allocazione necessaria. Per ulteriori informazioni, Risorse minime e massime.
Procedura
- Creare i gruppi
development_groupeqa_groupcon i gruppiRESOURCE MINIMUMeRESOURCE MAXIMUMMYDB.SCH1(USER)=> CREATE GROUP development_group with RESOURCE MINIMUM 60 RESOURCE MAXIMUM 100;MYDB.SCH1(USER)=> CREATE GROUP qa_group with RESOURCE MINIMUM 40 RESOURCE MAXIMUM 100; - Concedere i seguenti privilegi a
development_groupeqa_group:MYDB.SCH1(USER)=> GRANT ALL ADMIN IN dev_db.ALL to group development_group; MYDB.SCH1(USER)=> GRANT ALL ADMIN IN qa_db.ALL to group qa_group; MYDB.SCH1(USER)=> GRANT ALL on dev_db to group development_group; MYDB.SCH1(USER)=> GRANT ALL on qa_db to group qa_group; - Creare gli utenti e aggiungerli ai rispettivi gruppi:
MYDB.SCH1(USER)=> CREATE USER John with password 'abc123' in group development_group in resourcegroup development_group; MYDB.SCH1(USER)=> CREATE USER Bob with password '3566' in group qa_group in resourcegroup qa_group; - Aggiungere gli utenti ai gruppi:
MYDB.SCH1(USER)=> ALTER USER Smith in group qa_group in resourcegroup qa_group;