Wazuh Cross-Cluster Search (CCS): Warum ein klassischer Read-Only-User nicht ausreicht und welche RBAC-Rollen wirklich benötigt werden

Einleitung

Cross-Cluster Search (CCS) ermöglicht es, mehrere Wazuh-Cluster zentral über einen Wazuh-Indexer abzufragen und die aggregierten Daten im Dashboard darzustellen. Gerade in Multi-Site- oder Mandanten-Umgebungen ist CCS ein essenzieller Baustein für zentrale Security-Analysen, SOC-Betrieb und konsolidierte Incident-Response-Prozesse.

In der Praxis zeigt sich jedoch häufig ein Problem: Ein nach Dokumentation erstellter Read-Only-User kann sich zwar am Dashboard anmelden, erhält jedoch Fehler beim Laden von Indizes oder beim Zugriff auf entfernte Cluster. Dieser Beitrag analysiert die Ursache und zeigt, welche RBAC-Konfiguration für CCS tatsächlich erforderlich ist.


Ausgangslage / Problemstellung

In einer bestehenden Multi-Cluster-Umgebung wurde Cross-Cluster Search gemäß offizieller Anleitung eingerichtet:

  • Mehrere Wazuh-Cluster (Remote Cluster)
  • Zentrale CCS-Instanz
  • Indexer-Cluster mit aktivierter Cross-Cluster-Konfiguration
  • Dashboard-Zugriff über einen dedizierten Benutzer

Ziel war es, einen Benutzer mit ausschließlich lesenden Berechtigungen (Read-Only) einzurichten – entsprechend der offiziellen RBAC-Dokumentation.

Symptom:

  • Anmeldung am Wazuh-Dashboard funktioniert
  • Beim Zugriff auf Alerts oder andere Indizes erscheint ein Fehler
  • Indizes aus Sub-Clustern werden nicht geladen
  • CCS-Abfragen schlagen fehl

Erste Analyseannahme: Der Benutzer hat keine ausreichenden Rechte auf die Remote-Cluster-Indizes.

Diese Annahme ist korrekt – aber mit einer wichtigen architektonischen Einschränkung.


Technische Analyse

Warum ein Standard-Read-Only-User bei CCS scheitert

In einer Single-Cluster-Umgebung reicht ein klassischer Read-Only-User mit folgenden Index-Rechten typischerweise aus:

  • Index Pattern: *
  • Berechtigungen:
    • read
    • indices:data/read/search

In einer CCS-Architektur sieht die Situation jedoch anders aus.

Architekturhintergrund

Bei Cross-Cluster Search läuft die Anfrage technisch wie folgt:

  1. Der Benutzer authentifiziert sich am zentralen Wazuh-Dashboard.
  2. Das Dashboard führt die Suchanfrage gegen den lokalen Wazuh-Indexer aus.
  3. Der Indexer leitet die Anfrage an konfigurierte Remote-Cluster weiter.
  4. Die Ergebnisse werden aggregiert zurückgegeben.

Entscheidend:
Die Berechtigungen müssen nicht nur lokal greifen, sondern auch für die Cross-Cluster-Operation selbst ausreichen.

OpenSearch (und damit der Wazuh Indexer) prüft bei CCS:

  • Cluster-Level-Permissions
  • Index-Level-Permissions
  • Backend-Rollen-Mapping
  • Kibana/Dashboard-Zugriffsrechte

Ein reiner Read-Only-Role-Mapping-Ansatz gemäß Basisdokumentation ist für CCS nicht ausreichend.

Warum „read + search“ nicht genügt

Cross-Cluster-Operationen benötigen intern zusätzliche Rechte, insbesondere:

  • Zugriff auf Cluster-Metadaten
  • Berechtigungen für Remote-Index-Resolution
  • Dashboard-spezifische Rechte (kibanauser)

Ein minimal konfigurierter Read-Only-User besitzt diese Rechte nicht, weshalb:

  • Remote-Indizes nicht aufgelöst werden
  • Index-Muster nicht geladen werden
  • Dashboard-Visualisierungen fehlschlagen

Das Problem liegt also nicht in der reinen Index-Berechtigung, sondern im fehlenden Rollen-Mapping für CCS-relevante Operationen.


Lösung / Best Practices

Empfohlene Lösung für CCS-Umgebungen

Für Benutzer, die Cross-Cluster Search nutzen sollen (auch read-only), müssen zusätzliche Backend-Rollen vergeben werden.

Bewährte Konfiguration:

  1. Neuen internen Benutzer erstellen
  2. Backend-Rollen zuweisen:
    • readall
    • kibanauser

Diese Rollen stellen sicher:

  • Vollständiger Lesezugriff auf alle Indizes
  • Zugriff auf Cluster-Metadaten
  • Dashboard-Funktionalität
  • Kompatibilität mit CCS-Operationen

Umsetzungsschritte

  1. Im Wazuh Dashboard zu: Security → Internal users → Create internal user
  2. Benutzername und Passwort festlegen
  3. Backend Roles hinzufügen: readall
    kibanauser
  4. Benutzer speichern
  5. Optional:
    • Browser-Cache löschen
    • Inkognito-Fenster verwenden
    • Neue Anmeldung durchführen

Nach dieser Anpassung funktionieren CCS-Abfragen erwartungsgemäß.


Lessons Learned / Best Practices

1. CCS ist kein reines Index-Feature

Cross-Cluster Search erfordert:

  • Cluster-Level-Rechte
  • Metadata-Zugriff
  • Dashboard-spezifische Rollen

RBAC muss diese Architektur berücksichtigen.


2. Multi-Site-Umgebungen erfordern erweiterte Rollenmodelle

In Multi-Site-Implementierungen empfiehlt es sich:

  • Rollen getrennt für:
    • Lokale Cluster
    • Remote Cluster
    • Zentrale CCS-Instanz
  • Rollenvererbung klar zu dokumentieren
  • Backend-Rollen statt reinem Index-Mapping zu verwenden

3. „Least Privilege“ muss CCS-fähig gedacht werden

Ein klassischer Least-Privilege-Ansatz kann in CCS-Umgebungen zu Funktionsverlust führen.

Empfehlung:

  • Technische Mindestanforderungen zuerst erfüllen
  • Danach granular einschränken
  • CCS-Funktionalität immer gegen Remote-Indizes testen

4. Rolle „readall“ ist in CCS-Setups oft technisch notwendig

Auch wenn der Name nach umfassendem Zugriff klingt, ist diese Rolle in vielen CCS-Szenarien notwendig, um:

  • Remote-Indizes korrekt aufzulösen
  • Aggregierte Suchanfragen durchzuführen
  • Dashboard-Visualisierungen stabil zu laden

Eine reine Index-spezifische Read-Only-Rolle reicht nicht aus.


Fazit

In Wazuh-Umgebungen mit Cross-Cluster Search funktioniert ein klassischer Read-Only-User gemäß Standard-RBAC-Dokumentation nicht zuverlässig.

CCS benötigt zusätzliche Cluster- und Dashboard-Rechte, die durch die Backend-Rollen readall und kibanauser bereitgestellt werden.

Wer Multi-Cluster-Architekturen betreibt, sollte RBAC nicht isoliert betrachten, sondern im Kontext von:

  • OpenSearch-Security
  • Cluster-Level-Operationen
  • Dashboard-Interaktionen
  • Remote-Index-Auflösung

Nur so lässt sich ein stabiler, sicherer und funktionaler Multi-Site-Betrieb gewährleisten.


Quellen

Managing multiple Wazuh clusters with Cross-Cluster Search
https://wazuh.com/blog/managing-multiple-wazuh-clusters-with-cross-cluster-search/

Wazuh RBAC – Creating and setting a read-only user
https://documentation.wazuh.com/current/user-manual/user-administration/rbac.html#creating-and-setting-a-wazuh-read-only-user

Wazuh Multi-Site Implementation
https://wazuh.com/blog/wazuh-multi-site-implementation/

OpenSearch – Defining users and roles
https://opensearch.org/docs/latest/security/access-control/users-roles/

OpenSearch – Permissions
https://opensearch.org/docs/latest/security/access-control/permissions/


Mehr zu Wazuh …
https://wazuh.com/?utm_source=ambassadors&utm_medium=referral&utm_campaign=ambassadors+program

Mehr zum Wazuh Ambassador Program …
https://wazuh.com/ambassadors-program/?utm_source=ambassadors&utm_medium=referral&utm_campaign=ambassadors+program

https://wazuh.slack.com/archives/C07BZJY86G3/p1770011964180369