• Non ci sono risultati.

Gestione degli utenti

5 Autenticazione con cephx

5.2 Gestione delle chiavi

5.2.2 Gestione degli utenti

La funzionalità di gestione degli utenti offre agli amministratori del cluster Ceph la possibilità di creare, aggiornare ed eliminare utenti direttamente nel cluster Ceph.

Quando si creano o si eliminano utenti nel cluster Ceph, potrebbe essere necessario distribuire chiavi ai client in modo che possano essere aggiunte ai portachiavi. Per ulteriori informazioni, vedere Sezione 5.2.3, «Gestione dei portachiavi».

5.2.2.1 Elenco degli utenti

Per elencare gli utenti nel cluster, eseguire quanto riportato di seguito:

ceph auth list

Ceph elencherà tutti gli utenti nel cluster. Ad esempio, in un cluster con due nodi, l'output ceph auth list ha un aspetto simile:

installed auth entries:

osd.0

key: AQCvCbtToC6MDhAATtuT70Sl+DymPCfDSsyV4w==

caps: [mon] allow profile osd caps: [osd] allow *

osd.1

key: AQC4CbtTCFJBChAAVq5spj0ff4eHZICxIOVZeA==

caps: [mon] allow profile osd caps: [osd] allow *

client.admin

key: AQBHCbtT6APDHhAA5W00cBchwkQjh3dkKsyPjw==

caps: [mds] allow caps: [mon] allow * caps: [osd] allow * client.bootstrap-mds

49 Gestione degli utenti SES 5

key: AQBICbtTOK9uGBAAdbe5zcIGHZL3T/u2g6EBww==

caps: [mon] allow profile bootstrap-mds client.bootstrap-osd

key: AQBHCbtT4GxqORAADE5u7RkpCN/oo4e5W0uBtw==

caps: [mon] allow profile bootstrap-osd

Nota: notazione TYPE.ID

Si noti che viene applicata la notazione TYPE.ID per gli utenti in modo che osd.0 spe-cifichi un utente di tipo osd con ID 0. client.admin è un utente di tipo client con ID admin. Inoltre, ogni voce presenta una voce key: value e una o più voci caps:. È possibile utilizzare l'opzione -o filename con ceph auth list per salvare l'output in un file.

5.2.2.2 Ottenimento delle informazioni sugli utenti

Per recuperare un utente, una chiave e funzionalità specifiche, eseguire quanto riportato di seguito:

ceph auth get TYPE.ID

Ad esempio:

ceph auth get client.admin

exported keyring for client.admin [client.admin]

key = AQA19uZUqIwkHxAAFuUwvq0eJD4S173oFRxe0g==

caps mds = "allow"

caps mon = "allow *"

caps osd = "allow *"

Gli sviluppatori possono eseguire anche:

ceph auth export TYPE.ID

Il comando auth export è identico a auth get, ma consente anche di stampare l'ID auten-ticazione interno.

5.2.2.3 Aggiunta di utenti

Con l'aggiunta di un utente si creano un nome utente (TYPE.ID), una chiave segreta e tutte le funzionalità incluse nel comando utilizzato per creare l'utente.

50 Gestione degli utenti SES 5

La chiave di un utente consente a quest'ultimo di eseguire l'autenticazione con il cluster di memorizzazione Ceph. Le funzionalità dell'utente gli forniscono le autorizzazione in lettura, scrittura o esecuzione nei Ceph monitor (mon), Ceph OSD (osd) server dei metadati Ceph (mds).

Per aggiungere un utente sono disponibili alcuni comandi:

ceph auth add

Questo comando è il modo canonico per aggiungere un utente. Consente di creare l'utente, generare una chiave e aggiungere tutte le funzionalità specificate.

ceph auth get-or-create

Questo comando è spesso il modo più pratico per creare un utente perché restituisce un formato keyfile con nome utente (tra parentesi) e chiave. Se l'utente esiste già, questo co-mando restituisce semplicemente il nome utente e la chiave nel formato keyfile. È possibile utilizzare l'opzione -o filename per salvare l'output in un file.

ceph auth get-or-create-key

Questo comando è un modo pratico per creare un utente e restituire (solo) la chiave utente.

È utile per i client per i quali è necessaria solo la chiave (ad esempio libvirt). Se l'utente esiste già, questo comando restituisce semplicemente la chiave. È possibile utilizzare l'op-zione -o filename per salvare l'output in un file.

Quando si creano utenti del client, è possibile creare un utente senza alcuna funzionalità. Un utente privo di funzionalità può eseguire solo ed esclusivamente l'autenticazione. Tale client non è in grado di recuperare la mappa del cluster dal monitoraggio. È tuttavia possibile creare un utente senza funzionalità se si desidera rinviare l'aggiunta delle funzionalità in un momento successivo mediante l'uso del comando ceph auth caps.

Un utente tipico dispone almeno delle funzionalità di lettura sul Ceph monitor e delle funziona-lità di lettura e scrittura sui Ceph OSD. Inoltre, le autorizzazioni OSD di un utente sono spesso limitate per l'accesso a un determinato pool.

root # ceph auth add client.john mon 'allow r' osd \ 'allow rw pool=liverpool'

root # ceph auth get-or-create client.paul mon 'allow r' osd \ 'allow rw pool=liverpool'

root # ceph auth get-or-create client.george mon 'allow r' osd \ 'allow rw pool=liverpool' -o george.keyring

root # ceph auth get-or-create-key client.ringo mon 'allow r' osd \ 'allow rw pool=liverpool' -o ringo.key

51 Gestione degli utenti SES 5

Importante

Se si forniscono a un utente le funzionalità per gli OSD, ma non si limita l'accesso a un determinato pool, l'utente potrà accedere a tutti i pool nel cluster.

5.2.2.4 Modifica delle funzionalità utente

Il comando ceph auth caps consente di specificare un utente e di modificarne le funzionalità.

Quando si impostano nuove funzionalità, quelle attuali verranno sovrascritte. Per visualizzare le funzionalità attuali, eseguire ceph auth get USERTYPE.USERID. Per aggiungere funzionalità, è necessario specificare anche le funzionalità esistenti quando si utilizza la forma seguente:

root # ceph auth caps USERTYPE.USERID daemon 'allow [r|w|x|*|...] \

[pool=pool-name] [namespace=namespace-name]' [daemon 'allow [r|w|x|*|...] \ [pool=pool-name] [namespace=namespace-name]']

Ad esempio:

root # ceph auth get client.john

root # ceph auth caps client.john mon 'allow r' osd 'allow rw pool=prague' root # ceph auth caps client.paul mon 'allow rw' osd 'allow rwx pool=prague' root # ceph auth caps client.brian-manager mon 'allow *' osd 'allow *'

Per rimuovere una funzionalità, è possibile reimpostarla. Se si desidera che l'utente non disponga di alcun accesso a un determinato daemon impostato precedentemente, specificare una stringa vuota:

root # ceph auth caps client.ringo mon ' ' osd ' '

5.2.2.5 Eliminazione di utenti

Per eliminare un utente, utilizzare ceph auth del:

root # ceph auth del TYPE.ID

dove TYPE è un client, osd, mon o mds e ID è il nome utente o l'ID del daemon.

52 Gestione degli utenti SES 5

5.2.2.6 Stampa di una chiave utente

Per stampare una chiave di autenticazione dell'utente nell'output standard, eseguire quanto ri-portato di seguito:

root # ceph auth print-key TYPE.ID

dove TYPE è un client, osd, mon o mds e ID è il nome utente o l'ID del daemon.

È utile stampare una chiave utente quando è necessario popolare il software del client con una chiave utente (come libvirt), come nell'esempio seguente:

cephadm > sudo mount -t ceph host:/ mount_point \

-o name=client.user,secret=`ceph auth print-key client.user`

5.2.2.7 Importazione di utenti

Per importare uno o più utenti, utilizzare ceph auth import e specificare un portachiavi:

cephadm > sudo ceph auth import -i /etc/ceph/ceph.keyring

Nota

Nel cluster di memorizzazione Ceph verranno aggiunti nuovi utenti, le rispettive chiavi e funzionalità e verranno aggiornati gli utenti esistenti, insieme alle rispettive chiavi e funzionalità.