Janus. Multi-Tenant-Observability ohne Grenzverletzungen

Open Source, von uns gebaut und für alle kostenlos.

Jede Nutzerin und jeder Nutzer sieht genau das, was sie oder er sehen soll, und nicht mehr. Janus ist der Open-Source-Multi-Tenant-Proxy von evoila für Prometheus, Loki und Tempo. Er erzwingt label-basierte Zugriffskontrolle und Query-Richtlinien zwischen Ihren Nutzerinnen und Nutzern und Ihrem Observability-Stack, transparent am Gateway und ohne Ihre Backends zu berühren.

Geteilte Plattformen leaken. Janus hält die Stellung.

Gemeinsam genutzte Observability-Plattformen sind mächtig, bis eine Entwicklerin oder ein Entwickler Metriken eines Teams abfragt, dem sie oder er nicht angehört, oder ein Service-Account Logs über Mandantengrenzen hinweg leakt. Janus sitzt als transparenter Security-Proxy zwischen Ihren Nutzerinnen und Nutzern und Ihrem Observability-Stack. Er validiert Identität, löst Richtlinien auf und erzwingt label-basierten Zugriff, bevor auch nur eine einzige Query Prometheus, Loki oder Tempo erreicht. Er ist Open Source, auf Spring WebFlux für reaktive Performance aufgebaut und darauf ausgelegt, sich in ein bestehendes Observability-Deployment einzufügen, ohne den Stack darum herum neu zu bauen.

  • 3 Backends: Prometheus, Loki & Tempo in einem Proxy
  • Zero Trust: jede Query durchgesetzt, keine Ausnahmen
  • Open Source: GNU AGPLv3.0, community-getrieben

Technischer Deep Dive

Wie Janus den Zugriff durchsetzt, bevor eine Query ankommt

Every inbound request passes through a three-stage pipeline inside Janus. First comes authentication. A JWT token or forwarded authentication header is validated and the caller identity is resolved. Second comes policy resolution. The access rules for that identity are loaded, including which label values the caller is allowed to read. Third comes query enforcement. The request is parsed, required label selectors are injected or validated and the rewritten request is sent to the relevant backend. The response then passes back transparently. To the calling tool, Janus stays invisible.

Das Laufzeitmodell ist reaktiv und nicht blockierend, da Janus auf Spring WebFlux basiert. Das bedeutet, dass keine Threads untätig sind, während Backends antworten, die Skalierung unkompliziert bleibt und der Proxy unter Last zustandslos bleibt. Zugriffsrichtlinien werden beim Start aus einer Konfigurationsquelle geladen und können ohne Ausfallzeiten neu geladen werden.

Entdecken Sie Janus auf GitHub


In jede Ebene der Anfrage integrierte Zugriffskontrolle

JWT und Header-Authentifizierung

Die Identität des Aufrufers wird anhand von JWT-Claims oder weitergeleiteten Authentifizierungs-Headern ermittelt. Dies lässt sich nahtlos in bestehende OAuth2-basierte Identitätskonfigurationen integrieren, ohne dass ein separates Authentifizierungsmodell erforderlich ist.

Auf Labels basierende Zugriffsrichtlinien

In den Richtlinien wird festgelegt, welche Label-Werte ein Aufrufer lesen darf, beispielsweise „namespace“, „service“, „pod“, „team“ oder beliebige benutzerdefinierte Labels, die bereits im Stack verwendet werden.

Automatische Umformulierung von Abfragen

Erforderliche Label-Selektoren werden vor der Weiterleitung in PromQL-, LogQL- und TraceQL-Abfragen eingefügt. Die Durchsetzung hängt nicht von der Disziplin auf Client-Seite ab.

Reaktiver, nicht blockierender Kern

Spring WebFlux bildet die Grundlage für einen zustandslosen, horizontal skalierbaren Proxy, der bei Produktionsauslastung einen Overhead im Sub-Millisekunden-Bereich bei Abfragepfaden verursacht.

Unterstützte Backends: ein Proxy, vollständige Stack-Abdeckung

Janus setzt Zugriffsrichtlinien für Prometheus, Loki und Tempo in einer einzigen Bereitstellung durch. Sie benötigen weder einen separaten Proxy für jedes Backend noch separate Richtlinienmodelle pro Tool oder unterschiedliche Durchsetzungslogik für Metriken, Protokolle und Traces. Ein einziges Gateway reicht für den gesamten Stack aus.

Was dies für Ihre Plattform bedeutet

Praktische Auswirkungen in Ihrem gesamten Unternehmen

Eine Plattform, viele Teams

Betreiben Sie eine einzige Prometheus-, Loki- und Tempo-Bereitstellung für Ihr gesamtes Unternehmen. Janus sorgt für die Isolierung der Mandanten, ohne dass separate Stacks pro Team erforderlich sind.

Prüfungsfähige Zugriffskontrolle

Jede ausgeführte und jede abgelehnte Abfrage lässt sich einer Identität zuordnen. Verstöße gegen Zugriffsrichtlinien werden mit dem vollständigen Kontext protokolliert, genau so, wie es Compliance-Prüfungen erfordern.

Es sind keine Änderungen am Backend erforderlich

Janus wird vor der bestehenden Infrastruktur bereitgestellt. Es sind keine Änderungen an der Scrape-Konfiguration und keine Überarbeitung der Log-Pipeline erforderlich. Integrieren Sie es einfach in Ihren Stack und konfigurieren Sie die Richtlinien.

Open Source, immer

MIT-Lizenz ohne Enterprise-Stufe und ohne Funktionsbeschränkungen. Beiträge sind willkommen, der Zugang ist frei.

Möchten Sie über Janus in Ihrer Anwendungsumgebung sprechen?

Ganz gleich, ob Sie erfahren möchten, wie sich Janus in Ihre Observability-Plattform einfügt, Fragen zur mandantenfähigen Zugriffskontrolle besprechen oder sich ein konkretes Einsatzszenario ansehen möchten, wenden Sie sich gerne an uns. Wir leiten Sie an den richtigen Experten weiter.

FAQs

Häufig gestellte Fragen zu Janus