11 Gestion des utilisateurs et des rôles via la ligne de commande #
Cette section explique comment gérer les comptes utilisateur employés par Ceph Dashboard. Elle vous aide à créer ou modifier des comptes utilisateur, ainsi qu'à définir des rôles et autorisations appropriés pour les utilisateurs.
11.1 Gestion de la stratégie de mot de passe #
Par défaut, la fonction de stratégie de mot de passe est activée, y compris les vérifications suivantes :
Le mot de passe comporte-t-il plus de N caractères ?
L'ancien et le nouveau mots de passe sont-ils identiques ?
La fonction de stratégie de mot de passe peut être complètement activée ou désactivée :
cephuser@adm >
ceph dashboard set-pwd-policy-enabled true|false
Les vérifications individuelles suivantes peuvent être activées ou désactivées :
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
En outre, les options suivantes sont disponibles pour configurer le comportement de la stratégie de mot de passe.
Longueur minimale du mot de passe (8 par défaut) :
cephuser@adm >
ceph dashboard set-pwd-policy-min-length NComplexité minimale du mot de passe (10 par défaut) :
cephuser@adm >
ceph dashboard set-pwd-policy-min-complexity NLa complexité du mot de passe est calculée en classant chaque caractère du mot de passe.
Liste de mots, séparés par des virgules, qui ne peuvent pas être utilisés dans un mot de passe :
cephuser@adm >
ceph dashboard set-pwd-policy-exclusion-list word[,...]
11.2 Gestion des comptes utilisateur #
Ceph Dashboard prend en charge la gestion de plusieurs comptes utilisateur. Chaque compte utilisateur se compose d'un nom d'utilisateur, d'un mot de passe (stocké sous forme codée à l'aide de bcrypt
), d'un nom facultatif et d'une adresse électronique facultative.
Les comptes utilisateur sont stockés dans la base de données de configuration de Ceph Monitor et sont partagés globalement par toutes les instances Ceph Manager.
Utilisez les commandes suivantes pour gérer les comptes utilisateur :
- Afficher les utilisateurs existants :
cephuser@adm >
ceph dashboard ac-user-show [USERNAME]- Créer un utilisateur :
cephuser@adm >
ceph dashboard ac-user-create USERNAME [PASSWORD] [ROLENAME] [NAME] [EMAIL]- Supprimer un utilisateur :
cephuser@adm >
ceph dashboard ac-user-delete USERNAME- Changer le mot de passe d'un utilisateur :
cephuser@adm >
ceph dashboard ac-user-set-password USERNAME PASSWORD- Changer le nom et l'adresse électronique d'un utilisateur :
cephuser@adm >
ceph dashboard ac-user-set-info USERNAME NAME EMAIL- Désactiver l'utilisateur
cephuser@adm >
ceph dashboard ac-user-disable USERNAME- Activer l'utilisateur
cephuser@adm >
ceph dashboard ac-user-enable USERNAME
11.3 Rôles et autorisations des utilisateurs #
Cette section décrit les étendues de sécurité que vous pouvez assigner à un rôle utilisateur, comment gérer les rôles des utilisateurs et comment les affecter aux comptes utilisateur.
11.3.1 Définition des étendues de sécurité #
Les comptes utilisateur sont associés à un ensemble de rôles qui définissent les parties du tableau de bord auxquelles l'utilisateur peut accéder. Les parties du tableau de bord sont regroupées au sein d'une étendue de sécurité. Les étendues de sécurité sont prédéfinies et statiques. Les périmètres de sécurité suivants sont actuellement disponibles :
- hosts
Inclut toutes les fonctionnalités liées à l'entrée de menu
.- config-opt
Inclut toutes les fonctionnalités liées à la gestion des options de configuration Ceph.
- pool
Inclut toutes les fonctionnalités liées à la gestion des réserves.
- osd
Inclut toutes les fonctionnalités liées à la gestion Ceph OSD.
- monitor
Inclut toutes les fonctionnalités liées à la gestion Ceph Monitor.
- rbd-image
Inclut toutes les fonctionnalités liées à la gestion des images de périphérique de bloc RADOS (RBD).
- rbd-mirroring
Inclut toutes les fonctionnalités liées à la gestion de la mise en miroir de périphériques de bloc RADOS.
- iscsi
Inclut toutes les fonctionnalités liées à la gestion iSCSI.
- rgw
Inclut toutes les fonctionnalités liées à la gestion Object Gateway.
- cephfs
Inclut toutes les fonctionnalités liées à la gestion CephFS.
- manager
Inclut toutes les fonctionnalités liées à la gestion Ceph Manager.
- log
Inclut toutes les fonctionnalités liées à la gestion des journaux Ceph.
- grafana
Inclut toutes les fonctionnalités liées au proxy Grafana.
- prometheus
Inclut toutes les fonctions liées à la gestion des alertes Prometheus.
- dashboard-settings
Permet de modifier les paramètres du tableau de bord.
11.3.2 Spécification des rôles utilisateur #
Un rôle spécifie un ensemble d'assignations entre une étendue de sécurité et un ensemble d'autorisations. Il existe quatre types d'autorisations : « read » (lire), « create » (créer), « update » (mettre à jour) et « delete » (supprimer).
L'exemple suivant spécifie un rôle pour lequel un utilisateur dispose des autorisations de lecture et de création concernant les fonctionnalités liées à la gestion des réserves, et possède toutes les autorisations pour les fonctionnalités liées à la gestion des images RBD :
{ 'role': 'my_new_role', 'description': 'My new role', 'scopes_permissions': { 'pool': ['read', 'create'], 'rbd-image': ['read', 'create', 'update', 'delete'] } }
Le tableau de bord fournit déjà un ensemble de rôles prédéfinis que nous appelons les rôles système. Vous pouvez les utiliser instantanément après une nouvelle installation de Ceph Dashboard :
- administrateur
Fournit des autorisations complètes pour toutes les étendues de sécurité.
- read-only
Fournit une autorisation de lecture pour toutes les étendues de sécurité, à l'exception des paramètres du tableau de bord.
- block-manager
Fournit des autorisations complètes pour les étendues « rbd-image », « rbd-mirroring » et « iscsi ».
- rgw-manager
Fournit des autorisations complètes pour l'étendue « rgw ».
- cluster-manager
Fournit des autorisations complètes pour les étendues « hosts », « osd », « monitor », « manager » et « config-opt ».
- pool-manager
Fournit des autorisations complètes pour l'étendue « pool ».
- cephfs-manager
Fournit des autorisations complètes pour l'étendue « cephfs ».
11.3.2.1 Gestion des rôles personnalisés #
Vous pouvez créer des rôles utilisateur à l'aide des commandes suivantes :
- Créer un rôle :
cephuser@adm >
ceph dashboard ac-role-create ROLENAME [DESCRIPTION]- Supprimer un rôle :
cephuser@adm >
ceph dashboard ac-role-delete ROLENAME- Ajouter des autorisations d'étendue à un rôle :
cephuser@adm >
ceph dashboard ac-role-add-scope-perms ROLENAME SCOPENAME PERMISSION [PERMISSION...]- Supprimer des autorisations d'étendue d'un rôle :
cephuser@adm >
ceph dashboard ac-role-del-perms ROLENAME SCOPENAME
11.3.2.2 Assignation de rôles à des comptes utilisateur #
Utilisez les commandes suivantes pour assigner des rôles aux utilisateurs :
- Définir des rôles utilisateur :
cephuser@adm >
ceph dashboard ac-user-set-roles USERNAME ROLENAME [ROLENAME ...]- Ajouter des rôles supplémentaires à un utilisateur :
cephuser@adm >
ceph dashboard ac-user-add-roles USERNAME ROLENAME [ROLENAME ...]- Supprimer des rôles d'un utilisateur :
cephuser@adm >
ceph dashboard ac-user-del-roles USERNAME ROLENAME [ROLENAME ...]
Si vous créez des rôles utilisateur personnalisés et avez l'intention de supprimer ultérieurement la grappe Ceph à l'aide de l'exécuteur ceph.purge
, vous devez d'abord purger les rôles personnalisés. Pour plus de détails, reportez-vous à la Section 13.9, « Suppression d'une grappe Ceph entière ».
11.3.2.3 Exemple : création d'un utilisateur et d'un rôle personnalisé #
Cette section illustre une procédure de création d'un compte utilisateur pouvant gérer les images RBD, afficher et créer des réserves Ceph, et accéder en lecture seule à toutes les autres étendues.
Créez un utilisateur nommé
tux
:cephuser@adm >
ceph dashboard ac-user-create tux PASSWORDCréez un rôle et spécifiez les autorisations d'étendue :
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 createAssociez les rôles à l'utilisateur
tux
:cephuser@adm >
ceph dashboard ac-user-set-roles tux rbd/pool-manager read-only
11.4 Configuration du proxy #
Si vous souhaitez établir une URL fixe pour accéder à Ceph Dashboard ou si vous ne souhaitez pas autoriser les connexions directes aux noeuds du gestionnaire, vous pouvez configurer un proxy qui transmet automatiquement les requêtes entrantes à l'instance ceph-mgr
active.
11.4.1 Accès au tableau de bord avec des proxys inverses #
Si vous accédez au tableau de bord via une configuration de proxy inverse, vous devrez peut-être le desservir sous un préfixe d'URL. Pour que le tableau de bord utilise des hyperliens qui incluent votre préfixe, vous pouvez définir le paramètre url_prefix
:
cephuser@adm >
ceph config set mgr mgr/dashboard/url_prefix URL_PREFIX
Ensuite, vous pouvez accéder au tableau de bord à l'adresse http://NOM_HÔTE:NUMÉRO_PORT/PRÉFIXE_URL/
.
11.4.2 Désactivation des réacheminements #
Si Ceph Dashboard se trouve derrière un proxy d'équilibrage de la charge tel que HAProxy, désactivez le comportement de redirection pour éviter les situations dans lesquelles les URL internes (impossibles à résoudre) sont publiées sur le client frontal. Utilisez la commande suivante pour que le tableau de bord réponde avec une erreur HTTP (500
par défaut) au lieu de rediriger vers le tableau de bord actif :
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_behaviour "error"
Pour rétablir le paramètre sur le comportement de redirection par défaut, utilisez la commande suivante :
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_behaviour "redirect"
11.4.3 Configuration des codes de statut d'erreur #
Si le comportement de redirection est désactivé, vous devez personnaliser le code de statut HTTP des tableaux de bord de secours. Pour ce faire, exécutez la commande suivante :
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_error_status_code 503
11.4.4 Exemple de configuration HAProxy #
L'exemple de configuration suivant concerne le passage TLS/SSL à l'aide de HAProxy.
La configuration fonctionne dans les conditions suivantes : en cas de basculement du tableau de bord, le client frontal peut recevoir une réponse de redirection HTTP (303
) et être redirigé vers un hôte impossible à résoudre.
Cela se produit lorsque le basculement intervient au cours de deux vérifications de l'état de santé HAProxy. Dans cette situation, le noeud de tableau de bord précédemment actif répond alors par un code 303 qui pointe vers le nouveau noeud actif. Pour éviter cela, vous devez envisager de désactiver le comportement de redirection sur les noeuds de secours.
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 Audit des requêtes API #
L'API REST de Ceph Dashboard peut consigner les requêtes PUT, POST et DELETE dans le journal d'audit Ceph. La consignation est désactivée par défaut, mais vous pouvez l'activer avec la commande suivante :
cephuser@adm >
ceph dashboard set-audit-api-enabled true
Si elle est activée, les paramètres suivants sont consignés pour chaque requête :
- from
Origine de la requête, par exemple « https://[::1]:44410 ».
- path
Chemin de l'API REST, par exemple
/api/auth
.- method
« PUT », « POST » ou « DELETE ».
- user
Nom de l'utilisateur (ou « Aucun »).
Un exemple d'entrée de journal ressemble à ceci :
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 consignation de la charge utile de requête (la liste des arguments et leurs valeurs) est activée par défaut. Vous pouvez la désactiver comme suit :
cephuser@adm >
ceph dashboard set-audit-api-log-payload false
11.6 Configuration de NFS Ganesha dans Ceph Dashboard #
Ceph Dashboard peut gérer les exportations NFS Ganesha qui utilisent CephFS ou Object Gateway comme backstore. Le tableau de bord gère les fichiers de configuration NFS Ganesha stockés dans des objets RADOS sur la grappe CephFS. NFS Ganesha doit stocker une partie de leur configuration dans la grappe Ceph.
Exécutez la commande suivante pour configurer l'emplacement de l'objet de configuration NFS Ganesha :
cephuser@adm >
ceph dashboard set-ganesha-clusters-rados-pool-namespace pool_name[/namespace]
Vous pouvez désormais gérer les exportations NFS Ganesha à l'aide de Ceph Dashboard.
11.6.1 Configuration de plusieurs grappes NFS Ganesha #
Ceph Dashboard prend en charge la gestion des exportations NFS Ganesha appartenant à différentes grappes NFS Ganesha. Il est recommandé que chaque grappe NFS Ganesha stocke ses objets de configuration dans une réserve/un espace de noms RADOS distinct pour isoler les configurations les unes des autres.
Utilisez la commande suivante pour spécifier les emplacements de la configuration de chaque grappe NFS Ganesha :
cephuser@adm >
ceph dashboard set-ganesha-clusters-rados-pool-namespace cluster_id:pool_name[/namespace](,cluster_id:pool_name[/namespace])*
cluster_id est une chaîne arbitraire qui identifie de manière unique la grappe NFS Ganesha.
Lors de la configuration de Ceph Dashboard avec plusieurs grappes NFS Ganesha, l'interface utilisateur Web vous permet automatiquement de choisir la grappe à laquelle une exportation appartient.
11.7 Plug-ins de débogage #
Les plug-ins Ceph Dashboard étendent les fonctionnalités du tableau de bord. Le plug-in de débogage permet de personnaliser le comportement du tableau de bord en fonction du mode de débogage. Il peut être activé, désactivé ou vérifié à l'aide de la commande suivante :
cephuser@adm >
ceph dashboard debug status Debug: 'disabled'cephuser@adm >
ceph dashboard debug enable Debug: 'enabled'cephuser@adm >
dashboard debug disable Debug: 'disabled'
Par défaut, il est désactivé. Il s'agit du paramètre recommandé pour les déploiements de production. Si nécessaire, le mode débogage peut être activé sans redémarrage.