openclaw policy
openclaw policy, paketle gelen Policy plugin tarafından sağlanır. Mevcut OpenClaw ayarları üzerinde çalışan kurumsal bir
uyumluluk katmanıdır; ikinci bir yapılandırma sistemi değildir.
Gereksinimleri policy.jsonc içinde tanımlarsınız; OpenClaw etkin çalışma alanını
kanıt olarak gözlemler; Policy, sapmaları doctor --lint aracılığıyla bildirir. Policy,
araç çağrılarını zorunlu kılmaz veya istek sırasında çalışma zamanı davranışını yeniden yazmaz ve
auth-profiles.json gibi ajan başına kimlik bilgisi depolarını tasdik etmez.
Policy; yapılandırılmış kanalları, MCP sunucularını, model sağlayıcılarını, ağ SSRF
duruşunu, giriş/kanal erişimini, Gateway erişilebilirliğini ve Node komut duruşunu,
tanımlanmış mesaj yönlendirme yoklamalarını,
ajan çalışma alanı erişimini, korumalı alan duruşunu, veri işleme duruşunu, gizli bilgi
sağlayıcısı/kimlik doğrulama profili duruşunu ve yönetişim altındaki araç meta verilerini (TOOLS.md) denetler. Bir
çalışma alanında “Telegram etkinleştirilmemelidir” veya “yönetişim altındaki araçlar risk ve
sahip meta verilerini bildirmelidir” gibi kalıcı ve denetlenebilir bir beyan gerektiğinde bunu kullanın. Tasdik veya
sapma algılama olmadan yalnızca yerel davranış gerekiyorsa düz
yapılandırma yeterlidir.
Hızlı başlangıç
policy.jsonc eksik olduğunda bile etkin kalır; böylece doctor,
denetimleri sessizce atlamak yerine eksik yapıtı bildirebilir.
policy.jsonc dosyasını elle oluşturun; mevcut ayarlardan oluşturulmaz. Her
üst düzey bölüm bir kural ad alanıdır: bir denetim yalnızca altında somut bir kural
bulunduğunda çalışır (desteklenmeyen bölümler veya anahtarlar sessizce yok sayılmak yerine
policy/policy-jsonc-invalid olarak başarısız olur). Desteklenen
tüm bölümleri kapsayan asgari örnek:
- Geri döngü dışı bağlamaları reddederken
gateway.binddeğerini belirtmemek, çalışma zamanı varsayılanını kabul ettiğiniz anlamına gelir; katı uyumluluk içingateway.bind: "loopback"değerini ayarlayın. - Salt okunur bir ajan için geçerli varsayılanlarda/ajanda korumalı alan
modedeğeriniallveyanon-main,workspaceAccessdeğerini isenoneveyaroolarak ayarlayın. Eksik veyaoffkorumalı alan modu, salt okunur bir politikayı karşılamaz. agents.workspace.denyTools;exec,process,write,editveapply_patchdeğerlerini kabul eder. Yapılandırmadaki araç reddetme gruplarıgroup:fs(dosya değiştirme) vegroup:runtime(kabuk/işlem) eşdeğer duruşu karşılar.- Yürütme onayı denetimleri, yalnızca bir
execApprovalskuralı mevcut olduğunda canlıexec-approvals.jsonyapıtını okur; eksik veya geçersiz bir yapıt yapay bir başarılı sonuç değil, gözlemlenemeyen kanıttır. - Gizli bilgi ve kimlik doğrulama profili kanıtları yalnızca sağlayıcı/kaynak duruşunu ve
SecretRef meta verilerini kaydeder; ham değerleri asla kaydetmez. Policy,
auth-profiles.jsongibi ajan başına kimlik bilgisi depolarını okumaz veya tasdik etmez. - Veri işleme kanıtı yalnızca yapılandırma düzeyindeki duruştur (maskeleme modu, telemetri yakalama anahtarı, oturum bakım modu, transkript dizinleme ayarı). Günlükleri, telemetri dışa aktarımlarını, transkriptleri veya bellek dosyalarını incelemez ve temiz bir sonuç, bunlarda kişisel veri veya gizli bilgi bulunmadığını kanıtlamaz.
- Yönlendirme yoklamaları, OpenClaw’ın çalışma zamanı bağlama çözümleyicisini yeniden kullanır. Yönlendirme kanıtı yalnızca yoklama kimliğini, çözümlenen ajanı, eşleşme türünü ve maskelenmiş bağlama meta verilerini kaydeder. Eş, hesap, lonca, takım veya rol tanımlayıcılarını asla kaydetmez. Bir yönlendirme bölümü eklemek, politika ve tasdik karmalarını bilinçli olarak değiştirir; yönlendirme içermeyen politikalar mevcut kanıt biçimlerini korur.
Politika kuralı başvurusu
Aşağıdaki her kural isteğe bağlıdır; bir denetim yalnızca kural mevcut olduğunda çalışır. Gözlemlenen durum, mevcut OpenClaw yapılandırması veya çalışma alanı meta verileridir.Kapsamlı katmanlar
Belirli ajanlar veya kanallar üst düzey temel çizgiden daha katı bir politikaya ihtiyaç duyduğundascopes.<scopeName> kullanın. Kapsam adı yalnızca bir etikettir; eşleştirme,
kapsam içindeki seçiciyi kullanır. Katmanlar birikimlidir: genel kural çalışmaya devam eder
ve kapsamlı kural aynı kanıta karşı kendi bulgusunu ekleyebilir.
Bir
agentIds girdisi agents.entries.* içinde mevcut değilse OpenClaw,
kapsamlı kuralı atlamak yerine söz konusu çalışma zamanı
ajan kimliği için devralınan genel/varsayılan duruşa göre değerlendirir.
sandbox.containers.*) yalnızca
eşleşen ajanın korumalı alan arka ucunun sunabildiği kanıtlara göre denetlenir. Bir arka uç,
kendisi için etkinleştirdiğiniz bir kuralı gözlemleyemiyorsa Policy başarılı saymak yerine
policy/sandbox-container-posture-unobservable bildirir; kapsayıcı
kurallarını bunları sunabilen bir arka uç kullanan ajan gruplarıyla sınırlayın.
Üst düzey ingress.session.requireDmScope genel kalır; session.dmScope,
kanala atfedilebilir bir kanıt değildir, bu nedenle channelIds ile kapsamlandırılamaz.
policy.jsonc içinde bulunan her kapsam geçerli ve uygulanabilir olmalıdır.
Kanallar
MCP sunucuları
Model sağlayıcıları
Ağ
İleti yönlendirme
Yoklama kimlikleri benzersiz olmalıdır. Bir rota
channel, isteğe bağlı accountId,
peer, parentPeer, guildId, teamId ve memberRoleIds öğelerini destekler. Eş türleri
direct, group ve channel şeklindedir. matchedBy, binding.peer, binding.account, binding.channel
veya default dahil olmak üzere bir ya da daha fazla çalışma zamanı
eşleşme türü içerebilir.
Yönlendirme denetimleri yalnızca uygunluk denetimleridir. Başlatma,
ileti teslimi, bağlama önceliği veya geri dönüş davranışını değiştirmezler. Bir bağlamanın otomatik olarak değiştirilmesi
özel iletileri yeniden yönlendirebileceğinden bulgular operatör
incelemesi gerektirir.
Giriş ve kanal erişimi
Gateway
gateway.nodes.denyCommands, tam ve büyük/küçük harfe duyarlı bir ilke reddetme üst kümesi kuralıdır.
İlkenin, ayrıcalıklı Node komutlarının OpenClaw yapılandırması tarafından açıkça
reddedildiğini kanıtlaması gerektiğinde bunu kullanın. Ayrıcalıklı bir Node komutuna kasıtlı olarak izin veren
bir dağıtım, yalnızca gateway.nodes.commands.allow öğesine güvenmek yerine incelemeden sonra
policy.jsonc öğesini güncellemelidir.
Aracı çalışma alanı
Korumalı alan duruşu
İlke, eksik
sandbox.mode öğesini örtük varsayılanı olan off olarak değerlendirir; bu nedenle
sandbox.requireMode, yeni veya yapılandırılmamış bir korumalı alanı
["all"] gibi bir izin listesinin dışında bildirir.
Veri İşleme
Gizli bilgiler
Exec onayları
Exec onayı denetimleri çalışma zamanıexec-approvals.json yapıtını okur:
varsayılan olarak ~/.openclaw/exec-approvals.json veya
OPENCLAW_STATE_DIR ayarlandığında $OPENCLAW_STATE_DIR/exec-approvals.json.
execApprovals.defaults.* veya execApprovals.agents.* altındaki duruş kuralları
okunabilir yapıt kanıtı gerektirir; eksik veya geçersiz bir yapıt, en iyi çabayla geçiş yerine
gözlemlenemeyen kanıt olarak bildirilir. Okunabilir olduğunda, belirtilmeyen
alanlar çalışma zamanı varsayılanlarını devralır: eksik defaults.security, full olur ve
eksik aracı güvenliği bu varsayılanı devralır. Kanıt; defaults,
agents.*, agents.*.allowlist[].pattern, isteğe bağlı argPattern, etkin
autoAllowSkills duruşu ve girdi kaynağını içerir; yuva yolu/belirteci,
commandText, lastUsedCommand, çözümlenmiş yollar veya zaman damgalarını asla içermez.
Örnek: Onaylar yapıtını zorunlu kılın, esnek varsayılanları reddedin ve seçili
aracılar için yalnızca incelenmiş yürütme onayı duruşuna izin verin.
Kimlik doğrulama profilleri
Araç meta verileri
Araç duruşu
Denetimleri çalıştırma
Yazım sırasında yalnızca ilke denetimlerini çalıştırın:policy check yalnızca ilke denetimi kümesini çalıştırır ve kanıtları, bulguları
ve doğrulama karmalarını yayımlar. Aynı bulgular, İlke Plugin’i
etkinleştirildiğinde openclaw doctor --lint içinde de görünür.
Bir operatör ilke dosyasını yazılmış bir temel değerle karşılaştırın:
policy compare, ilke dosyası söz dizimini ilke dosyası söz dizimine göre denetler;
çalışma zamanı durumunu, kanıtları, kimlik bilgilerini veya gizli değerleri incelemez. Kapsamlı
katmanları yöneten aynı kural meta verilerini kullanır: izin listeleri eşit veya
daha dar kalmalı, reddetme listeleri eşit veya daha geniş kalmalı, zorunlu Boole değerleri
değerlerini korumalı, sıralı dizeler yalnızca yapılandırılmış sıranın daha katı
ucuna doğru ilerleyebilmeli ve tam listeler eşleşmelidir. Temel değer, kuruluş
tarafından yazılmış bir ilke olabilir; denetlenen ilke daha katı değerler veya
ek kurallar ekleyebilir. Üst düzey bir denetlenen kural, eşit ya da daha kısıtlayıcı
olduğunda kapsamlı bir temel değer kuralını karşılayabilir. Kapsam adlarının dosyalar
arasında eşleşmesi gerekmez; karşılaştırma seçiciye (agentIds/channelIds) ve alana göre anahtarlanır.
Yönlendirme yoklamalarında, her temel değer yoklama kimliği aynı rota ve
beklenen aracıyla kalmalıdır. Denetlenen bir ilke yoklamalar ekleyebilir veya matchedBy değerini daraltabilir, ancak
bir yoklamayı kaldırmak, rotasını ya da aracısını değiştirmek veya kabul edilen eşleşme
türlerini genişletmek daha zayıftır.
Temiz karşılaştırma (--json):
policy check --json çıktısı, bir operatörün veya
denetleyicinin kaydedebileceği kararlı karmaları içerir:
İlkeyi yapılandırma
İlke yapılandırmasıplugins.entries.policy.config altında bulunur.
Plugin yüklü kalırken bir çalışma alanının ilke
denetimlerini devre dışı bırakmak için
plugins.entries.policy.config.enabled değerini false olarak ayarlayın.
İlke durumunu kabul etme
Örnek JSON çıktısı:attestation.policy.hash yazılan kural yapıtını tanımlar. evidence
denetimlerin kullandığı gözlemlenen OpenClaw durumunu kaydeder ve
workspace.hash bu kanıt yükünü tanımlar. findingsHash kesin
bulgu kümesini tanımlar. checkedAt denetimin ne zaman çalıştığını kaydeder.
attestationHash kararlı iddiayı (ilke karması, kanıt karması,
bulgular karması ve temiz/kirli durumu) tanımlar ve checkedAt değerini
bilinçli olarak hariç tutar; böylece aynı ilke durumu her zaman aynı tasdik
karmasını üretir. Bu dört değer birlikte tek bir ilke denetiminin denetim
izini oluşturan dörtlüyü meydana getirir.
Bir Gateway veya denetleyici, bir çalışma zamanı eylemini engellemek, onaylamak
ya da açıklamayla işaretlemek için ilke kullanıyorsa son temiz denetimin tasdik
karmasını kaydetmelidir. checkedAt denetim günlükları için JSON çıktısında
kalır ancak kararlı karmanın parçası değildir.
İlke durumunu kabul etme yaşam döngüsü:
policy.jsoncöğesini yazın veya inceleyin.openclaw policy check --jsonkomutunu çalıştırın.- Temizse
attestation.policy.hashdeğeriniexpectedHasholarak kaydedin. attestation.attestationHashdeğeriniexpectedAttestationHasholarak kaydedin.openclaw doctor --lintkomutunu CI veya sürüm geçitlerinde yeniden çalıştırın.
expectedAttestationHash değişir.
agents.workspace kurallarını etkinleştirmek veya yükseltmek, çalışma alanı
karmasına ve tasdik karmasına agentWorkspace kanıtı ekler; etkinleştirdikten
sonra yeni kanıtı inceleyin ve kabul edilmiş tasdik karmalarını yenileyin.
Araç duruşu kurallarını etkinleştirmek veya yükseltmek de
toolPosture kanıtını aynı şekilde ekler.
openclaw policy watch denetimi yeniden çalıştırır ve mevcut kanıt artık
expectedAttestationHash ile eşleşmediğinde bunu bildirir:
--once kullanın. --once olmadan varsayılan olarak her iki
saniyede bir yoklama yapar; aralığı değiştirmek için --interval-ms kullanın.
Bulgular
Bir bulgu hem
target (uyumsuzluk gösteren, gözlemlenen çalışma alanı
öğesi) hem de requirement (bunun bir bulgu olmasına neden olan yazılmış kural)
içerebilir. Her ikisi de bugün oc:// adres dizeleridir ancak alan adları adres
biçimini değil, ilke rolünü tanımlar.
Örnek bulgular:
Onarım
doctor --lint ve policy check salt okunurdur.
doctor --fix, yalnızca
workspaceRepairs açıkça etkinleştirildiğinde ilke tarafından yönetilen çalışma alanı ayarlarını düzenler; aksi takdirde denetimler neleri
onaracaklarını bildirir ve ayarları değiştirmeden bırakır.
Bu sürümde onarım, channels.denyRules tarafından reddedilen kanalları devre dışı bırakabilir ve
aşağıda listelenen otomatik daraltma onarımlarını uygulayabilir. Geçerli bir kural
çalışma alanı yapılandırmasını değiştirebileceğinden, workspaceRepairs seçeneğini yalnızca
ilke dosyası incelendikten sonra etkinleştirin:
- genel bir ilke yükseltilmiş araçları yasakladığında
tools.elevated.enabled=falsedeğerini ayarla - ilke bu araçların reddedilmesini gerektirdiğinde eksik zorunlu ret araç kimliklerini
tools.denyveyaagents.entries.*.tools.denyöğesine ekle - güvenli olmayan
gateway.controlUi.*anahtarlarınıfalseolarak ayarla - ilke uzak Gateway modunu reddettiğinde
gateway.mode=localdeğerini ayarla - ilke Gateway HTTP API uç noktalarını reddettiğinde bildirilen
gateway.http.endpoints.*.enabledyollarınıfalseolarak ayarla - ilke açık grup girişini reddettiğinde bildirilen kanal girişi
groupPolicyyollarınıallowlistolarak ayarla - ilke grup bahsetmelerini gerektirdiğinde bildirilen kanal girişi
requireMentionyollarınıtrueolarak ayarla - ilke hassas günlük kaydı
redaksiyonunu gerektirdiğinde
logging.redactSensitive=toolsdeğerini ayarla - ilke telemetri içeriği yakalamayı reddettiğinde
diagnostics.otel.captureContent=falsedeğerini veya nesne biçimindeki telemetri yakalama ayarları içindiagnostics.otel.captureContent.enabled=falsedeğerini ayarla
tools.deny değerini bildirdiğinde kapsamlı zorunlu ret onarımları
atlanır; çünkü gerekli aracın kök yapılandırmasına eklenmesi,
kapsamlı ilke hedefinden daha fazlasını etkiler. Aracıya özgü zorunlu ret onarımları,
bildirilen agents.entries.*.tools.deny yolunu güncelleyebilir.
Bulgu devralınan channels.defaults.* değerini bildirdiğinde kapsamlı kanal girişi onarımları
atlanır; çünkü paylaşılan kanal varsayılanının değiştirilmesi,
kapsamlı ilke hedefinden daha fazlasını etkiler. Otomatik onarım doğru uç nokta URL
izin listesi değerlerini seçemediğinden, Gateway HTTP URL getirme izin listesi bulguları
manuel olarak kalır.
Gateway bağlama ve node komutu bulguları inceleme gerektirmeye devam eder.
policy/gateway-non-loopback-bind veya policy/gateway-node-command-denied
bir yapılandırma yoluyla eşleştirilebildiğinde, doctor --fix önerilen
gateway.bind veya gateway.nodes.commands.deny değişikliğini atlanmış önizleme
rehberliği olarak bildirir. Değişikliği uygulamaz ve bir operatör yapılandırmayı
veya ilkeyi inceleyip güncelleyene kadar bulgu onarılmış sayılmaz.