openclaw policy
openclaw policy wird vom gebündelten Policy-Plugin bereitgestellt. Es handelt sich um eine unternehmensweite
Konformitätsschicht über den bestehenden OpenClaw-Einstellungen, nicht um ein zweites Konfigurationssystem.
Sie definieren Anforderungen in policy.jsonc; OpenClaw erfasst den aktiven
Workspace als Nachweis; Policy meldet Abweichungen über doctor --lint. Policy
erzwingt keine Tool-Aufrufe und schreibt das Laufzeitverhalten nicht zum Anfragezeitpunkt um. Außerdem
attestiert es keine agentenspezifischen Anmeldedatenspeicher wie auth-profiles.json.
Policy prüft konfigurierte Kanäle, MCP-Server, Modell-Provider, die Netzwerk-SSRF-
Sicherheitslage, den Ingress-/Kanalzugriff, die Gateway-Exposition und die Befehlslage von Nodes,
definierte Nachrichten-Routing-Sonden,
den Zugriff auf Agenten-Workspaces, die Sandbox-Sicherheitslage, die Datenverarbeitungslage, die Sicherheitslage von
Secret-Providern/Authentifizierungsprofilen sowie kontrollierte Tool-Metadaten (TOOLS.md). Verwenden Sie es,
wenn ein Workspace eine dauerhafte, überprüfbare Aussage benötigt, etwa „Telegram darf
nicht aktiviert sein“ oder „kontrollierte Tools müssen Risiko- und Eigentümermetadaten deklarieren“. Wenn
Sie lediglich lokales Verhalten ohne Attestierung oder Abweichungserkennung benötigen, reicht die normale
Konfiguration aus.
Schnellstart
policy.jsonc fehlt, sodass Doctor
das fehlende Artefakt melden kann, anstatt Prüfungen stillschweigend zu überspringen.
Erstellen Sie policy.jsonc manuell; es wird nicht aus den aktuellen Einstellungen generiert. Jeder
Abschnitt der obersten Ebene ist ein Regel-Namespace: Eine Prüfung wird nur ausgeführt, wenn darin eine konkrete Regel
vorhanden ist (nicht unterstützte Abschnitte oder Schlüssel führen zu
policy/policy-jsonc-invalid, anstatt stillschweigend ignoriert zu werden). Minimales
Beispiel, das jeden unterstützten Abschnitt abdeckt:
- Wenn
gateway.bindbei gleichzeitigem Verbot von Bindungen außerhalb der Loopback-Schnittstelle weggelassen wird, akzeptieren Sie den Laufzeitstandard; legen Siegateway.bind: "loopback"für strikte Konformität fest. - Legen Sie für einen schreibgeschützten Agenten den Sandbox-Wert
modein den entsprechenden Standardwerten bzw. für den entsprechenden Agenten aufallodernon-mainundworkspaceAccessaufnoneoderrofest. Ein fehlender oder aufoffgesetzter Sandbox-Modus erfüllt keine Schreibschutzrichtlinie. agents.workspace.denyToolsakzeptiertexec,process,write,edit,apply_patch. Die Tool-Verweigerungsgruppen der Konfigurationgroup:fs(Dateiänderungen) undgroup:runtime(Shell/Prozess) erfüllen die entsprechende Sicherheitslage.- Prüfungen der Ausführungsgenehmigungen lesen das aktive Artefakt
exec-approvals.jsonnur, wenn eine RegelexecApprovalsvorhanden ist; ein fehlendes oder ungültiges Artefakt ist nicht beobachtbarer Nachweis und kein künstlich erzeugter Erfolg. - Nachweise zu Secrets und Authentifizierungsprofilen erfassen nur die Provider-/Quellenlage und
SecretRef-Metadaten, niemals Rohwerte. Policy liest oder attestiert
keine agentenspezifischen Anmeldedatenspeicher wie
auth-profiles.json. - Nachweise zur Datenverarbeitung stellen lediglich die Sicherheitslage auf Konfigurationsebene dar (Schwärzungsmodus, Umschalter für Telemetrieerfassung, Sitzungswartungsmodus, Einstellung zur Transkriptindizierung). Sie untersuchen keine Protokolle, Telemetrieexporte, Transkripte oder Speicherdateien, und ein einwandfreies Ergebnis beweist nicht, dass darin keine personenbezogenen Daten oder Secrets vorhanden sind.
- Routing-Sonden verwenden den Laufzeit-Bindungsresolver von OpenClaw erneut. Routing-Nachweise erfassen nur die Sonden-ID, den aufgelösten Agenten, die Übereinstimmungsart und geschwärzte Bindungsmetadaten. Sie erfassen niemals Kennungen von Peers, Konten, Guilds, Teams oder Rollen. Das Hinzufügen eines Routing-Abschnitts ändert bewusst die Policy- und Attestierungs- Hashes; Policies ohne Routing behalten ihre bestehende Nachweisstruktur bei.
Referenz der Policy-Regeln
Jede nachstehende Regel ist optional; eine Prüfung wird nur ausgeführt, wenn die Regel vorhanden ist. Der beobachtete Zustand entspricht der bestehenden OpenClaw-Konfiguration oder den Workspace-Metadaten.Bereichsbezogene Overlays
Verwenden Siescopes.<scopeName>, wenn bestimmte Agenten oder Kanäle eine strengere Policy
als die Baseline der obersten Ebene benötigen. Der Bereichsname ist lediglich eine Bezeichnung; die Übereinstimmung verwendet den
Selektor innerhalb des Bereichs. Overlays sind additiv: Die globale Regel wird weiterhin ausgeführt,
und die bereichsbezogene Regel kann für denselben Nachweis einen eigenen Befund hinzufügen.
Wenn ein Eintrag
agentIds nicht in agents.entries.* vorhanden ist, wertet OpenClaw
die bereichsbezogene Regel anhand der geerbten globalen/standardmäßigen Sicherheitslage für die ID dieses Laufzeitagenten
aus, anstatt sie zu überspringen.
sandbox.containers.*) werden nur anhand von
Nachweisen geprüft, die das Sandbox-Backend des übereinstimmenden Agenten bereitstellen kann. Wenn ein Backend
eine dafür aktivierte Regel nicht beobachten kann, meldet Policy
policy/sandbox-container-posture-unobservable, anstatt die Prüfung als bestanden zu werten; beschränken Sie
Container-Regeln auf die Agentengruppen, die ein Backend verwenden, das sie bereitstellen kann.
ingress.session.requireDmScope auf oberster Ebene bleibt global; session.dmScope ist
kein einem Kanal zuordenbarer Nachweis und kann daher nicht über channelIds eingeschränkt werden.
Jeder in policy.jsonc vorhandene Bereich muss gültig und durchsetzbar sein.
Kanäle
MCP-Server
Modell-Provider
Netzwerk
Nachrichtenrouting
Prüf-IDs müssen eindeutig sein. Eine Route unterstützt
channel, optional accountId,
peer, parentPeer, guildId, teamId und memberRoleIds. Peer-Arten sind
direct, group und channel. matchedBy kann eine oder mehrere Laufzeit-
Übereinstimmungsarten enthalten, darunter binding.peer, binding.account, binding.channel
oder default.
Routingprüfungen sind ausschließlich Konformitätsprüfungen. Sie ändern weder den Startvorgang
noch die Nachrichtenzustellung, die Bindungspriorität oder das Fallback-Verhalten. Befunde erfordern
eine Überprüfung durch den Betreiber, da die automatische Änderung einer Bindung
private Nachrichten umleiten könnte.
Eingangs- und Kanalzugriff
Gateway
gateway.nodes.denyCommands ist eine exakte, groß-/kleinschreibungssensitive Superset-Regel für Richtlinienverweigerungen.
Verwenden Sie sie, wenn die Richtlinie nachweisen muss, dass privilegierte Node-Befehle durch die
OpenClaw-Konfiguration ausdrücklich verweigert werden. Bei einer Bereitstellung, die einen privilegierten
Node-Befehl absichtlich zulässt, sollte policy.jsonc nach der Überprüfung aktualisiert werden, statt sich
allein auf gateway.nodes.commands.allow zu verlassen.
Agenten-Arbeitsbereich
Sandbox-Sicherheitslage
Die Richtlinie behandelt ein fehlendes
sandbox.mode als dessen impliziten Standardwert off, sodass
sandbox.requireMode eine neue oder nicht konfigurierte Sandbox als außerhalb einer
Zulassungsliste wie ["all"] meldet.
Datenverarbeitung
Geheimnisse
Ausführungsgenehmigungen
Prüfungen der Ausführungsgenehmigungen lesen das Laufzeitartefaktexec-approvals.json:
standardmäßig ~/.openclaw/exec-approvals.json oder
$OPENCLAW_STATE_DIR/exec-approvals.json, wenn OPENCLAW_STATE_DIR gesetzt ist.
Sicherheitslageregeln unter execApprovals.defaults.* oder execApprovals.agents.*
verlangen lesbare Artefaktnachweise; ein fehlendes oder ungültiges Artefakt wird
als nicht beobachtbarer Nachweis gemeldet und nicht nach bestem Bemühen als bestanden gewertet. Sobald das Artefakt lesbar ist,
übernehmen ausgelassene Felder die Laufzeitstandardwerte: Ein fehlendes defaults.security entspricht full, und
eine fehlende Agentensicherheit übernimmt diesen Standardwert. Der Nachweis umfasst defaults,
agents.*, agents.*.allowlist[].pattern, optional argPattern, die effektive
autoAllowSkills-Sicherheitslage und die Eintragsquelle – niemals Socket-Pfad/-Token,
commandText, lastUsedCommand, aufgelöste Pfade oder Zeitstempel.
Beispiel: Das Genehmigungsartefakt verlangen, permissive Standardwerte ablehnen und
nur die geprüfte Ausführungs-Genehmigungshaltung für ausgewählte Agenten zulassen.
Authentifizierungsprofile
Tool-Metadaten
Tool-Haltung
Prüfungen ausführen
Während der Erstellung ausschließlich Richtlinienprüfungen ausführen:policy check führt nur den Satz von Richtlinienprüfungen aus und gibt Nachweise, Befunde
und Attestierungshashes aus. Dieselben Befunde erscheinen auch in
openclaw doctor --lint, wenn das Richtlinien-Plugin aktiviert ist.
Eine Betreiber-Richtliniendatei mit einer erstellten Baseline vergleichen:
policy compare prüft die Syntax der Richtliniendatei gegen die Syntax der Richtliniendatei; dabei
werden weder Laufzeitzustand noch Nachweise, Anmeldedaten oder Geheimnisse untersucht. Es werden dieselben
Regelmetadaten verwendet, die bereichsspezifische Überlagerungen steuern: Zulassungslisten müssen gleich bleiben oder
enger werden, Sperrlisten müssen gleich bleiben oder breiter werden, erforderliche boolesche Werte müssen
ihren Wert beibehalten, geordnete Zeichenfolgen dürfen sich nur zum strengeren Ende der
konfigurierten Reihenfolge bewegen und exakte Listen müssen übereinstimmen. Die Baseline kann eine
von der Organisation erstellte Richtlinie sein; die geprüfte Richtlinie darf strengere Werte oder
zusätzliche Regeln hinzufügen. Eine geprüfte Regel auf oberster Ebene kann eine bereichsspezifische Baseline-Regel erfüllen, wenn
sie gleich oder stärker einschränkend ist. Bereichsnamen müssen zwischen den
Dateien nicht übereinstimmen; der Vergleich erfolgt anhand von Selektor (agentIds/channelIds) und Feld.
Bei Routing-Prüfungen muss jede Baseline-Prüfungs-ID mit derselben Route
und demselben erwarteten Agenten bestehen bleiben. Eine geprüfte Richtlinie darf Prüfungen hinzufügen oder matchedBy einschränken, aber
das Entfernen einer Prüfung, das Ändern ihrer Route oder ihres Agenten oder das Erweitern ihrer akzeptierten Übereinstimmungsarten
ist schwächer.
Erfolgreicher Vergleich (--json):
policy check --json-Ausgabe enthält stabile Hashes, die ein Betreiber oder
eine Aufsichtsperson aufzeichnen kann:
Richtlinie konfigurieren
Die Richtlinienkonfiguration befindet sich unterplugins.entries.policy.config.
plugins.entries.policy.config.enabled auf false setzen, um Richtlinienprüfungen
für einen Arbeitsbereich zu deaktivieren, während das Plugin installiert bleibt.
Richtlinienzustand akzeptieren
Beispielhafte JSON-Ausgabe:attestation.policy.hash identifiziert das erstellte Regelartefakt. evidence
zeichnet den beobachteten OpenClaw-Zustand auf, den die Prüfungen verwenden, und
workspace.hash identifiziert diese Evidenznutzlast. findingsHash identifiziert
den exakten Befundsatz. checkedAt zeichnet auf, wann die Prüfung ausgeführt wurde.
attestationHash identifiziert die stabile Aussage (Richtlinien-Hash, Evidenz-Hash,
Befund-Hash und sauberer/geänderter Zustand) und schließt checkedAt bewusst aus,
sodass derselbe Richtlinienzustand stets denselben Attestierungs-Hash erzeugt. Zusammen
bilden diese vier Werte das Audit-Tupel für eine Richtlinienprüfung.
Wenn ein Gateway oder Supervisor Richtlinien verwendet, um eine
Laufzeitaktion zu blockieren, zu genehmigen oder mit Anmerkungen zu versehen,
sollte er den Attestierungs-Hash der letzten sauberen Prüfung aufzeichnen.
checkedAt verbleibt für Audit-Protokolle in der JSON-Ausgabe, ist jedoch kein
Bestandteil des stabilen Hashs.
Lebenszyklus zum Akzeptieren des Richtlinienzustands:
- Erstellen oder prüfen Sie
policy.jsonc. - Führen Sie
openclaw policy check --jsonaus. - Wenn die Prüfung sauber ist, zeichnen Sie
attestation.policy.hashalsexpectedHashauf. - Zeichnen Sie
attestation.attestationHashalsexpectedAttestationHashauf. - Führen Sie
openclaw doctor --lintin der CI oder in Release-Gates erneut aus.
expectedAttestationHash.
Das Aktivieren oder Aktualisieren von agents.workspace-Regeln fügt
agentWorkspace-Evidenz zum Workspace-Hash und zum Attestierungs-Hash hinzu;
prüfen Sie die neue Evidenz und aktualisieren Sie nach der Aktivierung die
akzeptierten Attestierungs-Hashes. Das Aktivieren oder Aktualisieren von Regeln
für die Tool-Sicherheitskonfiguration fügt auf dieselbe Weise
toolPosture-Evidenz hinzu.
openclaw policy watch führt die Prüfung erneut aus und meldet, wenn die aktuelle
Evidenz nicht mehr mit expectedAttestationHash übereinstimmt:
--once in der CI oder in Skripten, die eine einmalige
Driftbewertung benötigen. Ohne --once wird standardmäßig alle zwei
Sekunden abgefragt; verwenden Sie --interval-ms, um das Intervall zu ändern.
Befunde
Ein Befund kann sowohl
target (das beobachtete Element im Arbeitsbereich, das
nicht konform ist) als auch requirement (die definierte Regel, durch die es zu einem Befund wurde) enthalten.
Beide sind derzeit oc://-Adresszeichenfolgen, die Feldnamen beschreiben jedoch die Rolle in der Richtlinie
und nicht das Adressformat.
Beispielbefunde:
Reparatur
doctor --lint und policy check sind schreibgeschützt.
doctor --fix bearbeitet richtlinienverwaltete Arbeitsbereichseinstellungen nur, wenn
workspaceRepairs ausdrücklich aktiviert ist; andernfalls melden die Prüfungen, was sie
reparieren würden, und lassen die Einstellungen unverändert.
In dieser Version kann die Reparatur durch channels.denyRules verweigerte Kanäle deaktivieren und
die unten aufgeführten automatischen Einschränkungsreparaturen anwenden. Aktivieren Sie workspaceRepairs
erst, nachdem die Richtliniendatei überprüft wurde, da eine gültige Regel die
Arbeitsbereichskonfiguration ändern kann:
tools.elevated.enabled=falsefestlegen, wenn eine globale Richtlinie erweiterte Tools verbietet- fehlende Tool-IDs für obligatorische Verweigerungen zu
tools.denyoderagents.entries.*.tools.denyhinzufügen, wenn die Richtlinie die Verweigerung dieser Tools verlangt - unsichere
gateway.controlUi.*-Umschalter auffalsesetzen gateway.mode=localfestlegen, wenn die Richtlinie den Remote-Gateway-Modus verweigert- gemeldete
gateway.http.endpoints.*.enabled-Pfade auffalsesetzen, wenn die Richtlinie Gateway-HTTP-API-Endpunkte verweigert - gemeldete
groupPolicy-Pfade für eingehenden Kanalverkehr aufallowlistsetzen, wenn die Richtlinie offenen Gruppenzugriff verweigert - gemeldete
requireMention-Pfade für eingehenden Kanalverkehr auftruesetzen, wenn die Richtlinie Gruppenerwähnungen verlangt logging.redactSensitive=toolsfestlegen, wenn die Richtlinie die Schwärzung sensibler Protokolldaten verlangtdiagnostics.otel.captureContent=falseoderdiagnostics.otel.captureContent.enabled=falsefür objektbasierte Einstellungen zur Telemetrieerfassung festlegen, wenn die Richtlinie die Erfassung von Telemetrieinhalten verweigert
tools.deny meldet, da das Hinzufügen des erforderlichen Tools zur Root-Konfiguration
mehr als das bereichsbezogene Richtlinienziel betreffen würde. Agent-lokale Reparaturen obligatorischer Verweigerungen können
den gemeldeten agents.entries.*.tools.deny-Pfad aktualisieren.
Bereichsbezogene Reparaturen des eingehenden Kanalverkehrs werden übersprungen, wenn der Befund geerbtes
channels.defaults.* meldet, da eine Änderung des gemeinsam verwendeten Kanalstandards
mehr als das bereichsbezogene Richtlinienziel betreffen würde. Befunde zur Positivliste für den HTTP-URL-Abruf des Gateways
bleiben manuell zu bearbeiten, da die automatische Reparatur nicht die korrekten URL-Werte
der Endpunkt-Positivliste auswählen kann.
Befunde zur Gateway-Bindung und zu Node-Befehlen bleiben überprüfungspflichtig. Wenn
policy/gateway-non-loopback-bind oder policy/gateway-node-command-denied
einem Konfigurationspfad zugeordnet werden können, meldet doctor --fix die vorgeschlagene
Änderung von gateway.bind oder gateway.nodes.commands.deny als übersprungene Vorschauhinweise.
Die Änderung wird nicht angewendet, und der Befund gilt erst dann als
repariert, wenn ein Operator die Konfiguration oder Richtlinie überprüft und aktualisiert.