Zum Inhalt springen

Rezept: Least-Privilege-Drift triagieren

Ziel: das Drift-Ergebnis — die Lücke zwischen dem, was Agents tun dürfen, und dem, was beobachtet wird — in Entscheidungen überführen, im festen Takt, bis der Diff still ist.

Bei einer frischen Installation ist accessmap deaktiviert. Aktivieren Sie accessmap als Administrator unter Settings > Edition & modules und lassen Sie die anderen ausgewählten Module an. Für die CLI melden Sie sich zuerst mit olivares login als Administrator bei dieser Engine an und führen dann olivares modules on accessmap aus. Warten Sie vor dem Fortfahren auf jeden Neustart der Engine; laufende Sessions werden gestoppt und können fortgesetzt werden. Andernfalls geben diese API-Aufrufe 404 module_not_enabled zurück.

Terminal-Fenster
curl -ks "$BASE/v1/m/accessmap/drift" \
-H "Authorization: Bearer $TOKEN" -H "X-Olivares-Tenant: $TENANT" | python3 -m json.tool

(Oder in HCL, zur Prüfung in einem PR: die Terraform-Data-Source olivares_access_edges mit include_drift = true — as Code verwalten.)

Das Ergebnis hat drei Klassen, und das sind unterschiedliche Probleme:

Klasse Bedeutung Die zu stellende Frage
Unerwarteter Zugriff beobachtet, aber kein Grant deckt ihn ab fehlt ein Grant, oder ist das eine echte Verletzung?
Ungenutzter Grant gewährt, nie beobachtet ausgeübt warum existiert diese Berechtigung?
Reconciliation ausstehend beobachtet, aber die Verknüpfung Agent↔Identität ist ungelöst ein Identitätsproblem, (noch) kein Sicherheitsproblem

Unerwarteter Zugriff — lies die Honesty-Achsen der Kante, bevor du handelst:

  • attribution_tier: firm + coverage_tier: clean ist das hochwertigste Finding, das du bekommen wirst: eine konkrete Identität hat eine konkrete Ressource angefasst, und das eigene Audit des Stores hat es klassifiziert. Entscheide: ist er legitim, deklariere den Grant (Policy oder Binding), damit die Map die Absicht widerspiegelt; wenn nicht, entziehe den zugrunde liegenden Zugriff und behandle es als Vorfall.
  • approximate Attribution bedeutet, dass der Zugriff stattfand, das Wer aber eine geteilte Credential ist. Verschwende keine Untersuchung auf „welcher Agent war es” — die dauerhafte Lösung ist Per-Agent-Identität, und bis dahin sagt die Kante ehrlich, was sie nicht beweisen kann.
  • Eine Kante, die nur auf einem mcp_annotation-Hinweis ruht, ist kein Beweis — der Hinweis ist laut Spezifikation nicht vertrauenswürdig. Bestätige ihn über eine beobachtete Quelle, bevor du irgendetwas entscheidest.

Ungenutzte Grants sind kostenlos gefundenes Over-Provisioning: jeder ist ein Kandidat für eine Revokation, mit dem Vorbehalt, dass die Abwesenheit von Beobachtung nur dort aussagekräftig ist, wo Coverage existiert — prüfe den Coverage-Tier der Ressource, bevor du feierst (gestufte Coverage).

Reconciliation ausstehend wird ins Identitäts-Backlog geleitet: verdrahte oder korrigiere die Roster-Quelle, die diese Credential binden sollte, und die Kante löst sich beim nächsten Durchlauf auf.

Triff die Entscheidung dort, wo sie governt wird: deklariere Grants als Code (Terraform) oder über die governte API, gate die riskante Richtung hinter einer Genehmigung, und lass das Ledger festhalten, wer was entschieden hat. Dann ziehe den Drift erneut: reconcilierte Kanten fallen aus dem Diff heraus — nur echte Lücken bleiben. Diese Konvergenz ist der ganze Sinn; das Demo-Estate zeigt sie im Kleinen (Quickstart).

In der Konsole ist das Panel Permitted vs observed der Access Map dieses Rezept live gerendert.

Drift-Triage funktioniert als kurze wöchentliche Schleife plus ein Alarmpfad für die signalstarke Klasse (firm + clean unerwartete Writes). Leite diese Findings über ein Benachrichtigungsziel an deinen Bereitschaftsdienst, statt auf den wöchentlichen Durchlauf zu warten.