Skip to main content

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ıç

Plugin, 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:
Aşağıdaki kural tablolarından kolayca anlaşılamayan genel notlar:
  • Geri döngü dışı bağlamaları reddederken gateway.bind değerini belirtmemek, çalışma zamanı varsayılanını kabul ettiğiniz anlamına gelir; katı uyumluluk için gateway.bind: "loopback" değerini ayarlayın.
  • Salt okunur bir ajan için geçerli varsayılanlarda/ajanda korumalı alan mode değerini all veya non-main, workspaceAccess değerini ise none veya ro olarak ayarlayın. Eksik veya off korumalı alan modu, salt okunur bir politikayı karşılamaz.
  • agents.workspace.denyTools; exec, process, write, edit ve apply_patch değerlerini kabul eder. Yapılandırmadaki araç reddetme grupları group:fs (dosya değiştirme) ve group:runtime (kabuk/işlem) eşdeğer duruşu karşılar.
  • Yürütme onayı denetimleri, yalnızca bir execApprovals kuralı mevcut olduğunda canlı exec-approvals.json yapı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.json gibi 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ğunda scopes.<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.
Yukarıdaki gibi, her kapsam farklı bir alanı yönetiyorsa aynı ajan birden fazla kapsamda yer alabilir. Aynı ajan için yinelenen kapsamlı bir alan eşit derecede veya daha kısıtlayıcı olmalıdır; daha zayıf bir yinelenen iddia reddedilir (izin listeleri alt kümeler, ret listeleri üst kümelerdir; gerekli Boole değerleri sabittir). Kapsayıcı duruş kuralları (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ı

İ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):
Temiz 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ü:
  1. policy.jsonc öğesini yazın veya inceleyin.
  2. openclaw policy check --json komutunu çalıştırın.
  3. Temizse attestation.policy.hash değerini expectedHash olarak kaydedin.
  4. attestation.attestationHash değerini expectedAttestationHash olarak kaydedin.
  5. openclaw doctor --lint komutunu CI veya sürüm geçitlerinde yeniden çalıştırın.
İlke kuralları kasıtlı olarak değişirse temiz bir denetimdeki kabul edilmiş iki karmayı da güncelleyin. Yalnızca çalışma alanı ayarları değişirse (ilke aynı kalırsa), genellikle yalnızca 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:
Tek bir sapma değerlendirmesine ihtiyaç duyan CI veya betiklerde --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=false değerini ayarla
  • ilke bu araçların reddedilmesini gerektirdiğinde eksik zorunlu ret araç kimliklerini tools.deny veya agents.entries.*.tools.deny öğesine ekle
  • güvenli olmayan gateway.controlUi.* anahtarlarını false olarak ayarla
  • ilke uzak Gateway modunu reddettiğinde gateway.mode=local değerini ayarla
  • ilke Gateway HTTP API uç noktalarını reddettiğinde bildirilen gateway.http.endpoints.*.enabled yollarını false olarak ayarla
  • ilke açık grup girişini reddettiğinde bildirilen kanal girişi groupPolicy yollarını allowlist olarak ayarla
  • ilke grup bahsetmelerini gerektirdiğinde bildirilen kanal girişi requireMention yollarını true olarak ayarla
  • ilke hassas günlük kaydı redaksiyonunu gerektirdiğinde logging.redactSensitive=tools değerini ayarla
  • ilke telemetri içeriği yakalamayı reddettiğinde diagnostics.otel.captureContent=false değerini veya nesne biçimindeki telemetri yakalama ayarları için diagnostics.otel.captureContent.enabled=false değerini ayarla
Kapsamlı yükseltilmiş araç onarımları yalnızca algılama amaçlıdır. Bulgu, paylaşılan günlük kaydı veya telemetri yapılandırmasını bildirdiğinde kapsamlı veri işleme onarımları da atlanır; çünkü paylaşılan ayarın değiştirilmesi, kapsamlı ilke hedefinden daha fazlasını etkiler. Bulgu devralınan kök 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.

Çıkış kodları

İlgili