11 Verwalten von Benutzern und Rollen über die Kommandozeile #
In diesem Abschnitt wird die Verwaltung von Benutzerkonten erläutert, die im Ceph Dashboard verwendet werden. Hier erhalten Sie Hilfestellung für die Erstellung oder Bearbeitung von Benutzerkonten sowie für die Festlegung der richtigen Benutzerrollen und Berechtigungen.
11.1 Verwalten der Passwortrichtlinie #
Standardmäßig ist die Passwortrichtlinienfunktion einschließlich der folgenden Prüfungen aktiviert:
Ist das Passwort länger als N Zeichen?
Sind das alte und das neue Passwort identisch?
Die Passwortrichtlinienfunktion kann komplett ein- oder ausgeschaltet werden:
cephuser@adm >
ceph dashboard set-pwd-policy-enabled true|false
Die folgenden Einzelprüfungen können ein- oder ausgeschaltet werden:
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
Darüber hinaus stehen zum Konfigurieren des Verhaltens der Passwortrichtlinie die folgenden Optionen zur Verfügung.
Die minimale Passwortlänge (Standardwert ist 8):
cephuser@adm >
ceph dashboard set-pwd-policy-min-length NDie minimale Passwortkomplexität (Standardwert ist 10):
cephuser@adm >
ceph dashboard set-pwd-policy-min-complexity NDie Passwortkomplexität wird berechnet, indem jedes Zeichen im Passwort klassifiziert wird.
Eine Liste mit kommagetrennten Wörtern, die nicht in einem Passwort verwendet werden dürfen:
cephuser@adm >
ceph dashboard set-pwd-policy-exclusion-list word[,...]
11.2 Verwalten von Benutzerkonten #
Das Ceph Dashboard unterstützt die Verwaltung mehrerer Benutzerkonten. Jedes Benutzerkonto umfasst einen Benutzernamen, ein Passwort (in verschlüsselter Form mit bcrypt
gespeichert), einen optionalen Namen und eine optionale E-Mail-Adresse.
Die Benutzerkonten werden in der Konfigurationsdatenbank von Ceph Monitor gespeichert und für alle Ceph-Manager-Instanzen freigegeben.
Mit folgenden Kommandos verwalten Sie die Benutzerkonten:
- Vorhandene Benutzer abrufen:
cephuser@adm >
ceph dashboard ac-user-show [USERNAME]- Einen neuen Benutzer erstellen:
cephuser@adm >
ceph dashboard ac-user-create USERNAME -i [PASSWORD_FILE] [ROLENAME] [NAME] [EMAIL]- Einen Benutzer löschen:
cephuser@adm >
ceph dashboard ac-user-delete USERNAME- Benutzerpasswörter ändern:
cephuser@adm >
ceph dashboard ac-user-set-password USERNAME -i PASSWORD_FILE- Name und E-Mail-Adresse eines Benutzers bearbeiten:
cephuser@adm >
ceph dashboard ac-user-set-info USERNAME NAME EMAIL- Benutzer deaktivieren:
cephuser@adm >
ceph dashboard ac-user-disable USERNAME- Benutzer aktivieren:
cephuser@adm >
ceph dashboard ac-user-enable USERNAME
11.3 Benutzerrollen und Berechtigungen #
In diesem Abschnitt erfahren Sie, welche Sicherheitsbereiche Sie einer Benutzerrolle zuweisen können, wie Sie Benutzerrollen verwalten und wie Sie sie den Benutzerkonten zuweisen.
11.3.1 Definieren von Sicherheitsbereichen #
Benutzerkonten sind mit einer Gruppe von Rollen verknüpft, mit der definiert wird, auf welche Teile des Dashboards der Benutzer zugreifen kann. Die Dashboard-Teile sind in einem Sicherheitsbereich gruppiert. Sicherheitsbereiche sind vordefiniert und statisch. Die folgenden Sicherheitsbereiche sind derzeit verfügbar:
- hosts
Alle Funktionen für den Menüeintrag
.- config-opt
Alle Funktionen für die Verwaltung der Ceph-Konfigurationsoptionen.
- Speicherplatz auf dem Pool
Alle Funktionen für die Pool-Verwaltung.
- osd
Alle Funktionen für die Ceph OSD-Verwaltung.
- monitor
Alle Funktionen für die Ceph Monitor-Verwaltung.
- rbd-image
Alle Funktionen für die Verwaltung von RADOS-Block-Device-Images.
- rbd-mirroring
Alle Funktionen für die Verwaltung der RADOS-Block-Device-Spiegelung.
- iscsi
Alle Funktionen für die iSCSI-Verwaltung.
- rgw
Alle Funktionen für die Object-Gateway-Verwaltung.
- cephfs
Alle Funktionen für die CephFS-Verwaltung.
- manager
Alle Funktionen für die Ceph-Manager-Verwaltung.
- Protokoll
Alle Funktionen für die Verwaltung der Ceph-Protokolle.
- grafana
Alle Funktionen für den Grafana-Proxy.
- prometheus
Alle Funktionen für die Prometheus-Verwaltung.
- dashboard-settings
Zum Ändern der Dashboard-Einstellungen.
11.3.2 Festlegen von Benutzerrollen #
Eine Rolle bestimmt eine Reihe von Zuordnungen zwischen einem Sicherheitsbereich und einer Gruppe von Berechtigungen. Es gibt vier Arten von Berechtigungen: „read“, „create“, „update“ und „delete“.
Im folgenden Beispiel wird eine Rolle festgelegt, bei der ein Benutzer die Berechtigungen „read“ und „create“ für Funktionen im Rahmen der Pool-Verwaltung sowie uneingeschränkte Berechtigungen für Funktionen im Rahmen der RBD-Image-Verwaltung besitzt:
{ 'role': 'my_new_role', 'description': 'My new role', 'scopes_permissions': { 'pool': ['read', 'create'], 'rbd-image': ['read', 'create', 'update', 'delete'] } }
Das Dashboard bietet bereits eine Gruppe vordefinierter Rollen, die als Systemrollen bezeichnet werden. Diese Rollen können Sie nach einer Neuinstallation des Ceph Dashboards sofort nutzen:
- Administrator
Uneingeschränkte Berechtigungen für alle Sicherheitsbereiche.
- Nur-Lesen
Leseberechtigung für alle Sicherheitsbereiche mit Ausnahme der Dashboard-Einstellungen.
- block-manager
Uneingeschränkte Berechtigungen für die Bereiche „rbd-image“, „rbd-mirroring“ und „iscsi“.
- rgw-manager
Uneingeschränkte Berechtigungen für den Bereich „rgw“.
- cluster-manager
Uneingeschränkte Berechtigungen für die Bereiche „hosts“, „osd“, „monitor“, „manager“ und „config-opt“.
- pool-manager
Uneingeschränkte Berechtigungen für den Bereich „pool“.
- cephfs-manager
Uneingeschränkte Berechtigungen für den Bereich „cephfs“.
11.3.2.1 Verwalten benutzerdefinierter Rollen #
Mit folgenden Kommandos können Sie neue Benutzerrollen erstellen:
- Eine neue Rolle erstellen:
cephuser@adm >
ceph dashboard ac-role-create ROLENAME [DESCRIPTION]- Eine Rolle löschen:
cephuser@adm >
ceph dashboard ac-role-delete ROLENAME- Bereichsberechtigungen für eine Rolle festlegen:
cephuser@adm >
ceph dashboard ac-role-add-scope-perms ROLENAME SCOPENAME PERMISSION [PERMISSION...]- Bereichsberechtigungen einer Rolle löschen:
cephuser@adm >
ceph dashboard ac-role-del-perms ROLENAME SCOPENAME
11.3.2.2 Zuweisen von Rollen zu Benutzerkonten #
Mit folgenden Kommandos weisen Sie die Rollen den Benutzern zu:
- Benutzerrollen festlegen:
cephuser@adm >
ceph dashboard ac-user-set-roles USERNAME ROLENAME [ROLENAME ...]- Einem Benutzer zusätzliche Rollen zuweisen:
cephuser@adm >
ceph dashboard ac-user-add-roles USERNAME ROLENAME [ROLENAME ...]- Rollen eines Benutzers löschen:
cephuser@adm >
ceph dashboard ac-user-del-roles USERNAME ROLENAME [ROLENAME ...]
Wenn Sie benutzerdefinierte Rollen erstellen und den Ceph-Cluster später mit dem Ausführungsprogramm ceph.purge
bereinigen möchten, müssen Sie zunächst die benutzerdefinierten Rollen bereinigen. Weitere Informationen finden Sie im Abschnitt 13.9, „Vollständiges Entfernen eines Ceph-Clusters“.
11.3.2.3 Beispiel: Erstellen eines Benutzers und einer benutzerdefinierten Regel #
In diesem Abschnitt wird das Verfahren zum Erstellen eines Benutzerkontos veranschaulicht, das RBD-Images verwalten und den Ceph-Pool abrufen kann sowie den Nur-Lese-Zugriff auf alle anderen Bereiche erhält.
Erstellen Sie einen neuen Benutzer namens
tux
:cephuser@adm >
ceph dashboard ac-user-create tux PASSWORDErstellen Sie eine Rolle und legen Sie die Bereichsberechtigungen fest:
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 createOrdnen Sie die Rollen dem Benutzer
tux
zu:cephuser@adm >
ceph dashboard ac-user-set-roles tux rbd/pool-manager read-only
11.4 Proxy-Konfiguration #
Wenn Sie eine feste URL für das Ceph Dashboard festlegen möchten oder wenn Sie keine direkten Verbindungen zu den Manager-Knoten zulassen möchten, können Sie einen Proxy einrichten, der eingehende Anfragen automatisch an die aktuell aktive ceph-mgr
-Instanz weiterleitet.
11.4.1 Zugriff auf das Dashboard über Reverse-Proxys #
Wenn Sie über eine Reverse-Proxy-Konfiguration auf das Dashboard zugreifen, muss ggf. ein URL-Präfix angegeben werden. Mit der Einstellung url_prefix
legen Sie fest, dass das Dashboard Hyperlinks mit Ihrem Präfix nutzen soll:
cephuser@adm >
ceph config set mgr mgr/dashboard/url_prefix URL_PREFIX
Anschließend können Sie unter http://HOST_NAME:PORT_NUMBER/URL_PREFIX/
auf das Dashboard zugreifen.
11.4.2 Deaktivieren von Umleitungen #
Wenn sich das Ceph Dashboard hinter einem Lastausgleichsproxy wie HAProxy befindet, deaktivieren Sie das Weiterleitungsverhalten, um Situationen zu vermeiden, in denen die internen (nicht auflösbaren) URLs an den Frontend-Client veröffentlicht werden. Mit folgendem Kommando antwortet das Dashboard mit einem HTTP-Fehler (standardmäßig 500
), statt an das aktive Dashboard weiterzuleiten:
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_behaviour "error"
Setzen Sie die Einstellung mit folgendem Kommando auf das standardmäßige Weiterleitungsverhalten zurück:
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_behaviour "redirect"
11.4.3 Konfigurieren von Fehlerstatuscodes #
Wenn das Weiterleitungsverhalten deaktiviert ist, dann sollten Sie den HTTP-Statuscode von Standby-Dashboards anpassen. Führen Sie hierzu folgendes Kommando aus:
cephuser@adm >
ceph config set mgr mgr/dashboard/standby_error_status_code 503
11.4.4 Beispiel einer HAProxy-Konfiguration #
Im folgenden Beispiel wird ein TLS/SSL-Durchlauf mit HAProxy konfiguriert.
Die Konfiguration funktioniert unter den folgenden Bedingungen: Wenn das Dashboard ausfällt, erhält der Frontend-Client möglicherweise eine HTTP-Weiterleitungsantwort (303
) und wird an einen nicht auflösbaren Host weitergeleitet.
Dies geschieht, wenn die Ausfallsicherung während zweier HAProxy-Zustandsprüfungen auftritt. In dieser Situation antwortet der zuvor aktive Dashboard-Knoten nun mit einer 303, die auf den neuen aktiven Knoten zeigt. Um diese Situation zu vermeiden, sollten Sie erwägen, das Weiterleitungsverhalten auf Standby-Knoten zu deaktivieren.
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 Revision von API-Anforderungen #
Die REST-API des Ceph Dashboards kann PUT-, POST- und DELETE-Anforderungen im Ceph-Revisionsprotokoll festhalten. Die Protokollierung ist standardmäßig deaktiviert; mit folgendem Kommando können Sie sie jedoch aktivieren:
cephuser@adm >
ceph dashboard set-audit-api-enabled true
Nach der Aktivierung werden die folgenden Parameter für jede Anforderung protokolliert:
- Von
Ursprung der Anforderung, z. B. „https://[::1]:44410“.
- Pfad
Der REST API-Pfad, z. B
/api/auth
.- Methode
„PUT“, „POST“ oder „DELETE“.
- benutzer
Name des Benutzers (oder „None“ [Keine]).
Beispiel für einen Protokolleintrag:
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"}'
Die Protokollierung der Anforderungsnutzlast (die Liste der Argumente und ihrer Werte) ist standardmäßig aktiviert. So können Sie sie deaktivieren:
cephuser@adm >
ceph dashboard set-audit-api-log-payload false
11.6 Konfigurieren von NFS Ganesha im Ceph Dashboard #
Das Ceph Dashboard kann NFS-Ganesha-Exporte verwalten, die CephFS oder Object Gateway als Backstore verwenden. Das Dashboard verwaltet NFS-Ganesha-Konfigurationsdateien, die in RADOS-Objekten auf dem CephFS-Cluster gespeichert sind. NFS Ganesha muss einen Teil ihrer Konfiguration im Ceph-Cluster speichern.
Konfigurieren Sie den Standort der Konfigurationsobjekte von NFS Ganesha mit folgendem Kommando:
cephuser@adm >
ceph dashboard set-ganesha-clusters-rados-pool-namespace pool_name[/namespace]
Sie können nun NFS-Ganesha-Exporte über das Ceph Dashboard verwalten.
11.6.1 Konfigurieren mehrerer NFS-Ganesha-Cluster #
Das Ceph Dashboard unterstützt die Verwaltung von NFS-Ganesha-Exporten, die zu verschiedenen NFS-Ganesha-Clustern gehören. Wir empfehlen, dass jeder NFS-Ganesha-Cluster seine Konfigurationsobjekte in einem anderen RADOS-Pool/Namespace speichert, um die Konfigurationen voneinander zu isolieren.
Geben Sie mit folgendem Kommando die Speicherorte der Konfiguration der einzelnen NFS-Ganesha-Cluster an:
cephuser@adm >
ceph dashboard set-ganesha-clusters-rados-pool-namespace cluster_id:pool_name[/namespace](,cluster_id:pool_name[/namespace])*
Die cluster_id ist eine beliebige Zeichenkette, die den NFS-Ganesha-Cluster eindeutig identifiziert.
Wenn Sie das Ceph Dashboard mit mehreren NFS-Ganesha-Clustern konfigurieren, können Sie in der Weboberfläche automatisch auswählen, zu welchem Cluster ein Export gehört.
11.7 Plugins zur Fehlersuche #
Ceph-Dashboard-Plugins erweitern die Funktionalität des Dashboards. Das Plugin zur Fehlersuche ermöglicht die Anpassung des Verhaltens des Dashboards entsprechend dem Fehlersuchmodus. Es kann mit folgendem Kommando aktiviert, deaktiviert oder überprüft werden:
cephuser@adm >
ceph dashboard debug status Debug: 'disabled'cephuser@adm >
ceph dashboard debug enable Debug: 'enabled'cephuser@adm >
dashboard debug disable Debug: 'disabled'
Es ist standardmäßig deaktiviert. Dies ist die empfohlene Einstellung für Produktionsbereitstellungen. Bei Bedarf kann der Fehlersuchmodus aktiviert werden, ohne dass ein Neustart erforderlich ist.