# Audit-Protokoll und Berechtigungen

{/* AUTO-SYNCED SOURCE: this page lives in apps/app/src/modules/credentials/docs/ and is mirrored into the docs app by `bun sync:module-docs`. Edit it in the module, not in apps/docs. */}
<Lead>
Vertrauen entsteht durch Nachvollziehbarkeit: Der Tresor protokolliert jede Aktion mit Wer, Wann und Warum, ohne jemals ein Geheimnis im Klartext zu speichern. Hier steht, was genau im Protokoll landet, wo du es findest und welche Rolle was darf.
</Lead>

## Was protokolliert wird

Jede dieser Aktionen erzeugt einen Protokoll-Eintrag:

- **Anlegen, Bearbeiten, Löschen** eines Eintrags
- **Anzeigen** eines Geheimnisses, bei der Stufe Sensibel inklusive des angegebenen Grunds
- **Teilen** im Team sowie das Erzeugen und Widerrufen **externer Links**, inklusive des Pflicht-Grunds
- **Import** von Einträgen aus CSV
- **Einrichten und Deaktivieren der Tresor-2FA**
- **Speichern der Team-Richtlinien**
- **Befüllen einer Mitarbeiter-Zugänge-Vorlage**

Gespeichert werden dabei nur Metadaten: welche Person, welcher Eintrag, welche Aktion, wann, und falls angegeben der Grund. **Klartext-Geheimnisse tauchen im Protokoll nie auf.** Genau darauf weist auch der Anzeigen-Dialog hin: **Jeder Zugriff wird protokolliert (Wer, Wann, Warum).**

## Wo du das Protokoll findest

Der Tresor hat keine eigene Audit-Ansicht. Alle Einträge landen im **zentralen Audit-Log deines Workspace** unter **Einstellungen > Aktivität** (`/settings/activity`), gemeinsam mit den Aktivitäten aller anderen Tools. Diese Ansicht ist Inhaber:innen und Admins vorbehalten.

## Webhook-Events

Wenn ihr Tresor-Ereignisse in eigene Systeme weiterleiten wollt, könnt ihr sie unter **Einstellungen > Webhooks** (`/settings/webhooks`) pro Endpoint abonnieren. Der Tresor löst diese Events aus:

| Event | Bedeutung |
|---|---|
| `credential.created` | Zugang angelegt: Ein neuer Zugangsdaten-Eintrag wurde erstellt. |
| `credential.updated` | Zugang bearbeitet: Ein Zugangsdaten-Eintrag wurde geändert. |
| `credential.deleted` | Zugang gelöscht: Ein Zugangsdaten-Eintrag wurde entfernt. |
| `credential.shared` | Zugang intern geteilt: Ein Zugang wurde mit Team-Mitgliedern geteilt. |
| `credential.external_shared` | Zugang extern geteilt: Ein Zugang wurde per externem Link geteilt. |
| `credential.revealed` | Zugang aufgedeckt: Ein Geheimnis wurde im Klartext angezeigt. |
| `credential.imported` | Zugänge importiert: Zugangsdaten wurden importiert. |
| `credential.template_provisioned` | Vorlage bereitgestellt: Eine Zugangsdaten-Vorlage wurde eingerichtet. |

Auch in Webhook-Payloads stecken nur Metadaten, nie das Geheimnis selbst.

## Rollen und Rechte

Die Plattform kennt die Rollen **Inhaber:in**, **Admin**, **Mitglied** und **Beobachter:in**. In der Tabelle unten heißen sie Owner, Admin, Employee (= Mitglied) und External Viewer (= Beobachter:in). Die Inhaber:in hat immer alle Rechte. "Eingeschränkt" bedeutet: nur für eigene bzw. selbst verwaltete Einträge.

<PermissionTable
  caption="Standard-Berechtigungen im Zugangsdaten-Tresor"
  roles="tenant_owner,tenant_admin,employee,external_viewer"
>
  <Permission
    action="tools.use.credentials"
    label="Tresor öffnen"
    description="Das Tool sehen und die Eintragsliste nutzen."
    allow="yes,yes,yes,no"
  />
  <Permission
    action="credentials.read.all"
    label="Alle geteilten Einträge sehen"
    description="Mitglieder sehen sonst nur eigene und für sie freigegebene Einträge."
    allow="yes,yes,scoped,no"
  />
  <Permission
    action="credentials.create"
    label="Einträge anlegen und importieren"
    description="Neue Zugänge anlegen, CSV-Import nutzen, Vorlagen befüllen."
    allow="yes,yes,yes,no"
  />
  <Permission
    action="credentials.update"
    label="Einträge bearbeiten"
    description="Mitglieder bearbeiten ihre eigenen Einträge über den dauerhaften Ersteller-Zugriff."
    allow="yes,yes,scoped,no"
  />
  <Permission
    action="credentials.delete"
    label="Einträge löschen (Papierkorb)"
    allow="yes,yes,no,no"
  />
  <Permission
    action="credentials.share"
    label="Teilen (intern und extern)"
    description="Gilt jeweils nur für Einträge, die man selbst verwaltet."
    allow="yes,yes,scoped,no"
  />
  <Permission
    action="credentials.manage_groups"
    label="Gruppen verwalten"
    allow="yes,yes,no,no"
  />
  <Permission
    action="credentials.admin"
    label="Tresor-Richtlinien speichern"
    allow="yes,yes,no,no"
  />
</PermissionTable>

<Info title="Persönliche Einträge bleiben persönlich">
Auch das Recht, alle Einträge zu sehen, umfasst nur geteilte Einträge. Einträge mit Sichtbarkeit **Persönlich** sieht ausschließlich die Person, die sie angelegt hat; technisch ausgenommen ist allein die Inhaber:in des Workspace. Details: [Teilen](/tools/zugangsdaten-tresor/teilen#persönlich-oder-geteilt).
</Info>

## Weiterführend

Wie Freigaben und externe Links im Alltag funktionieren, zeigt [Teilen](/tools/zugangsdaten-tresor/teilen). Die Grund-Pflicht beim Anzeigen sensibler Einträge erklärt [Sicherheit](/tools/zugangsdaten-tresor/sicherheit). Zurück zur Übersicht: [Zugangsdaten-Tresor](/tools/zugangsdaten-tresor).
