Audit & Compliance¶
Übersicht¶
Die Polycrate API bietet Funktionen, die für Audit-Trails, Compliance-Anforderungen und forensische Analysen relevant sind. Administratoren, IT-Leiter und Compliance Officers können nachvollziehen, wer wann welche Aktionen ausgeführt hat und über welche Kanäle Ressourcen erstellt wurden.
CLI Activity Audit¶
Was wird protokolliert?¶
Die Polycrate CLI sendet bestimmte Aktivitäten an die API, die dort persistiert werden:
| Aktivität | Trigger | Gespeicherte Daten |
|---|---|---|
| SSH-Session | polycrate ssh (Start und Ende) | Host, Workspace, Benutzer, Dauer, Exit-Code |
| Workspace-Sync | polycrate workspace sync / polycrate git sync | Workspace, Branch, Commit, Sync-Ergebnis, Benutzer |
Voraussetzungen¶
- Authentifizierung: Der Benutzer muss mit einem gültigen API-Token angemeldet sein. Nur authentifizierte Aktivitäten werden protokolliert.
- CLI-Konfiguration: API-Integration muss aktiviert sein (
api.enabled: true,api_keygesetzt)
Nutzen für Compliance¶
- Vollständiger Audit-Trail: Wer hat wann welche Hosts per SSH betreten? Wer hat Workspace-Syncs ausgeführt?
- User-Zuordnung: Jede Aktivität ist einem Benutzer zugeordnet (
created_by) – keine anonymen Aktionen - Ressourcen-Verknüpfung: SSH-Sessions sind mit Host und Workspace verknüpft; Workspace-Syncs mit dem betroffenen Workspace
Wo einsehbar?¶
Aktivitäten erscheinen in der Activity-Übersicht der Polycrate API. Über die API können sie gefiltert und exportiert werden (z. B. für Compliance-Reports).
created_by_component¶
Was bedeutet das?¶
Jedes ManagedObject (z. B. S3-Bucket, K8sApp, Credential) speichert, über welchen Kanal es erstellt wurde:
| Wert | Bedeutung |
|---|---|
| CLI | Über die Polycrate CLI (z. B. Workspace-Sync erstellt Bucket) |
| Operator | Durch den Polycrate Operator (z. B. Kubernetes-Ressourcen) |
| API | Über die Web-Oberfläche oder REST-API (manuell durch Benutzer) |
Nutzen für Compliance¶
- Quellen-Analyse: „Alle Buckets, die via CLI erstellt wurden“ – z. B. für Automatisierungs-Audits
- Manuelle vs. automatisierte Änderungen: Unterscheidung zwischen manueller Konfiguration und Infrastructure-as-Code
- Reporting: Filter und Reports nach Erstellungsquelle möglich
Wo einsehbar?¶
- Listen-Ansichten: Filter „Created by component“ (CLI, Operator, API)
- Detail-Ansichten: Spalte bzw. Feld „Created by component“ in den Object-Details
- API: Filter
created_by_componentbei allen ManagedObject-Listen
Authentifizierungs-Audit¶
Alle Authentifizierungs-Events werden geloggt:
| Event | Geloggte Daten |
|---|---|
| Login (SSO) | Benutzer, IP, Zeitpunkt, Provider |
| API-Key erstellt | Benutzer, Key-Name, Zeitpunkt |
| API-Key verwendet | Key-ID, Endpoint, IP, Zeitpunkt |
| API-Key widerrufen | Benutzer, Key-ID, Zeitpunkt |
| Fehlgeschlagener Login | IP, Zeitpunkt, Grund |
Optionale Lifecycle-Activities (ab 0.14.3)¶
Creation-, Deletion- und State-Change-Activities können seit Version 0.14.3 über die System-Konfiguration ein- und ausgeschaltet werden. Standardmäßig sind sie deaktiviert, um Datenbank- und Cleanup-Last zu reduzieren (insbesondere in Dev-Umgebungen).
SystemConfig-Einstellungen¶
| Setting | Default | Beschreibung |
|---|---|---|
| Create Creation Activities | aus | Activity bei Objekt-Erstellung |
| Create Deletion Activities | aus | Activity bei Objekt-Löschung |
| Create State Change Activities | aus | Activity bei Status-/State-Änderung |
Erreichbar unter: System Konfiguration → Kategorie Timing & Policy Settings.
Aufräumen bestehender Activities¶
Management Command zum Löschen alter Activities (z. B. für Prod-Cleanup):
# Dry-Run: creation, deletion, state_changed älter als 7 Tage
python manage.py delete_old_activities 7 --kind creation,deletion,state_changed --dry-run
# Tatsächlich löschen (mit Bestätigung)
python manage.py delete_old_activities 7 --kind creation,deletion,state_changed
# Alle Activities älter als 30 Tage (ohne Kind-Filter)
python manage.py delete_old_activities 30 --no-confirm
Block-Config: clear_activities¶
Der polycrate-api Block unterstützt eine optionale clear_activities-Sektion in block.config. Wenn aktiviert, führt der Block vor dem Migrate-Job automatisch delete_old_activities aus.
clear_activities:
enabled: false
dry_run: false
older_than_days: 7
kinds: "creation,deletion,state_changed"
batch_size: 5000
Action-Run-Tracking¶
Vollständige Historie aller CLI-Ausführungen:
- Wer hat welche Action wann in welchem Workspace ausgeführt?
- Exit-Codes, Logs, Dauer
- Kein manuelles Nachtragen nötig – die CLI sendet automatisch
Prometheus-Metriken für Monitoring¶
Die API stellt unter /api/v1/metrics Prometheus-kompatible Metriken bereit. Diese können für Monitoring, Kapazitätsplanung und Compliance-Dashboards genutzt werden (z. B. VictoriaMetrics, Grafana).