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.
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.
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.
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é.
cephx
- MDS et OSD #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.
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
etallow profile fonction
.mon 'allow rwx' mon 'allow profile osd'
- Fonctions OSD
Inclut
r
,w
,x
,class-read
,class-write
etprofile 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
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.keyringcephuser@adm >
ceph auth get-or-create-key client.ringo mon 'allow r' osd \ 'allow rw pool=liverpool' -o ringo.key
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.johncephuser@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
où 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
où 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
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
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
ouclient.user1
). Les optionsid
,name
et- n
vous permettent d'indiquer la partie ID du nom d'utilisateur (par exemple,admin
ouuser1
). 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 healthcephuser@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
ouclient.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éralementclient
) avec l'ID utilisateur :cephuser@adm >
ceph --name client.foo --keyring /path/to/keyring healthcephuser@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 avecceph 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