Skip to main content

openclaw policy

openclaw policy wordt geleverd door de gebundelde Policy-plugin. Het is een bedrijfsbrede conformiteitslaag boven op bestaande OpenClaw-instellingen, geen tweede configuratie- systeem. Je stelt vereisten op in policy.jsonc; OpenClaw observeert de actieve werkruimte als bewijs; Policy rapporteert afwijkingen via doctor --lint. Policy dwingt geen toolaanroepen af en herschrijft het runtimegedrag niet tijdens een aanvraag, en attesteert geen referentieopslagplaatsen per agent, zoals auth-profiles.json. Policy controleert geconfigureerde kanalen, MCP-servers, modelproviders, de SSRF- beveiliging van het netwerk, toegang via inkomend verkeer/kanalen, blootstelling van de Gateway en de houding voor Node-opdrachten, opgestelde routeringsprobes voor berichten, toegang tot agentwerkruimten, sandboxhouding, gegevensverwerkingshouding, de houding van geheime providers/authenticatieprofielen en metadata van beheerde tools (TOOLS.md). Gebruik het wanneer een werkruimte een duurzame, controleerbare verklaring nodig heeft, zoals ‘Telegram mag niet zijn ingeschakeld’ of ‘beheerde tools moeten metadata voor risico en eigenaar declareren’. Als je alleen lokaal gedrag nodig hebt zonder attestatie of afwijkingsdetectie, volstaat een gewone configuratie.

Snel aan de slag

De Plugin blijft ingeschakeld, zelfs wanneer policy.jsonc ontbreekt, zodat doctor het ontbrekende artefact kan rapporteren in plaats van controles stilzwijgend over te slaan. Stel policy.jsonc handmatig op; het wordt niet gegenereerd uit de huidige instellingen. Elke sectie op het hoogste niveau is een regelnaamruimte: een controle wordt alleen uitgevoerd wanneer er een concrete regel onder staat (niet-ondersteunde secties of sleutels mislukken als policy/policy-jsonc-invalid in plaats van stilzwijgend te worden genegeerd). Minimaal voorbeeld dat elke ondersteunde sectie omvat:
Algemene opmerkingen die niet duidelijk blijken uit de onderstaande regeltabellen:
  • Als je gateway.bind weglaat terwijl niet-loopbackbindingen worden geweigerd, betekent dit dat je de standaardwaarde van de runtime accepteert; stel gateway.bind: "loopback" in voor strikte conformiteit.
  • Stel voor een alleen-lezenagent sandbox mode in op all of non-main bij de toepasselijke standaardwaarden/agent en workspaceAccess op none of ro. Een ontbrekende sandboxmodus of sandboxmodus off voldoet niet aan een alleen-lezenbeleid.
  • agents.workspace.denyTools accepteert exec, process, write, edit, apply_patch. De groepen voor het weigeren van configuratietools group:fs (bestandswijziging) en group:runtime (shell/proces) voldoen aan de equivalente houding.
  • Controles voor uitvoeringsgoedkeuringen lezen het actieve artefact exec-approvals.json alleen wanneer een regel execApprovals aanwezig is; een ontbrekend of ongeldig artefact is niet-observeerbaar bewijs, geen kunstmatig geslaagde controle.
  • Bewijs voor geheimen en authenticatieprofielen registreert alleen de houding van providers/bronnen en SecretRef-metadata, nooit onbewerkte waarden. Policy leest of attesteert geen referentieopslagplaatsen per agent, zoals auth-profiles.json.
  • Bewijs voor gegevensverwerking betreft alleen de houding op configuratieniveau (redactiemodus, schakeloptie voor telemetrieverzameling, modus voor sessieonderhoud, instelling voor transcriptindexering). Het inspecteert geen logboeken, telemetrie-exports, transcripten of geheugenbestanden, en een schoon resultaat bewijst niet dat deze geen persoonsgegevens of geheimen bevatten.
  • Routeringsprobes gebruiken opnieuw de runtimebindingsresolver van OpenClaw. Routeringsbewijs registreert alleen de probe-id, opgeloste agent, het overeenkomsttype en geredigeerde bindings- metadata. Het registreert nooit identificatoren van peers, accounts, guilds, teams of rollen. Door een routeringssectie toe te voegen, veranderen de beleids- en attestatiehashes bewust; beleidsregels zonder routering behouden hun bestaande bewijsvorm.

Naslaginformatie voor beleidsregels

Elke onderstaande regel is optioneel; een controle wordt alleen uitgevoerd wanneer de regel aanwezig is. De waargenomen status bestaat uit bestaande OpenClaw-configuratie of werkruimtemetadata.

Overlays met bereik

Gebruik scopes.<scopeName> wanneer specifieke agents of kanalen een strenger beleid nodig hebben dan de basislijn op het hoogste niveau. De bereiknaam is slechts een label; voor overeenkomsten wordt de selector binnen het bereik gebruikt. Overlays zijn additief: de globale regel blijft actief en de regel met bereik kan een eigen bevinding aan hetzelfde bewijs toevoegen. Als een vermelding agentIds niet aanwezig is in agents.entries.*, evalueert OpenClaw de regel met bereik aan de hand van de overgenomen globale/standaardhouding voor die runtime- agent-id in plaats van deze over te slaan.
Dezelfde agent kan in meerdere bereiken voorkomen als elk bereik een ander veld beheert, zoals hierboven. Een herhaald veld met bereik voor dezelfde agent moet even streng of strenger zijn; een zwakkere dubbele claim wordt geweigerd (toestaanlijsten zijn deelverzamelingen, weigerlijsten zijn bovenverzamelingen, vereiste booleaanse waarden liggen vast). Regels voor containerhouding (sandbox.containers.*) worden alleen gecontroleerd aan de hand van bewijs dat de sandboxbackend van de overeenkomende agent kan blootleggen. Als een backend een regel die je ervoor hebt ingeschakeld niet kan observeren, rapporteert Policy policy/sandbox-container-posture-unobservable in plaats van een geslaagde controle; beperk containerregels tot de agentgroepen die een backend gebruiken die ze kan blootleggen. ingress.session.requireDmScope op het hoogste niveau blijft globaal; session.dmScope is geen bewijs dat aan een kanaal kan worden toegeschreven en kan daarom niet worden beperkt via channelIds. Elk bereik dat aanwezig is in policy.jsonc moet geldig en afdwingbaar zijn.

Kanalen

MCP-servers

Modelproviders

Netwerk

Berichtroutering

Probe-id’s moeten uniek zijn. Een route ondersteunt channel, optioneel accountId, peer, parentPeer, guildId, teamId en memberRoleIds. Peertypen zijn direct, group en channel. matchedBy kan een of meer runtime- overeenkomsttypen bevatten, waaronder binding.peer, binding.account, binding.channel of default. Routeringscontroles zijn uitsluitend conformiteitscontroles. Ze wijzigen het opstarten, de berichtbezorging, de prioriteit van koppelingen of het terugvalgedrag niet. Bevindingen vereisen beoordeling door de beheerder, omdat het automatisch wijzigen van een koppeling privéberichten kan omleiden.

Inkomend verkeer en kanaaltoegang

Gateway

gateway.nodes.denyCommands is een exacte, hoofdlettergevoelige beleidsregel voor een weigeringssuperset. Gebruik deze wanneer het beleid moet aantonen dat bevoorrechte Node-opdrachten expliciet door de OpenClaw-configuratie worden geweigerd. Een implementatie die bewust een bevoorrechte Node-opdracht toestaat, moet na beoordeling policy.jsonc bijwerken in plaats van alleen op gateway.nodes.commands.allow te vertrouwen.

Agentwerkruimte

Sandboxconfiguratie

Het beleid behandelt een ontbrekende sandbox.mode als de impliciete standaardwaarde off, zodat sandbox.requireMode een nieuwe of niet-geconfigureerde sandbox rapporteert als buiten een toegestane lijst zoals ["all"].

Gegevensverwerking

Geheimen

Exec-goedkeuringen

Controles van Exec-goedkeuringen lezen het runtime-artefact exec-approvals.json: standaard ~/.openclaw/exec-approvals.json, of $OPENCLAW_STATE_DIR/exec-approvals.json wanneer OPENCLAW_STATE_DIR is ingesteld. Configuratieregels onder execApprovals.defaults.* of execApprovals.agents.* vereisen leesbaar bewijs uit het artefact; een ontbrekend of ongeldig artefact wordt gerapporteerd als niet-waarneembaar bewijs in plaats van een goedkeuring op basis van een best-effortpoging. Zodra het leesbaar is, nemen weggelaten velden de runtime-standaardwaarden over: een ontbrekende defaults.security is full, en ontbrekende agentbeveiliging neemt die standaardwaarde over. Bewijs omvat defaults, agents.*, agents.*.allowlist[].pattern, optioneel argPattern, de effectieve autoAllowSkills-configuratie en de bron van de vermelding — nooit het socketpad/token, commandText, lastUsedCommand, opgeloste paden of tijdstempels. Voorbeeld: vereis het goedkeuringsartefact, weiger ruime standaardwaarden en sta alleen een beoordeelde houding voor uitvoeringsgoedkeuring toe voor geselecteerde agents.

Authenticatieprofielen

Toolmetadata

Toolhouding

Controles uitvoeren

Voer tijdens het opstellen alleen beleidscontroles uit:
policy check voert alleen de beleidscontroleset uit en produceert bewijsmateriaal, bevindingen en attestatiehashes. Dezelfde bevindingen verschijnen ook in openclaw doctor --lint wanneer de Policy-plugin is ingeschakeld. Vergelijk een beleidsbestand van een beheerder met een opgestelde basislijn:
policy compare controleert de syntaxis van een beleidsbestand tegen de syntaxis van een beleidsbestand; het inspecteert geen runtimestatus, bewijsmateriaal, aanmeldgegevens of geheimen. Het gebruikt dezelfde regelmetadata die overlays met een bereik beheert: toestemmingslijsten moeten gelijk of beperkter blijven, weigeringslijsten moeten gelijk of ruimer blijven, vereiste booleaanse waarden moeten hun waarde behouden, geordende tekenreeksen mogen alleen naar het strengere uiteinde van de geconfigureerde volgorde bewegen en exacte lijsten moeten overeenkomen. De basislijn kan een door een organisatie opgesteld beleid zijn; het gecontroleerde beleid mag strengere waarden of extra regels toevoegen. Een gecontroleerde regel op het hoogste niveau kan voldoen aan een basislijnregel met een bereik wanneer deze even beperkend of beperkter is. Bereiknamen hoeven tussen bestanden niet overeen te komen; de vergelijking wordt bepaald door selector (agentIds/channelIds) en veld. Voor routeringsprobes moet elke probe-id in de basislijn behouden blijven met dezelfde route en verwachte agent. Een gecontroleerd beleid mag probes toevoegen of matchedBy beperken, maar het verwijderen van een probe, het wijzigen van de route of agent, of het verruimen van de geaccepteerde overeenkomsttypen is minder streng. Geslaagde vergelijking (--json):
Geslaagde policy check --json-uitvoer bevat stabiele hashes die een beheerder of toezichthouder kan vastleggen:

Beleid configureren

De beleidsconfiguratie bevindt zich onder plugins.entries.policy.config.
Stel plugins.entries.policy.config.enabled in op false om beleidscontroles voor een werkgebied uit te schakelen terwijl de plugin geïnstalleerd blijft.

Beleidsstatus accepteren

Voorbeeld van JSON-uitvoer:
attestation.policy.hash identificeert het opgestelde regelartefact. evidence registreert de waargenomen OpenClaw-status die door de controles is gebruikt, en workspace.hash identificeert die bewijspayload. findingsHash identificeert de exacte reeks bevindingen. checkedAt registreert wanneer de controle is uitgevoerd. attestationHash identificeert de stabiele claim (beleidshash, bewijshash, bevindingenhash en schone/vuile status) en sluit bewust checkedAt uit, zodat dezelfde beleidsstatus altijd dezelfde attestatiehash oplevert. Samen vormen deze vier waarden het audittupel voor één beleidscontrole. Als een Gateway of supervisor beleid gebruikt om een runtimeactie te blokkeren, goed te keuren of van een annotatie te voorzien, moet deze de attestatiehash van de laatste schone controle registreren. checkedAt blijft in de JSON-uitvoer voor auditlogboeken, maar maakt geen deel uit van de stabiele hash. Levenscyclus voor het accepteren van de beleidsstatus:
  1. Stel policy.jsonc op of beoordeel dit.
  2. Voer openclaw policy check --json uit.
  3. Registreer bij een schone status attestation.policy.hash als expectedHash.
  4. Registreer attestation.attestationHash als expectedAttestationHash.
  5. Voer openclaw doctor --lint opnieuw uit in CI- of releasepoorten.
Als beleidsregels opzettelijk veranderen, werk je beide geaccepteerde hashes bij op basis van een schone controle. Als alleen werkruimte-instellingen veranderen (het beleid blijft hetzelfde), verandert doorgaans alleen expectedAttestationHash. Het inschakelen of upgraden van agents.workspace-regels voegt agentWorkspace-bewijs toe aan de werkruimtehash en attestatiehash; beoordeel het nieuwe bewijs en vernieuw de geaccepteerde attestatiehashes na het inschakelen. Het inschakelen of upgraden van regels voor de toolhouding voegt op dezelfde manier toolPosture-bewijs toe. openclaw policy watch voert de controle opnieuw uit en meldt wanneer het huidige bewijs niet meer overeenkomt met expectedAttestationHash:
Gebruik --once in CI of scripts die één driftevaluatie nodig hebben. Zonder --once wordt standaard elke twee seconden gepolld; gebruik --interval-ms om het interval te wijzigen.

Bevindingen

Een bevinding kan zowel target bevatten (het waargenomen element in de werkruimte dat niet voldoet) als requirement (de vastgelegde regel waardoor het een bevinding werd). Beide zijn momenteel oc://-adresreeksen, maar de veldnamen beschrijven de beleidsrol in plaats van de adresindeling. Voorbeeldbevindingen:

Herstel

doctor --lint en policy check zijn alleen-lezen. doctor --fix bewerkt alleen door beleid beheerde werkruimte-instellingen wanneer workspaceRepairs expliciet is ingeschakeld; anders melden controles wat ze zouden herstellen en laten ze de instellingen ongewijzigd. In deze versie kan herstel kanalen uitschakelen die door channels.denyRules worden geweigerd en de hieronder vermelde automatische inperkingsreparaties toepassen. Schakel workspaceRepairs alleen in nadat het beleidsbestand is gecontroleerd, omdat een geldige regel de werkruimteconfiguratie kan wijzigen:
  • stel tools.elevated.enabled=false in wanneer globaal beleid verhoogde tools verbiedt
  • voeg ontbrekende verplicht te weigeren tool-id’s toe aan tools.deny of agents.entries.*.tools.deny wanneer het beleid vereist dat die tools worden geweigerd
  • stel onveilige gateway.controlUi.*-schakelaars in op false
  • stel gateway.mode=local in wanneer het beleid de externe Gateway-modus weigert
  • stel gemelde gateway.http.endpoints.*.enabled-paden in op false wanneer het beleid Gateway HTTP API-eindpunten weigert
  • stel gemelde groupPolicy-paden voor kanaalingang in op allowlist wanneer het beleid open groepsingang weigert
  • stel gemelde requireMention-paden voor kanaalingang in op true wanneer het beleid groepsvermeldingen vereist
  • stel logging.redactSensitive=tools in wanneer het beleid redactie van gevoelige loggegevens vereist
  • stel diagnostics.otel.captureContent=false in, of diagnostics.otel.captureContent.enabled=false voor telemetrie- vastleggingsinstellingen in objectvorm, wanneer het beleid vastlegging van telemetrie-inhoud weigert
Herstel van verhoogde tools met een beperkt bereik gebeurt alleen via detectie. Herstel van gegevensverwerking met een beperkt bereik wordt ook overgeslagen wanneer de bevinding gedeelde configuratie voor logboekregistratie of telemetrie meldt, omdat wijziging van de gedeelde instelling meer zou beïnvloeden dan het beleidsdoel met beperkt bereik. Herstel van verplichte weigeringen met een beperkt bereik wordt overgeslagen wanneer de bevinding overgenomen hoofd-tools.deny meldt, omdat toevoeging van de vereiste tool aan de hoofdconfiguratie meer zou beïnvloeden dan het beleidsdoel met beperkt bereik. Herstel van verplichte weigeringen op agentniveau kan het gemelde agents.entries.*.tools.deny-pad bijwerken. Herstel van kanaalingang met een beperkt bereik wordt overgeslagen wanneer de bevinding overgenomen channels.defaults.* meldt, omdat wijziging van de gedeelde kanaalstandaard meer zou beïnvloeden dan het beleidsdoel met beperkt bereik. Bevindingen voor de URL-ophaallijst van Gateway HTTP blijven handmatig, omdat automatisch herstel niet de juiste waarden voor de toegestane lijst met eindpunt-URL’s kan kiezen. Bevindingen voor Gateway-bindingen en Node-commando’s blijven beoordeling vereisen. Wanneer policy/gateway-non-loopback-bind of policy/gateway-node-command-denied aan een configuratiepad kan worden gekoppeld, meldt doctor --fix de voorgestelde wijziging van gateway.bind of gateway.nodes.commands.deny als overgeslagen voorbeeldadvies. De wijziging wordt niet toegepast en de bevinding telt pas als hersteld nadat een beheerder de configuratie of het beleid heeft gecontroleerd en bijgewerkt.

Afsluitcodes

Gerelateerd