|
Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar. |
Rollenbasierte Zugriffssteuerung
Dieser Abschnitt beschreibt die Erwartungen an RBAC für Rancher Monitoring.
Cluster-Administratoren
Standardmäßig sollten nur diejenigen mit dem Cluster-Admin-ClusterRole in der Lage sein:
-
Die
rancher-monitoringApp auf einem Cluster zu installieren und alle anderen relevanten Konfigurationen, die beim Chart bereitgestellt werden, vorzunehmen.-
z.B. ob Standard-Dashboards erstellt werden, welche Exporter auf dem Cluster bereitgestellt werden, um Metriken zu sammeln, usw.
-
-
Prometheus-Implementierungen im Cluster über Prometheus-CRs zu erstellen / zu ändern / zu löschen.
-
Alertmanager-Implementierungen im Cluster über Alertmanager-CRs zu erstellen / zu ändern / zu löschen.
-
Neue Grafana-Dashboards oder Datenquellen durch Erstellen von ConfigMaps im entsprechenden Namespace zu speichern.
-
Bestimmte Prometheus-Metriken über ein Secret im
cattle-monitoring-system-Namespace für die k8s Custom Metrics API für HPA bereitstellen.
Benutzer mit Kubernetes ClusterRole-basierten Berechtigungen
Das rancher-monitoring Chart installiert die folgenden drei ClusterRoles. Standardmäßig aggregieren sie in die entsprechenden k8s ClusterRoles:
| ClusterRole | Aggregiert zu Standard K8s ClusterRole |
|---|---|
|
|
|
|
|
`anzeigen ` |
Diese ClusterRoles bieten unterschiedliche Zugriffsrechte auf die Monitoring-CRDs, basierend auf den auszuführenden Aktionen:
| CRDs (monitoring.coreos.com) | Admin. | Bearbeiten | Anzeigen |
|---|---|---|---|
<ul><li> |
Holen, Auflisten, Beobachten |
Holen, Auflisten, Beobachten |
Holen, Auflisten, Beobachten |
<ul><li> |
* |
* |
Holen, Auflisten, Beobachten |
Auf hoher Ebene werden die folgenden Berechtigungen standardmäßig zugewiesen.
Benutzer mit Kubernetes-Admin-/Bearbeitungsberechtigungen
Nur diejenigen mit den Cluster-Admin-, Admin- oder Edit-ClusterRole sollten in der Lage sein:
-
Die Scrape-Konfiguration von Prometheus-Implementierungen über ServiceMonitor- und PodMonitor-CRs zu ändern.
-
Die Alarmierungs-/Aufzeichnungsregeln einer Prometheus-Implementierung über PrometheusRules-CRs zu ändern.
Benutzer mit Kubernetes-Anzeigeberechtigungen
Nur diejenigen, die über einige Kubernetes-ClusterRole verfügen, sollten in der Lage sein:
-
Die Konfiguration von Prometheus-Instanzen, die innerhalb des Clusters bereitgestellt sind, anzuzeigen.
-
Die Konfiguration von Alertmanager-Instanzen, die innerhalb des Clusters bereitgestellt sind, anzuzeigen.
-
Die Scrape-Konfiguration von Prometheus-Implementierungen über ServiceMonitor- und PodMonitor-CRs anzuzeigen.
-
Die Alarmierungs-/Aufzeichnungsregeln einer Prometheus-Implementierung über PrometheusRules-CRs anzuzeigen.
Zusätzliche Überwachungsrollen
Die Überwachung erstellt auch zusätzliche Roles, die standardmäßig nicht Benutzern zugewiesen sind, sondern innerhalb des Clusters erstellt werden. Sie können an einen Namespace gebunden werden, indem ein RoleBinding bereitgestellt wird, das darauf verweist. Um ein RoleBinding mit kubectl anstelle von über Rancher zu definieren, klicken Sie hier.
Administratoren sollten diese Rollen verwenden, um Benutzern einen differenzierteren Zugriff zu gewähren:
| Rolle | Beschreibung |
|---|---|
monitoring-config-admin |
Erlauben Sie Administratoren, Rollen an Benutzer zuzuweisen, um Secrets und ConfigMaps im Namespace cattle-monitoring-system anzeigen/bearbeiten zu können. Das Ändern von Secrets / ConfigMaps in diesem Namespace könnte es Benutzern ermöglichen, die Alertmanager-Konfiguration des Clusters, die Prometheus-Adapter-Konfiguration, zusätzliche Grafana-Datenquellen, TLS-Secrets usw. zu ändern. |
monitoring-config-edit |
Erlauben Sie Administratoren, Rollen an Benutzer zuzuweisen, um Secrets und ConfigMaps im Namespace cattle-monitoring-system anzeigen/bearbeiten zu können. Das Ändern von Secrets / ConfigMaps in diesem Namespace könnte es Benutzern ermöglichen, die Alertmanager-Konfiguration des Clusters, die Prometheus-Adapter-Konfiguration, zusätzliche Grafana-Datenquellen, TLS-Secrets usw. zu ändern. |
monitoring-config-view |
Ermöglichen Sie Administratoren, Rollen an Benutzer zuzuweisen, damit sie Secrets und ConfigMaps im Namespace cattle-monitoring-system anzeigen können. Das Anzeigen von Secrets / ConfigMaps in diesem Namespace könnte es Benutzern ermöglichen, die Alertmanager-Konfiguration, die Konfiguration des Prometheus-Adapters, zusätzliche Grafana-Datenquellen, TLS-Secrets usw. einzusehen. |
monitoring-dashboard-admin |
Ermöglichen Sie Administratoren, Rollen an Benutzer zuzuweisen, damit sie ConfigMaps im Namespace cattle-dashboards bearbeiten / anzeigen können. ConfigMaps in diesem Namespace entsprechen Grafana-Dashboards, die im Cluster gespeichert sind. |
monitoring-dashboard-edit |
Ermöglichen Sie Administratoren, Rollen an Benutzer zuzuweisen, damit sie ConfigMaps im Namespace cattle-dashboards bearbeiten / anzeigen können. ConfigMaps in diesem Namespace entsprechen Grafana-Dashboards, die im Cluster gespeichert sind. |
monitoring-dashboard-view |
Ermöglichen Sie Administratoren, Rollen an Benutzer zuzuweisen, damit sie ConfigMaps im Namespace cattle-dashboards anzeigen können. ConfigMaps in diesem Namespace entsprechen Grafana-Dashboards, die im Cluster gespeichert sind. |
Zuweisung von Überwachungsrollen durch benutzerdefinierte Rollen
Administratoren können im Rancher UI benutzerdefinierte Rollen für Administratoren, Bearbeiten und Anzeigen von Überwachungen zuweisen. Diese "Rollen" werden standardmäßig erstellt, wenn die Monitoring-App installiert wird. Zusätzlich werden diese Rollen auch den entsprechenden Kubernetes-Rollen zugewiesen: Administrator, Bearbeiten und Anzeigen ClusterRoles.
|
Wichtig
Die Benutzeroberfläche bietet keine |
-
Erstellen Sie die benutzerdefinierte Rolle:
1.1 Click **☰ > Users & Authentication > Roles**. 1.2 Select the appropriate tab, e.g., **Cluster** role. Then click **Create Cluster Role**. 1.3 In the **Name** field, create a custom role such as `View Monitoring`, `Edit Monitoring`, or `Admin Monitoring`. 1.4 Click **Inherit From > Add Resource**, then select the Kubernetes role, as applicable, from the dropdown. 1.5 Click **Create**.
-
Weisen Sie die benutzerdefinierte Rolle einem neuen Benutzer zu:
2.1 Click **☰ > Cluster Management > Cluster Explore > Cluster > Cluster Members > Add**. 2.2 Search for your new user name from **Select Member** options displayed. 2.3 Assign the new custom role from **Cluster Permissions** to the new user. 2.4 Click **Create**.
Ergebnis: Der neue Benutzer sollte nun in der Lage sein, die Überwachungstools zu sehen.
Zusätzliche Überwachungs-Clusterrollen
Die Überwachung erstellt auch zusätzliche ClusterRoles, die standardmäßig nicht Benutzern zugewiesen sind, sondern innerhalb des Clusters erstellt werden. Sie werden standardmäßig nicht aggregiert, können jedoch durch Bereitstellung eines RoleBinding oder ClusterRoleBinding, das darauf verweist, an einen Namespace gebunden werden. Um ein RoleBinding mit kubectl anstelle von über Rancher zu definieren, klicken Sie hier.
| Rolle | Beschreibung |
|---|---|
monitoring-ui-view |
Diese ClusterRole ermöglicht Benutzern mit Schreibzugriff auf das Projekt, Metrikdiagramme für den angegebenen Cluster in der Rancher UI anzuzeigen. Dies geschieht, indem externen Monitoring-UIs Lesezugriff gewährt wird. Benutzer mit dieser Rolle haben die Berechtigung, die Endpunkte von Prometheus, Alertmanager und Grafana aufzulisten und GET-Anfragen an die UIs von Prometheus, Alertmanager und Grafana über den Rancher-Proxy zu stellen. |
|
Ein Benutzer, der an die View Monitoring Rancher-Rolle und Lesezugriffsberechtigungen für das Projekt gebunden ist, kann keine Links in der Monitoring UI anzeigen. Sie können dennoch auf externe Monitoring-UIs zugreifen, wenn ihnen Links zu diesen UIs bereitgestellt werden. Wenn Sie Benutzern mit der Rolle View Monitoring und Lesezugriffsberechtigungen für das Projekt Zugriff gewähren möchten, verschieben Sie den |
Rollen und ClusterRoles mit kubectl zuweisen
Verwenden von kubectl create
Eine Methode besteht darin, entweder kubectl create clusterrolebinding oder kubectl create rolebinding zu verwenden, um eine Role oder ClusterRole zuzuweisen. Dies wird in den folgenden Beispielen gezeigt:
-
Einem bestimmten Benutzer zuweisen:
-
clusterrolebinding
-
rolebinding
kubectl create clusterrolebinding my-binding --clusterrole=monitoring-ui-view --user=u-l4npx
kubectl create rolebinding my-binding --clusterrole=monitoring-ui-view --user=u-l4npx --namespace=my-namespace
-
Allen authentifizierten Benutzern zuweisen:
-
clusterrolebinding
-
rolebinding
kubectl create clusterrolebinding my-binding --clusterrole=monitoring-ui-view --group=system:authenticated
kubectl create rolebinding my-binding --clusterrole=monitoring-ui-view --group=system:authenticated --namespace=my-namespace
YAML-Dateien verwenden
Eine weitere Methode besteht darin, Bindungen in YAML-Dateien zu definieren, die Sie erstellen. Sie müssen zuerst die RoleBinding oder ClusterRoleBinding mit einer YAML-Datei konfigurieren. Wenden Sie die Konfigurationsänderungen an, indem Sie den kubectl apply-Befehl ausführen.
-
Rollen: Unten finden Sie ein Beispiel für eine YAML-Datei, die Ihnen hilft,
RoleBindingsin Kubernetes zu konfigurieren. Sie müssen den Namen unten ausfüllen.
|
Namen sind Groß-/Kleinschreibungsempfindlich. |
# monitoring-config-view-role-binding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: monitoring-config-view
namespace: cattle-monitoring-system
roleRef:
kind: Role
name: monitoring-config-view
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: User
name: u-b4qkhsnliz # this can be found via `kubectl get users -A`
apiGroup: rbac.authorization.k8s.io
-
kubectl: Unten finden Sie ein Beispiel für einen
kubectl-Befehl, der verwendet wird, um die Bindung anzuwenden, die Sie in der YAML-Datei erstellt haben. Denken Sie daran, Ihren YAML-Dateinamen entsprechend auszufüllen.kubectl apply -f monitoring-config-view-role-binding.yaml
Benutzer mit Rancher-basierten Berechtigungen
Die Beziehung zwischen den standardmäßigen Rollen, die von Rancher bereitgestellt werden (d.h. cluster-owner, cluster-member, project-owner, project-member), den standardmäßigen Kubernetes-Rollen und den von dem rancher-monitoring-Chart bereitgestellten Rollen ist in der folgenden Tabelle aufgeführt:
| Rancher-Rolle | Kubernetes Role | Monitoring-ClusterRole / Rolle | ClusterRoleBinding oder RoleBinding? |
|---|---|---|---|
cluster-owner |
cluster-admin |
Nicht zutreffend |
ClusterRoleBinding |
cluster-member |
admin |
monitoring-admin |
ClusterRoleBinding |
Projektbesitzer |
admin |
monitoring-admin |
Rollenbindung innerhalb des Projekt-Namespace |
Projektmitglied |
Bearbeiten |
monitoring-edit |
Rollenbindung innerhalb des Projekt-Namespace |
Zusätzlich zu diesen Standardrollen können die folgenden Rancher-Projektrollen Mitgliedern Ihres Clusters zugewiesen werden, um Zugriff auf die Überwachung zu gewähren. Diese Rancher-Rollen sind an ClusterRoles gebunden, die durch das Überwachungs-Chart bereitgestellt werden:
| Rancher-Rolle | Kubernetes ClusterRole | Verfügbar in Rancher ab | Verfügbar in Monitoring v2 ab |
|---|---|---|---|
Überwachung anzeigen* |
2.4.8+ |
9.4.204+ |
|
Ein Benutzer, der an die View Monitoring Rancher-Rolle und Lesezugriffsberechtigungen für das Projekt gebunden ist, kann keine Links in der Monitoring UI anzeigen. Sie können dennoch auf externe Monitoring-UIs zugreifen, wenn ihnen Links zu diesen UIs bereitgestellt werden. Wenn Sie Benutzern mit der Rolle View Monitoring und Lesezugriffsberechtigungen für das Projekt Zugriff gewähren möchten, verschieben Sie den |
Unterschiede in 2.5.x
Benutzer mit den Rollen Projektmitglied oder Projektbesitzer erhalten keinen Zugriff auf Prometheus oder Grafana in Rancher 2.5.x, da wir Grafana oder Prometheus nur auf Cluster-Ebene erstellen.
Darüber hinaus können Projektbesitzer standardmäßig weiterhin nur ServiceMonitors/PodMonitors hinzufügen, die Ressourcen innerhalb des Projekt-Namespace abfragen, während PrometheusRules nicht auf einen einzelnen Namespace bzw. ein Projekt beschränkt sind. Daher werden alle Alarmregeln oder Aufzeichnungsregeln, die von Projektbesitzern innerhalb ihres Projekt-Namespace erstellt werden, im gesamten Cluster angewendet, obwohl sie keine Regeln anzeigen, bearbeiten oder löschen können, die außerhalb des Projekt-Namespace erstellt wurden.
Zusätzlichen Zugriff zuweisen
Wenn Cluster-Administratoren Benutzern außerhalb der von dem Rancher-Überwachungs-Chart angebotenen Rollen zusätzlichen Admin-/Bearbeitungszugriff gewähren möchten, identifiziert die folgende Tabelle die potenziellen Auswirkungen:
| CRDs (monitoring.coreos.com) | Kann es Auswirkungen außerhalb eines Namensraums / Projekts haben? | Auswirkung |
|---|---|---|
|
Ja, diese Ressource kann Metriken von beliebigen Zielen im gesamten Cluster abfragen (es sei denn, der Operator selbst ist anders konfiguriert). |
Der Benutzer kann die Konfiguration neuer clusterweiter Prometheus-Implementierungen definieren, die im Cluster erstellt werden sollen. |
|
Nein |
Der Benutzer kann die Konfiguration neuer clusterweiter Alertmanager-Implementierungen definieren, die im Cluster erstellt werden sollen. Hinweis: Wenn Sie nur Benutzern erlauben möchten, Einstellungen wie Routen und Empfänger zu konfigurieren, sollten Sie stattdessen nur Zugriff auf das Alertmanager Config Secret gewähren. |
<ul><li> |
Nein, nicht standardmäßig; dies ist über |
Der Benutzer kann Scrapes von Prometheus an Endpunkten einrichten, die von Services/Pods innerhalb des Namespace bereitgestellt werden, in dem ihm diese Berechtigung erteilt wurde. |
|
Ja, PrometheusRules sind clusterweit. |
Der Benutzer kann Alarm- oder Aufzeichnungsregeln auf Prometheus basierend auf beliebigen Serien definieren, die im gesamten Cluster gesammelt werden. |
| k8s-Ressourcen | Namespace | Kann es Auswirkungen außerhalb eines Namensraums / Projekts haben? | Auswirkung |
|---|---|---|---|
<ul><li> |
|
Ja, Konfigurationen und Geheimnisse in diesem Namensraum können die gesamte Überwachungs- / Alarmpipeline beeinflussen. |
Der Benutzer kann Geheimnisse / ConfigMaps wie die Alertmanager-Konfiguration, die Prometheus-Adapterkonfiguration, TLS-Geheimnisse, zusätzliche Grafana-Datenquellen usw. erstellen oder bearbeiten. Dies kann weitreichende Auswirkungen auf die gesamte Clusterüberwachung / -alarmierung haben. |
<ul><li> |
|
Ja, Konfigurationen und Geheimnisse in diesem Namensraum können Dashboards erstellen, die Abfragen zu allen Metriken durchführen, die auf Cluster-Ebene gesammelt werden. |
Der Benutzer kann Geheimnisse / ConfigMaps erstellen, die nur neue Grafana-Dashboards speichern. |
Rollenbasierte Zugriffskontrolle für Grafana
Rancher ermöglicht es allen Benutzern, die von Kubernetes authentifiziert sind und Zugriff auf den von dem Rancher Monitoring-Chart bereitgestellten Grafana-Dienst haben, über die Rancher Dashboard-Benutzeroberfläche auf Grafana zuzugreifen. Standardmäßig erhalten alle Benutzer, die auf Grafana zugreifen können, die Rolle Viewer, die es ihnen ermöglicht, alle von Rancher bereitgestellten Standard-Dashboards anzuzeigen.
Benutzer können jedoch wählen, sich bei Grafana als Admin anzumelden, wenn dies erforderlich ist. Der Standard-Admin-Benutzername und das Passwort für die Grafana-Instanz werden admin/prom-operator sein, aber alternative Anmeldeinformationen können auch beim Bereitstellen oder Aktualisieren des Charts bereitgestellt werden.
Um die Grafana-Benutzeroberfläche zu sehen, installieren Sie rancher-monitoring. Dann:
-
Klicken Sie in der oberen linken Ecke auf ☰ > Clusterverwaltung.
-
Gehen Sie auf der Clusters-Seite zu dem Cluster, in dem Sie die Visualisierungen sehen möchten, und klicken Sie auf Erforschen.
-
Klicken Sie in der linken Navigationsleiste auf Monitoring.
-
Klicken Sie auf Grafana.