Erlaubt ist, was keiner verboten hat

Nach dem STRICT-Umbau aus der letzten Folge ist jede Verbindung im Mesh verschlüsselt und beidseitig authentifiziert. Klingt nach Ziel erreicht. Nur: Jeder Workload darf immer noch mit jedem reden.

Datum
Thema
AuthorizationPolicy
Quellen
3
Lesezeit
2 Min.

mTLS beantwortet die Identitätsfrage. Autorisiert ist damit gar nichts. Solange keine AuthorizationPolicy existiert, lässt Istio jeden authentifizierten Aufruf durch. Der Abrechnungs-Service darf den Admin-Endpoint des Nachbarteams aufrufen, sauber verschlüsselt, mit gültigem Zertifikat. Das Audit-Log sieht vorbildlich aus, die Segmentierung fehlt trotzdem komplett.

Grafik: OMNI52 Abbildung in voller Größe öffnen
Abbildung als Text

Die AuthorizationPolicy-Evaluation als Flussdiagramm in drei Schritten: ein authentifizierter Request durchläuft erst CUSTOM (externe Autorisierung, falls konfiguriert), dann DENY (explizite Verbote, ein Treffer beendet alles), dann ALLOW (Positivliste, wenn eine existiert). Rot markiert der stille Default: existiert keine ALLOW-Policy, bleibt der Request erlaubt und läuft an der gesamten Prüfung vorbei. Darunter das Muster (leere ALLOW-Policy pro Namespace dreht den Default auf Deny) und die Falle (nur gestapelte DENY-Policies setzen keinen Default).

Die Evaluationslogik in drei Schritten: Erst laufen CUSTOM-Policies (externe Autorisierung), dann alle DENY-Policies, dann die ALLOW-Policies. Trifft ein DENY, ist Schluss. Existiert für den Workload keine ALLOW-Policy, wird erlaubt. Existiert mindestens eine und keine passt, wird abgelehnt.

Im letzten Satz steckt das Muster: Eine leere ALLOW-Policy pro Namespace, ganz ohne Regeln, matcht nichts und dreht den Default damit auf Deny. Ab dann ist jeder erlaubte Pfad eine bewusste, lesbare Entscheidung. Die typische Falle geht andersherum: Wer nur DENY-Policies stapelt, verbietet Einzelfälle und hat weiter keinen Default. Alles ohne DENY-Treffer bleibt offen.

Die Ownership-Frage kennt ihr aus Post 4 und 6, sie gilt hier unverändert: Policies mit lokaler Wirkung gehören dem Tenant, der weiß, wer seinen Service rufen darf. Der mesh-weite Default gehört der Plattform.

Für Entscheider: Eine Firewall, die per Default alles durchlässt, würde im Netzwerk-Review niemand abnehmen. Im Mesh steht genau dieser Zustand oft jahrelang in Produktion, mit Compliance-Haken obendrauf.

Verboten ist, was jemand verboten hat. Der Rest läuft.

Ehrliche Frage in die Runde: Wie viele eurer Namespaces hätten heute schon eine Default-Deny-Policy, wenn ihr jetzt nachschaut?

Über den Autor

Porträt von Uli Renz

Uli Renz baut und härtet seit Istio 1.4 Service Meshes in streng regulierten Enterprise-Umgebungen. Die Muster in diesen Reports stammen aus dieser Arbeit.

Läuft dein Mesh schon in Produktion, ist der Posture Check der Einstieg: 13 Prüfbereiche, jeder Befund mit Schweregrad und Config-Beleg. In 90 Minuten gehen wir die Liste gemeinsam durch.

Strategiegespräch anfragen