11 Gestione di utenti e ruoli sulla riga di comando #
Questa sezione descrive come gestire gli account utente utilizzati dal Ceph Dashboard e fornisce informazioni sulla creazione o modifica degli account utente, nonché sull'impostazione dei ruoli dell'utente e delle autorizzazioni corretti.
11.1 Gestione della policy password #
Per default, la funzione della policy password è abilitata insieme ai controlli seguenti:
La password supera N caratteri?
La nuova password è uguale a quella vecchia?
La funzione della policy password può essere attivata o disattivata:
cephuser@adm >
ceph dashboard set-pwd-policy-enabled true|false
I singoli controlli seguenti possono essere attivati o disattivati:
cephuser@adm >
ceph dashboard set-pwd-policy-check-length-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-oldpwd-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-username-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-exclusion-list-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-complexity-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-sequential-chars-enabled true|falsecephuser@adm >
ceph dashboard set-pwd-policy-check-repetitive-chars-enabled true|false
Inoltre, sono disponibili le opzioni seguenti per configurare il comportamento della policy password.
La lunghezza minima della password (il valore di default è 8):
cephuser@adm >
ceph dashboard set-pwd-policy-min-length NLa complessità minima della password (il valore di default è 10):
cephuser@adm >
ceph dashboard set-pwd-policy-min-complexity NLa complessità della password è calcolata tramite la classificazione di ciascun carattere da cui è composta.
Un elenco di parole separate da virgole che non è possibile utilizzare nella password:
cephuser@adm >
ceph dashboard set-pwd-policy-exclusion-list word[,...]
11.2 Gestione degli account utente #
Il Ceph Dashboard supporta la gestione di più account utente. Ogni account utente include un nome utente, una password (memorizzata in formato cifrato tramite il comando bcrypt
), un nome facoltativo e un indirizzo e-mail facoltativo.
Gli account utente sono memorizzati nel database di configurazione di Ceph Monitor e sono condivisi a livello globale su tutte le istanze di Ceph Manager.
Utilizzare i comandi seguenti per gestire gli account utente:
- Per mostrare gli utenti esistenti:
cephuser@adm >
ceph dashboard ac-user-show [USERNAME]- Per creare un nuovo utente:
cephuser@adm >
ceph dashboard ac-user-create USERNAME [PASSWORD] [ROLENAME] [NAME] [EMAIL]- Per eliminare un utente:
cephuser@adm >
ceph dashboard ac-user-delete USERNAME- Per modificare la password di un utente:
cephuser@adm >
ceph dashboard ac-user-set-password USERNAME PASSWORD- Per modificare il nome e l'e-mail di un utente:
cephuser@adm >
ceph dashboard ac-user-set-info USERNAME NAME EMAIL- Per disabilitare un utente
cephuser@adm >
ceph dashboard ac-user-disable USERNAME- Per abilitare un utente
cephuser@adm >
ceph dashboard ac-user-enable USERNAME
11.3 Ruoli e autorizzazioni dell'utente #
Questa sezione descrive gli ambiti di sicurezza che è possibile assegnare a un ruolo dell'utente e come gestire i ruoli dell'utente e assegnarli agli account utente.
11.3.1 Definizione degli ambiti di sicurezza #
Gli account utente sono associati a un set di ruoli che definiscono le parti del dashboard accessibili dall'utente. Le parti del dashboard sono raggruppate all'interno di un ambito di sicurezza. Gli ambiti di sicurezza sono predefiniti e statici. Attualmente sono disponibili gli ambiti di sicurezza seguenti:
- hosts
Include tutte le funzioni relative alla voce di menu
.- config-opt
Include tutte le funzioni relative alla gestione delle opzioni di configurazione di Ceph.
- pool
Include tutte le funzioni relative alla gestione del pool.
- osd
Include tutte le funzioni relative alla gestione di Ceph OSD.
- monitor
Include tutte le funzioni relative alla gestione di Ceph Monitor.
- rbd-image
Include tutte le funzioni relative alla gestione delle immagini del dispositivo di blocco RADOS.
- rbd-mirroring
Include tutte le funzioni relative alla gestione della copia speculare del dispositivo di blocco RADOS.
- iscsi
Include tutte le funzioni relative alla gestione di iSCSI.
- rgw
Include tutte le funzioni relative alla gestione di Object Gateway.
- cephfs
Include tutte le funzioni relative alla gestione di CephFS.
- manager
Include tutte le funzioni relative alla gestione di Ceph Manager.
- log
Include tutte le funzioni relative alla gestione dei log di Ceph.
- grafana
Include tutte le funzioni relative al proxy Grafana.
- prometheus
Include tutte le funzioni relative alla gestione degli avvisi di Prometheus.
- dashboard-settings
Modifica le impostazioni del dashboard.
11.3.2 Specifica dei ruoli dell'utente #
Un ruolo consente di specificare un set di mappature tra un ambito di sicurezza e un set di autorizzazioni. Vi sono quattro tipi di autorizzazioni: "read" (lettura), "create" (creazione), "update" (aggiornamento) e "delete" (eliminazione).
Nell'esempio seguente viene specificato un ruolo in cui l'utente dispone delle autorizzazioni "read" e "create" per le funzioni relative alla gestione del pool e delle autorizzazioni complete per le funzioni relative alla gestione delle immagini RBD:
{ 'role': 'my_new_role', 'description': 'My new role', 'scopes_permissions': { 'pool': ['read', 'create'], 'rbd-image': ['read', 'create', 'update', 'delete'] } }
Nel dashboard è già fornito un set di ruoli predefiniti denominati ruoli di sistema. È possibile utilizzarli immediatamente dopo l'installazione da zero del Ceph Dashboard:
- amministratore
Fornisce le autorizzazioni complete per tutti gli ambiti di sicurezza.
- sola lettura
Fornisce l'autorizzazione in lettura per tutti gli ambiti di sicurezza a eccezione delle impostazioni del dashboard.
- block-manager
Fornisce le autorizzazioni complete per gli ambiti "rbd-image", "rbd-mirroring" e "iscsi".
- rgw-manager
Fornisce le autorizzazioni complete per l'ambito "rgw".
- cluster-manager
Fornisce le autorizzazioni complete per gli ambiti "hosts", "osd", "monitor", "manager" e "config-opt".
- pool-manager
Fornisce le autorizzazioni complete per l'ambito "pool".
- cephfs-manager
Fornisce le autorizzazioni complete per l'ambito "cephfs".
11.3.2.1 Gestione dei ruoli personalizzati #
È possibile creare nuovi ruoli dell'utente utilizzando i comandi seguenti:
- Per creare un nuovo ruolo:
cephuser@adm >
ceph dashboard ac-role-create ROLENAME [DESCRIPTION]- Per eliminare un ruolo:
cephuser@adm >
ceph dashboard ac-role-delete ROLENAME- Per aggiungere autorizzazioni di ambito a un ruolo:
cephuser@adm >
ceph dashboard ac-role-add-scope-perms ROLENAME SCOPENAME PERMISSION [PERMISSION...]- Per eliminare le autorizzazioni di ambito da un ruolo:
cephuser@adm >
ceph dashboard ac-role-del-perms ROLENAME SCOPENAME
11.3.2.2 Assegnazione dei ruoli agli account utente #
Utilizzare i comandi seguenti per assegnare i ruoli agli utenti:
- Per impostare i ruoli dell'utente:
cephuser@adm >
ceph dashboard ac-user-set-roles USERNAME ROLENAME [ROLENAME ...]- Per aggiungere ulteriori ruoli a un utente:
cephuser@adm >
ceph dashboard ac-user-add-roles USERNAME ROLENAME [ROLENAME ...]- Per eliminare i ruoli da un utente:
cephuser@adm >
ceph dashboard ac-user-del-roles USERNAME ROLENAME [ROLENAME ...]
Se si creano ruoli dell'utente personalizzati e si intende rimuovere il cluster Ceph con lo strumento di esecuzione ceph.purge
in un secondo momento, è necessario innanzitutto eliminare definitivamente i ruoli personalizzati. Ulteriori dettagli sono disponibili nella Sezione 13.9, «Rimozione dell'intero cluster Ceph».
11.3.2.3 Esempio: creazione di un utente e di un ruolo personalizzato #
Questa sezione illustra la procedura di creazione di un account utente in grado di gestire le immagini RBD, visualizzare e creare pool Ceph e con l'accesso in sola lettura a qualsiasi altro ambito.
Creare un nuovo utente denominato
tux
:cephuser@adm >
ceph dashboard ac-user-create tux PASSWORDCreare un ruolo e specificare le autorizzazioni di ambito:
cephuser@adm >
ceph dashboard ac-role-create rbd/pool-managercephuser@adm >
ceph dashboard ac-role-add-scope-perms rbd/pool-manager \ rbd-image read create update deletecephuser@adm >
ceph dashboard ac-role-add-scope-perms rbd/pool-manager pool read createAssociare i ruoli all'utente
tux
:cephuser@adm >
ceph dashboard ac-user-set-roles tux rbd/pool-manager read-only
11.4 Configurazione del proxy #
Se si desidera stabilire un URL fisso per raggiungere il Ceph Dashboard o se non si desidera consentire connessioni dirette ai nodi del manager, è possibile configurare un proxy per l'inoltro automatico delle richieste in entrata all'istanza ceph-mgr
attualmente attiva.
11.4.1 Accesso al dashboard con proxy inversi #
Se si effettua l'accesso al dashboard tramite una configurazione di proxy inverso, potrebbe essere necessario fornirlo tramite un prefisso URL. Per fare in modo che il dashboard utilizzi i collegamenti ipertestuali che includono il prefisso specificato, è possibile configurare l'impostazione url_prefix
:
cephuser@adm >
ceph config set mgr mgr/dashboard/url_prefix URL_PREFIX
Quindi, è possibile accedere al dashboard all'indirizzo http://HOST_NAME:PORT_NUMBER/URL_PREFIX/
.
11.4.2 Disabilitazione dei reindirizzamenti #
Se il Ceph Dashboard è protetto da un proxy per il bilanciamento del carico come HAProxy, disabilitare il comportamento di reindirizzamento per evitare situazioni in cui gli URL interni (non risolvibili) vengono pubblicati nel client di front-end. Utilizzare il comando seguente per fare in modo che il dashboard generi una risposta con un errore HTTP (500
per default) invece del reindirizzamento al dashboard attivo:
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_behaviour "error"
Per reimpostare l'impostazione sul comportamento di reindirizzamento di default, utilizzare il comando seguente:
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_behaviour "redirect"
11.4.3 Configurazione dei codici di stato di errore #
Se il comportamento di reindirizzamento è disabilitato, è necessario personalizzare il codice di stato HTTP dei dashboard di standby. A questo scopo, eseguire il comando seguente:
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_error_status_code 503
11.4.4 Configurazione HAProxy di esempio #
La configurazione di esempio seguente è da utilizzare per il pass-through TLS/SSL tramite HAProxy.
La configurazione è valida nelle condizioni seguenti: in caso di failover del dashboard, il client di front-end potrebbe ricevere una risposta di reindirizzamento HTTP (303
) e verrà reindirizzato a un host non risolvibile.
Ciò avviene quando il failover si verifica durante due controlli di integrità di HAProxy. In questa situazione, il nodo del dashboard precedentemente attivo restituirà la risposta 303 che punta a un nuovo nodo attivo. Per evitare questa situazione, si consiglia di disabilitare il comportamento di reindirizzamento sui nodi di standby.
defaults log global option log-health-checks timeout connect 5s timeout client 50s timeout server 450s frontend dashboard_front mode http bind *:80 option httplog redirect scheme https code 301 if !{ ssl_fc } frontend dashboard_front_ssl mode tcp bind *:443 option tcplog default_backend dashboard_back_ssl backend dashboard_back_ssl mode tcp option httpchk GET / http-check expect status 200 server x HOST:PORT ssl check verify none server y HOST:PORT ssl check verify none server z HOST:PORT ssl check verify none
11.5 Controllo delle richieste API #
L'API REST del Ceph Dashboard è in grado di registrare le richieste PUT, POST e DELETE sul log di revisione di Ceph. La funzione di registrazione è disabilita per default, ma è possibile abilitarla con il comando seguente:
cephuser@adm >
ceph dashboard set-audit-api-enabled true
Se abilitata, per ciascuna richiesta vengono registrati i parametri seguenti:
- from
Origine della richiesta, ad esempio "https://[::1]:44410".
- percorso
Percorso dell'API REST, ad esempio
/api/auth
.- method
"PUT", "POST" o "DELETE".
- utente
Nome dell'utente (o "None").
Una voce di log di esempio ha il seguente aspetto:
2019-02-06 10:33:01.302514 mgr.x [INF] [DASHBOARD] \ from='https://[::ffff:127.0.0.1]:37022' path='/api/rgw/user/exu' method='PUT' \ user='admin' params='{"max_buckets": "1000", "display_name": "Example User", "uid": "exu", "suspended": "0", "email": "user@example.com"}'
La registrazione del payload della richiesta (l'elenco degli argomenti e dei relativi valori) è abilitata per default. È possibile disabilitarla nel modo seguente:
cephuser@adm >
ceph dashboard set-audit-api-log-payload false
11.6 Configurazione di NFS Ganesha nel Ceph Dashboard #
Il Ceph Dashboard è in grado di gestire le esportazioni NFS Ganesha che utilizzano CephFS oppure Object Gateway come backstore. Il dashboard gestisce i file di configurazione di NFS Ganesha memorizzati negli oggetti RADOS sul cluster CephFS. NFS Ganesha deve memorizzare parte della loro configurazione nel cluster Ceph.
Eseguire il comando seguente per configurare l'ubicazione dell'oggetto di configurazione di NFS Ganesha.
cephuser@adm >
ceph dashboard set-ganesha-clusters-rados-pool-namespace pool_name[/namespace]
Adesso, è possibile gestire le esportazioni di NFS Ganesha tramite il Ceph Dashboard.
11.6.1 Configurazione di più cluster NFS Ganesha #
Il Ceph Dashboard supporta la gestione delle esportazioni di NFS Ganesha appartenenti a diversi cluster NFS Ganesha. Per isolare le singole configurazioni, è consigliabile che ogni cluster NFS Ganesha memorizzi i rispettivi oggetti di configurazione in uno spazio dei nomi/pool RADOS diverso.
Utilizzare il comando seguente per specificare l'ubicazione della configurazione di ciascun cluster NFS Ganesha:
cephuser@adm >
ceph dashboard set-ganesha-clusters-rados-pool-namespace cluster_id:pool_name[/namespace](,cluster_id:pool_name[/namespace])*
cluster_id è una stringa arbitraria che identifica in modo univoco il cluster NFS Ganesha.
Se il Ceph Dashboard viene configurato su più cluster NFS Ganesha, l'interfaccia utente Web consente automaticamente di selezionare il cluster a cui appartiene un'esportazione.
11.7 Plug-in di debug #
I plug-in del Ceph Dashboard estendono la funzionalità del dashboard. Il plug-in di debug consente la personalizzazione del comportamento del dashboard in base alla modalità di debug. È possibile abilitarlo, disabilitarlo o selezionarlo con il comando seguente:
cephuser@adm >
ceph dashboard debug status Debug: 'disabled'cephuser@adm >
ceph dashboard debug enable Debug: 'enabled'cephuser@adm >
dashboard debug disable Debug: 'disabled'
Per default, è disabilitato. Si tratta dell'impostazione consigliata per le distribuzioni di produzione. Se necessario, è possibile abilitare la modalità di debug senza dover riavviare.