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|falseLes 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 N
- Complexité minimale du mot de passe (10 par défaut) : - cephuser@adm >ceph dashboard set-pwd-policy-min-complexity N- La 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 de 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 -i [PASSWORD_FILE] [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 -i PASSWORD_FILE
- 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 PASSWORD
- Créez un rôle et spécifiez les autorisations d'étendue : - cephuser@adm >ceph dashboard ac-role-create rbd/pool-manager- cephuser@adm >ceph dashboard ac-role-add-scope-perms rbd/pool-manager \ rbd-image read create update delete- cephuser@adm >ceph dashboard ac-role-add-scope-perms rbd/pool-manager pool read create
- Associez 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 50311.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 none11.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 trueSi 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 false11.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.