Accéder au contenuNavigation Accéder à la page : page précédente [raccourci clavier p] / page suivante [raccourci clavier n]
documentation.suse.com / Documentation de SUSE Enterprise Storage 7 / Guide d'opérations et d'administration / Configuration d'une grappe / Authentification avec cephx
S'applique à SUSE Enterprise Storage 7

30 Authentification avec cephx

Pour identifier les clients et les protéger contre les attaques de l'homme du milieu, Ceph fournit son système d'authentification cephx. Dans ce contexte, les clients désignent soit des humains (comme l'administrateur), soit des services/daemons liés à Ceph, par exemple des OSD, des moniteurs ou des instances Object Gateway.

Note
Note

Le protocole cephx ne gère pas le chiffrement dans le transport de données, tel que TLS/SSL.

30.1 Architecture d'authentification

cephx utilise des clés secrètes partagées pour l'authentification, ce qui signifie que le client et les moniteurs Ceph possèdent une copie de la clé secrète du client. Le protocole d'authentification permet aux deux parties de se prouver qu'elles possèdent une copie de la clé sans vraiment la révéler. Cela permet une authentification mutuelle, ce qui signifie que la grappe est « certaine » que l'utilisateur possède la clé secrète et que l'utilisateur est certain que la grappe possède également une copie de la clé secrète.

La fonctionnalité d'évolutivité des clés de Ceph évite d'avoir une interface centralisée vers le magasin d'objets Ceph. Cela signifie que les clients Ceph peuvent interagir directement avec les OSD. Pour protéger les données, Ceph fournit son système d'authentification cephx, qui authentifie les clients Ceph.

Chaque moniteur peut authentifier les clients et distribuer les clés, il n'y a donc pas de point de défaillance unique ou de goulot d'étranglement lors de l'utilisation de cephx. Le moniteur renvoie une structure de données d'authentification qui contient une clé de session permettant d'obtenir des services Ceph. Cette clé de session est elle-même chiffrée avec la clé secrète permanente du client de sorte que seul celui-ci peut demander des services aux moniteurs Ceph. Le client utilise ensuite la clé de session pour demander les services souhaités au moniteur, et celui-ci fournit au client un ticket qui authentifiera le client auprès des OSD qui traitent réellement les données. Les moniteurs Ceph et les OSD partagent un secret de sorte que le client peut utiliser le ticket fourni par le moniteur avec n'importe quel serveur OSD ou de métadonnées de la grappe. Les tickets cephx expirent de sorte qu'un attaquant ne peut pas utiliser un ticket périmé ou une clé de session périmée obtenus de façon illégitime.

Pour utiliser cephx, un administrateur doit configurer tout d'abord les clients/utilisateurs. Dans le diagramme suivant, l'utilisateur client.admin appelle ceph auth get-or-create-key à partir de la ligne de commande afin de générer un nom d'utilisateur et une clé secrète. Le sous-système auth de Ceph génère le nom et la clé de l'utilisateur, stocke une copie avec le ou les moniteurs et transmet le secret de l'utilisateur à l'utilisateur client.admin. Cela signifie que le client et le moniteur partagent une clé secrète.

authentification cephx de base
Figure 30.1 : authentification cephx de base

Pour s'authentifier auprès du moniteur, le client transmet le nom d'utilisateur au moniteur. Le moniteur génère une clé de session et la chiffre avec la clé secrète associée au nom d'utilisateur, puis transmet le ticket chiffré au client. Le client déchiffre ensuite les données avec la clé secrète partagée pour récupérer la clé de session. La clé de session identifie l'utilisateur pour la session en cours. Le client demande alors un ticket lié à l'utilisateur et signé par la clé de session. Le moniteur génère un ticket, le chiffre avec la clé secrète de l'utilisateur et le transmet au client. Le client déchiffre le ticket et l'utilise pour signer les requêtes envoyées aux OSD et aux serveurs de métadonnées dans toute la grappe.

authentification cephx
Figure 30.2 : authentification cephx

Le protocole cephx authentifie les communications en cours entre la machine cliente et les serveurs Ceph. Chaque message envoyé entre un client et un serveur après l'authentification initiale est signé à l'aide d'un ticket que les moniteurs, les OSD et les serveurs de métadonnées peuvent vérifier avec leur secret partagé.

authentification cephx - MDS et OSD
Figure 30.3 : authentification cephx - MDS et OSD
Important
Important

La protection offerte par cette authentification est comprise entre le client Ceph et les hôtes de la grappe Ceph. L'authentification n'est pas étendue au-delà du client Ceph. Si l'utilisateur accède au client Ceph à partir d'un hôte distant, l'authentification Ceph n'est pas appliquée à la connexion entre l'hôte de l'utilisateur et l'hôte client.

30.2 Les zones de gestion principales

Cette section décrit les utilisateurs du client Ceph ainsi que leurs procédures d'authentification et d'autorisation auprès de la grappe de stockage Ceph. Les utilisateurs sont des individus ou des acteurs du système, tels que des applications qui s'appuient sur les clients Ceph pour interagir avec les daemons de la grappe de stockage Ceph.

Lorsque Ceph s'exécute avec l'authentification et l'autorisation activées (ce qui est le cas par défaut), vous devez indiquer un nom d'utilisateur et un trousseau contenant la clé secrète de l'utilisateur indiqué (généralement par le biais de la ligne de commande). Si vous n'indiquez pas de nom d'utilisateur, Ceph emploie client.admin comme nom d'utilisateur par défaut. Si vous n'indiquez pas de trousseau de clés, Ceph recherche le paramètre de trousseau de clés dans le fichier de configuration Ceph. Par exemple, si vous exécutez la commande ceph health sans indiquer de nom d'utilisateur ou de trousseau de clés, Ceph l'interprète comme suit :

cephuser@adm > ceph -n client.admin --keyring=/etc/ceph/ceph.client.admin.keyring health

Vous pouvez également utiliser la variable d'environnement CEPH_ARGS pour ne pas avoir à saisir une nouvelle fois le nom d'utilisateur et le secret.

30.2.1 Informations de base

Quel que soit le type de client Ceph (par exemple, périphérique de bloc, stockage d'objets, système de fichiers, API native), Ceph stocke toutes les données en tant qu'objets dans des réserves. Les utilisateurs Ceph doivent avoir accès aux réserves pour lire et écrire des données. De plus, les utilisateurs Ceph doivent posséder des autorisations d'exécution pour utiliser les commandes d'administration de Ceph. Les concepts suivants vous aideront à comprendre la gestion des utilisateurs Ceph.

30.2.1.1 Utilisateur

Un utilisateur est un acteur individuel ou un acteur système, tel qu'une application. La création d'utilisateurs vous permet de contrôler qui (ou quoi) peut accéder à votre grappe de stockage Ceph, à ses réserves et aux données des réserves.

Ceph utilise des types d'utilisateurs. Pour les besoins de gestion des utilisateurs, le type est toujours client. Ceph identifie les utilisateurs dans le format point (.) délimité, constitué du type d'utilisateur et de l'ID utilisateur. Par exemple, TYPE.ID, client.admin ou client.user1. Le typage de l'utilisateur se justifie, car les moniteurs, les OSD et les serveurs de métadonnées Ceph emploient également le protocole cephx, mais ne sont pas clients. La distinction du type d'utilisateur permet de distinguer les utilisateurs clients des autres utilisateurs, en rationalisant le contrôle d'accès, la surveillance des utilisateurs et la traçabilité.

Parfois, le type d'utilisateur de Ceph peut sembler ambigu, car la ligne de commande Ceph vous permet de spécifier un utilisateur avec ou sans le type, en fonction de votre syntaxe de la ligne de commande. Si vous spécifiez --user ou --id, vous pouvez omettre le type. Ainsi, client.user1 peut être entré simplement en tant que user1. Si vous spécifiez --name ou ‑n, vous devez spécifier le type et le nom, tels que client.user1. Nous vous recommandons d'utiliser le type et le nom comme meilleure pratique à chaque fois que c'est possible.

Note
Note

Un utilisateur de grappe de stockage Ceph n'est pas identique à un utilisateur de stockage d'objets Ceph ou à un utilisateur de système de fichiers Ceph. La passerelle Ceph Object Gateway s'appuie sur un utilisateur de grappe de stockage Ceph pour communiquer entre le daemon passerelle et la grappe de stockage, mais la passerelle dispose de sa propre fonctionnalité de gestion des utilisateurs pour les utilisateurs finaux. Le système de fichiers Ceph utilise la sémantique POSIX. L'espace utilisateur qui lui est associé est distinct d'un utilisateur de grappe de stockage Ceph.

30.2.1.2 Autorisation et fonctions

Ceph utilise le terme « fonctions » (« capabilities » ou « caps » en anglais) pour décrire l'autorisation d'un utilisateur authentifié à exploiter les moniteurs, les OSD et les serveurs de métadonnées. Les fonctions peuvent aussi restreindre l'accès aux données au sein d'une réserve ou d'un espace de noms de réserve. Un administrateur Ceph définit les fonctions d'un utilisateur lors de la création ou de la mise à jour de celui-ci.

La syntaxe d'une fonction obéit au format suivant :

daemon-type 'allow capability' [...]

Voici une liste des fonctions pour chaque type de service :

Fonctions du moniteur

Inclut r, w, x et allow profile fonction.

mon 'allow rwx'
mon 'allow profile osd'
Fonctions OSD

Inclut r, w, x, class-read, class-write et profile osd. En outre, les fonctions OSD autorisent également les paramètres de réserve et d'espace de noms.

osd 'allow capability' [pool=poolname] [namespace=namespace-name]
Fonction MDS

Requiert seulement allow ou zéro paramètre.

mds 'allow'

Les entrées suivantes décrivent chaque fonction :

allow

Précède les paramètres d'accès d'un daemon. Implique rw pour MDS uniquement.

r

Donne à l'utilisateur un accès en lecture. Requis avec les moniteurs pour récupérer la carte CRUSH.

w

Donne à l'utilisateur un accès en écriture aux objets.

x

Donne à l'utilisateur les moyens d'appeler des méthodes de classe (lire et écrire) et d'effectuer des opérations auth sur les moniteurs.

class-read

Donne à l'utilisateur la possibilité d'appeler des méthodes de lecture de classe. Sous-ensemble de x.

class-write

Donne à l'utilisateur la possibilité d'appeler des méthodes d'écriture de classe. Sous-ensemble de x.

*

Fournit à l'utilisateur des autorisations de lecture, d'écriture et d'exécution pour un daemon/une réserve en particulier, et autorise l'utilisateur à exécuter des commandes d'administration.

profile osd

Donne à un utilisateur les autorisations de connexion à d'autres OSD ou moniteurs en tant qu'OSD. Conféré aux OSD pour leur permettre de gérer le trafic de réplication et le rapport d'état.

profile mds

Donne à un utilisateur les autorisations de connexion à d'autres MDS ou moniteurs en tant que MDS.

profile bootstrap-osd

Donne à un utilisateur les autorisations de démarrage d'un OSD. Délégué aux outils de déploiement afin qu'ils disposent des autorisations d'ajout de clés lors du démarrage d'un OSD.

profile bootstrap-mds

Donne à un utilisateur les autorisations de démarrage d'un serveur de métadonnées. Délégué aux outils de déploiement afin qu'ils disposent des autorisations d'ajout de clés lors du démarrage d'un serveur de métadonnées.

30.2.1.3 Réserves

Une réserve est une partition logique dans laquelle les utilisateurs stockent des données. Dans les déploiements Ceph, il est courant de créer une réserve en tant que partition logique pour des types de données similaires. Par exemple, lors du déploiement de Ceph en tant que serveur dorsal pour OpenStack, un déploiement type comporterait des réserves pour les volumes, les images, les sauvegardes et les machines virtuelles, ainsi que des utilisateurs, tels que client.glance ou client.cinder.

30.2.2 Gestion des utilisateurs

La fonctionnalité de gestion des utilisateurs permet aux administrateurs de grappe Ceph de créer, mettre à jour et supprimer des utilisateurs directement dans la grappe Ceph.

Lorsque vous créez ou supprimez des utilisateurs dans la grappe Ceph, vous devrez distribuer les clés aux clients pour pouvoir les ajouter aux trousseaux de clés. Reportez-vous à la Section 30.2.3, « Gestion des trousseaux » pour plus d'informations.

30.2.2.1 Liste des utilisateurs

Pour dresser la liste des utilisateurs de votre grappe, exécutez la commande suivante :

cephuser@adm > ceph auth list

Ceph dresse la liste de tous les utilisateurs de votre grappe. Par exemple, dans une grappe de deux noeuds, la commande ceph auth list produit une liste similaire à celle-ci :

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
        key: AQBICbtTOK9uGBAAdbe5zcIGHZL3T/u2g6EBww==
        caps: [mon] allow profile bootstrap-mds
client.bootstrap-osd
        key: AQBHCbtT4GxqORAADE5u7RkpCN/oo4e5W0uBtw==
        caps: [mon] allow profile bootstrap-osd
Note
Note : notation TYPE.ID

La notation TYPE.ID s'applique aux utilisateurs ; par exemple, osd.0 définit un utilisateur du type osd et avec l'ID 0. client.admin est un utilisateur du type client et avec l'ID admin. Notez également que chaque entrée possède une entrée key: valeur et une ou plusieurs entrées caps:.

L'option -o nom_fichier avec ceph auth list vous permet d'enregistrer la sortie dans un fichier.

30.2.2.2 Obtention d'informations sur les utilisateurs

Pour récupérer un utilisateur, une clé et des fonctions spécifiques, exécutez la commande suivante :

cephuser@adm > ceph auth get TYPE.ID

Par exemple :

cephuser@adm > ceph auth get client.admin
exported keyring for client.admin
[client.admin]
	key = AQA19uZUqIwkHxAAFuUwvq0eJD4S173oFRxe0g==
	caps mds = "allow"
	caps mon = "allow *"
 caps osd = "allow *"

Les développeurs peuvent également exécuter la commande suivante :

cephuser@adm > ceph auth export TYPE.ID

La commande auth export ressemble beaucoup à la commande auth get, mais permet également d'afficher l'ID d'authentification interne.

30.2.2.3 Ajout d'utilisateurs

L'ajout d'un utilisateur crée un nom d'utilisateur (TYPE.ID), une clé secrète et toutes les fonctionnalités incluses dans la commande destinée à créer l'utilisateur.

La clé d'un utilisateur permet à l'utilisateur de s'authentifier auprès de la grappe de stockage Ceph. Les fonctions de l'utilisateur autorisent celui-ci à lire, écrire ou exécuter sur les moniteurs Ceph (mon), les OSD Ceph (osd) ou les serveurs de métadonnées Ceph (mds).

Quelques commandes permettent d'ajouter un utilisateur :

ceph auth add

Cette commande est la méthode canonique pour ajouter un utilisateur. Elle crée l'utilisateur, génère une clé et ajoute les éventuelles fonctions indiquées.

ceph auth get-or-create

Cette commande est souvent la façon la plus pratique de créer un utilisateur, car elle renvoie un keyfile avec le nom d'utilisateur (entre parenthèses) et la clé. Si l'utilisateur existe déjà, cette commande renvoie simplement le nom d'utilisateur et la clé dans le format du keyfile. L'option -o nom_fichier vous permet d'enregistrer la sortie dans un fichier.

ceph auth get-or-create-key

Cette commande est un moyen pratique de créer un utilisateur et de renvoyer la clé de l'utilisateur (uniquement). Cela est utile pour les clients qui n'ont besoin que de la clé (libvirt, par exemple). Si l'utilisateur existe déjà, cette commande renvoie simplement la clé. L'option -o nom_fichier vous permet d'enregistrer la sortie dans un fichier.

Lors de la création d'utilisateurs clients, vous pouvez définir un utilisateur sans fonction. Un utilisateur sans fonction peut s'authentifier, mais rien de plus. Un tel client ne peut pas extraire une assignation de grappe depuis le moniteur. Cependant, vous pouvez créer un utilisateur sans fonctions si vous souhaitez différer l'ajout de fonctions à une date ultérieure en utilisant la commande ceph auth caps.

Un utilisateur normal possède au moins des autorisations de lecture sur le moniteur Ceph et des autorisations de lecture et écriture sur les OSD Ceph. De plus, les autorisations OSD d'un utilisateur sont souvent limitées à l'accès à une réserve particulière.

cephuser@adm > ceph auth add client.john mon 'allow r' osd \
 'allow rw pool=liverpool'
cephuser@adm > ceph auth get-or-create client.paul mon 'allow r' osd \
 'allow rw pool=liverpool'
cephuser@adm > ceph auth get-or-create client.george mon 'allow r' osd \
 'allow rw pool=liverpool' -o george.keyring
cephuser@adm > ceph auth get-or-create-key client.ringo mon 'allow r' osd \
 'allow rw pool=liverpool' -o ringo.key
Important
Important

Si vous fournissez à un utilisateur des autorisations d'accès OSD sans limiter l'accès à des réserves en particulier, l'utilisateur aura accès à toutes les réserves de la grappe.

30.2.2.4 Modification des fonctions utilisateur

La commande ceph auth caps vous permet d'indiquer un utilisateur et de modifier ses fonctions. La définition de nouvelles fonctionnalités écrase les fonctions en cours. Pour afficher les fonctions actuelles, exécutez ceph auth get TYPE D'UTILISATEUR.USERID. Pour ajouter des fonctions, vous devez également indiquer les fonctions existants lors de l'utilisation du formulaire suivant :

cephuser@adm > 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]']

Par exemple :

cephuser@adm > ceph auth get client.john
cephuser@adm > ceph auth caps client.john mon 'allow r' osd 'allow rw pool=prague'
cephuser@adm > ceph auth caps client.paul mon 'allow rw' osd 'allow r pool=prague'
cephuser@adm > ceph auth caps client.brian-manager mon 'allow *' osd 'allow *'

Pour supprimer une fonction, vous avez la possibilité de la réinitialiser. Si vous souhaitez que l'utilisateur n'ait pas accès à un daemon particulier précédemment défini, indiquez une chaîne vide :

cephuser@adm > ceph auth caps client.ringo mon ' ' osd ' '

30.2.2.5 Suppression d'utilisateurs

Pour supprimer un utilisateur, exécutez auth ceph del :

cephuser@adm > ceph auth del TYPE.ID

TYPE correspond à client, osd, LUN ou mds, et ID correspond au nom d'utilisateur ou à l'ID du daemon.

Si vous avez créé des utilisateurs avec des autorisations strictement pour une réserve qui n'existe plus, vous devez également envisager de supprimer ces utilisateurs.

30.2.2.6 Impression de la clé d'un utilisateur

Pour imprimer la clé d'authentification de l'utilisateur vers la sortie standard, exécutez la commande suivante :

cephuser@adm > ceph auth print-key TYPE.ID

TYPE correspond à client, osd, LUN ou mds, et ID correspond au nom d'utilisateur ou à l'ID du daemon.

L'impression de la clé d'un utilisateur est utile lorsque vous devez renseigner le logiciel client avec la clé d'un utilisateur (telle que libvirt), comme dans l'exemple suivant :

root # mount -t ceph host:/ mount_point \
-o name=client.user,secret=`ceph auth print-key client.user`

30.2.2.7 Importation d'utilisateurs

Pour importer un ou plusieurs utilisateurs, exécutez ceph auth import et indiquez un trousseau de clés :

cephuser@adm > ceph auth import -i /etc/ceph/ceph.keyring
Note
Note

La grappe de stockage Ceph ajoute de nouveaux utilisateurs, leurs clés et leurs fonctions, puis les met à jour.

30.2.3 Gestion des trousseaux

Lorsque vous accédez à Ceph via un client Ceph, le client recherche un trousseau de clés local. Ceph prédéfinit le paramètre de trousseau de clés avec les quatre noms de trousseau de clés suivants par défaut de sorte que vous n'avez pas besoin de les définir dans votre fichier de configuration Ceph, sauf si vous souhaitez remplacer les valeurs par défaut :

/etc/ceph/cluster.name.keyring
/etc/ceph/cluster.keyring
/etc/ceph/keyring
/etc/ceph/keyring.bin

La métavariable cluster correspond à votre nom de grappe Ceph tel qu'il est défini par le nom du fichier de configuration Ceph. ceph.conf signifie que le nom de la grappe est ceph, donc ceph.keyring. La métavariable name correspond au type d'utilisateur et à l'ID utilisateur, par exemple client.admin, par conséquent ceph.client.admin.keyring.

Après avoir créé un utilisateur (par exemple client.ringo), vous devez obtenir la clé et l'ajouter à un trousseau de clés sur un client Ceph afin que l'utilisateur puisse accéder à la grappe de stockage Ceph.

La Section 30.2, « Les zones de gestion principales » explique comment lister, obtenir, ajouter, modifier et supprimer des utilisateurs directement dans la grappe de stockage Ceph. Toutefois, Ceph fournit également l'utilitaire ceph authtool pour vous permettre de gérer des trousseaux de clés à partir d'un client Ceph.

30.2.3.1 Création d'un trousseau de clés

Les procédures de la Section 30.2, « Les zones de gestion principales » qui permettent de créer des utilisateurs vous obligent à fournir des clés d'utilisateur aux clients Ceph afin qu'ils puissent récupérer la clé de l'utilisateur indiqué et s'authentifier avec la grappe de stockage Ceph. Les clients Ceph accèdent aux trousseaux de clés pour rechercher un nom d'utilisateur et récupérer la clé correspondante :

cephuser@adm > ceph-authtool --create-keyring /path/to/keyring

Lorsque vous créez un trousseau de clés avec plusieurs utilisateurs, nous vous recommandons de reprendre le nom de la grappe (par exemple, grappe.keyring) pour le nom de fichier du trousseau de clés et l'enregistrer dans le répertoire /etc/ceph de sorte que le paramètre par défaut de la configuration du trousseau de clés récupère le nom du fichier sans que vous ayez à l'indiquer dans la copie locale de votre fichier de configuration Ceph. Par exemple, créez ceph.keyring en exécutant la commande suivante :

cephuser@adm > ceph-authtool -C /etc/ceph/ceph.keyring

Lorsque vous créez un trousseau de clés avec un seul utilisateur, nous vous recommandons de sélectionner le nom de la grappe, le type d'utilisateur et le nom d'utilisateur afin de l'enregistrer dans l'annuaire /etc/ceph. Par exemple, ceph.client.admin.keyring pour l'utilisateur client.admin.

30.2.3.2 Ajout d'un utilisateur à un trousseau de clés

Lorsque vous ajoutez un utilisateur à la grappe de stockage Ceph (voir Section 30.2.2.3, « Ajout d'utilisateurs »), vous pouvez récupérer l'utilisateur, la clé et les fonctions, et enregistrer l'utilisateur dans un trousseau de clés.

Si vous souhaitez associer un utilisateur par trousseau de clés, la commande ceph auth get suivie de l'option -o enregistrera la sortie dans le format du fichier de trousseau de clés. Par exemple, pour créer un trousseau de clés pour l'utilisateur client.admin, exécutez la commande suivante :

cephuser@adm > ceph auth get client.admin -o /etc/ceph/ceph.client.admin.keyring

Lorsque vous souhaitez importer des utilisateurs vers un trousseau de clés, vous pouvez utiliser ceph-authtool afin d'indiquer le trousseau de destination et le trousseau source :

cephuser@adm > ceph-authtool /etc/ceph/ceph.keyring \
  --import-keyring /etc/ceph/ceph.client.admin.keyring
Important
Important

Si votre trousseau de clés est compromis, supprimez votre clé du répertoire /etc/ceph et recréez une nouvelle clé en suivant les instructions de la Section 30.2.3.1, « Création d'un trousseau de clés ».

30.2.3.3 Création d'un utilisateur

La commande ceph auth add de Ceph permet de créer un utilisateur directement dans la grappe de stockage Ceph. Cependant, vous pouvez également créer un utilisateur, des clés et des fonctionnalités directement dans un trousseau de clés du client Ceph. Vous pouvez ensuite importer l'utilisateur vers la grappe de stockage Ceph :

cephuser@adm > ceph-authtool -n client.ringo --cap osd 'allow rwx' \
  --cap mon 'allow rwx' /etc/ceph/ceph.keyring

Vous pouvez également créer un trousseau de clés et lui ajouter un nouvel utilisateur simultanément :

cephuser@adm > ceph-authtool -C /etc/ceph/ceph.keyring -n client.ringo \
  --cap osd 'allow rwx' --cap mon 'allow rwx' --gen-key

Dans les scénarios précédents, le nouvel utilisateur client.ringo réside uniquement dans le trousseau de clés. Pour ajouter le nouvel utilisateur à la grappe de stockage Ceph, vous devez encore ajouter celui-ci à la grappe :

cephuser@adm > ceph auth add client.ringo -i /etc/ceph/ceph.keyring

30.2.3.4 Modification d'utilisateurs

Pour modifier les fonctionnalités d'un enregistrement utilisateur dans un trousseau de clés, indiquez le trousseau de clés et l'utilisateur suivis des fonctionnalités :

cephuser@adm > ceph-authtool /etc/ceph/ceph.keyring -n client.ringo \
  --cap osd 'allow rwx' --cap mon 'allow rwx'

Pour mettre à jour l'utilisateur modifié dans l'environnement de grappe Ceph, vous devez importer les modifications du trousseau de clés dans l'entrée utilisateur de la grappe Ceph :

cephuser@adm > ceph auth import -i /etc/ceph/ceph.keyring

Reportez-vous à la Section 30.2.2.7, « Importation d'utilisateurs » pour plus d'informations sur la mise à jour d'un utilisateur de grappe de stockage Ceph à partir d'un trousseau de clés.

30.2.4 Utilisation de la ligne de commande

La commande ceph prend en charge les options suivantes liées à la manipulation du nom et du secret de l'utilisateur :

--id ou --user

Ceph identifie les utilisateurs avec un type et un ID (TYPE.ID, tel que client.admin ou client.user1). Les options id, name et - n vous permettent d'indiquer la partie ID du nom d'utilisateur (par exemple, admin ou user1). Vous pouvez indiquer l'utilisateur avec --id et omettre le type. Par exemple, pour indiquer l'utilisateur client.foo, entrez la commande suivante :

cephuser@adm > ceph --id foo --keyring /path/to/keyring health
cephuser@adm > ceph --user foo --keyring /path/to/keyring health
--name ou -n

Ceph identifie les utilisateurs avec un type et un ID (TYPE.ID, tel que client.admin ou client.user1). Les options --name et -n vous donnent les moyens d'indiquer le nom d'utilisateur complet. Vous devez indiquer le type d'utilisateur (généralement client) avec l'ID utilisateur :

cephuser@adm > ceph --name client.foo --keyring /path/to/keyring health
cephuser@adm > ceph -n client.foo --keyring /path/to/keyring health
--keyring

Chemin d'accès au trousseau de clés contenant un ou plusieurs noms et secrets d'utilisateur. L'option --secret fournit la même fonctionnalité, mais elle est inopérante avec Object Gateway, qui utilise --secret dans un but différent. Vous pouvez récupérer un trousseau de clés avec ceph auth get-or-create et le stocker localement. Il s'agit d'une approche privilégiée, car vous pouvez changer de noms d'utilisateur indépendamment du chemin d'accès aux trousseaux de clés :

cephuser@adm > rbd map --id foo --keyring /path/to/keyring mypool/myimage