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 / Ceph Dashboard / Gestion des utilisateurs et des rôles via la ligne de commande
S'applique à SUSE Enterprise Storage 7

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|false
cephuser@adm > ceph dashboard set-pwd-policy-check-oldpwd-enabled true|false
cephuser@adm > ceph dashboard set-pwd-policy-check-username-enabled true|false
cephuser@adm > ceph dashboard set-pwd-policy-check-exclusion-list-enabled true|false
cephuser@adm > ceph dashboard set-pwd-policy-check-complexity-enabled true|false
cephuser@adm > ceph dashboard set-pwd-policy-check-sequential-chars-enabled true|false
cephuser@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 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 Hôtes.

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 ...]
Astuce
Astuce : purge des rôles personnalisés

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.

  1. Créez un utilisateur nommé tux :

     cephuser@adm > ceph dashboard ac-user-create tux PASSWORD
  2. 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
  3. 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 503

11.4.4 Exemple de configuration HAProxy

L'exemple de configuration suivant concerne le passage TLS/SSL à l'aide de HAProxy.

Note
Note

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"}'
Astuce
Astuce : désactivation de la consignation de la charge utile de requête

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.