Skip to main content

title: “Özel politikalar” description: “Aracılarınıza özgü hatalar için JavaScript veya TypeScript politikaları yazın, test edin ve dağıtın.” icon: “shield-plus”

Özel politikalar, izlemeleriniz veya denetimlerinizden bir hata modelini, bir aracı çalışırken çalışan bir karara dönüştürür. Bir politika bir işlemi izin verebilir, aracıya rehberlik sağlayabilir veya başka bir olaya neden olmadan işlemi reddedebilir. Davranış aracınızın araçlarına, yollarına, komutlarına, ortamlarına veya işletme kurallarına bağlı olduğunda özel bir politika kullanın. Mevcut bir kontrolü yeniden oluşturmamak için önce yerleşik politika kataloğunu kontrol edin.

Özel politika yazma

  1. Admin → policy editor (politika editörü) sayfasına gidin, New policy (Yeni politika) seçin ve önlemek istediğiniz hatayı açıklayın.
  2. Politika kaynağını ekleyin, ardından editörde beklenen eşleşmeleri ve güvenli eşleşmeleri test edin. Her doğrulama hatasını çözün.
  3. taslağı kaydedin ve değişmez bir sürüm oluşturmak için Publish version (Sürümü yayımla) seçeneğini tıklayın.
  4. Admin → enforcement (uygulamaya zorlama) sayfasına gidin, sürümü test makinasına observe (gözlemle) modunda dağıtın ve Observe → policy (Gözlemle → politika) altında kararlarını doğrulamadan önce zorlayın. Özel bir politika yazmak ve yayımlamak için kullanılan politika editörü.

Dar bir kuralla başlayın

Bu politika, yalnızca komut üretimi hedeflediğinde yıkıcı Kubernetes komutlarını engeller. O kesin hata modu dışındaki her şey allow() döndürür.
İyi politikalar bir cümle ile açıklanacak kadar dar olmalıdır. Umarım aracının niyeti olan değil gözlemlenebilir işlemi eşleştirin ve kural geçerli olmayınca hemen allow() döndürün.

Bir karar seçin

Kurtarması gereken aracı için sebebi yazın. Ne tespit edildiğini ve bunun yerine ne yapması gerektiğini açıklayın.
Bir güvenlik sınırı için instruct() kullanmayın. Rehberlik sunumu, aracı koşuluna göre değişir. İşlem önlenmelidir. deny() kullanın.

Politika nesnesi

fn içinde araçları filtreleyin. match.toolNames, genel özel politika türünün bir parçası değildir.

Politika bağlamı

Her politika bir PolicyContext alır. Her isteğe bağlı değeri gerçekten isteğe bağlı olarak değerlendirin. Aracı sürümleri ve olay türleri aynı alanları sağlamaz.

Yaygın araç girdileri

Failproof AI, desteklenen koşullar arasında yaygın araçları normalleştirir, böylece bir politika genellikle bir giriş şekli kullanabilir. Araç giriş değerleri unknown olarak yazıldığı için savunmacı zorlama kullanın:

Olayı seçin

Olay kullanılabilirliği ve engelleme davranışı aracı koşuluna bağlıdır. Karışık bir filo arasında bir olaya güvenmeden önce Aracı koşulları makalesine bakın.
SessionStart, SessionEnd, UserPromptSubmit, PreToolUse, PermissionRequest, PermissionDenied, PostToolUse, PostToolUseFailure, Notification, SubagentStart, SubagentStop, TaskCreated, TaskCompleted, Stop, StopFailure, TeammateIdle, InstructionsLoaded, ConfigChange, CwdChanged, FileChanged, WorktreeCreate, WorktreeRemove, PreCompact, PostCompact, Elicitation, ElicitationResult, UserPromptExpansion, PostToolBatch ve Setup.

Yaygın politika modellerini yazın

Korumalı yollara yazıları engelle

Engel olmayan rehberlik sağla

Oturum tamamlanmasını kapıyı koru

Reddedilen bir Stop olayı aracıyı yeniden denemeye yapabilir. Yalnızca aracının geçerli ortamda karşılayabileceği bir koşulda kapıyı koruyun ve her alt işlem veya ağ çağrısını sınırlayın.

Politika dosyalarını yükle

Kural dosyaları

Kural dosyaları otomatik olarak yüklenir:
  • Proje ve kullanıcı politika dizinleri her ikisi de yüklenir.
  • Dosyalar her dizin içinde alfabetik olarak yüklenir.
  • Bir dosya policies.js, policies.mjs veya policies.ts ile bitmelidir.
  • Bir dosyada birden fazla customPolicies.add() çağrısı desteklenir.
  • Yerel modüllerden göreceli içe aktarmalar desteklenir.
  • Proje politikaları kaydedilebilir, böylece aynı kurallar depoyu takip eder.

Açık dosyalar

Doğrulama veya yapılandırma, giriş dosyasını doğrudan adlandırmalı olduğunda açık yolları kullanın:
Açık dosyalar önce yüklenir, ardından proje kural dosyaları ve sonra kullanıcı kural dosyaları gelir. Her iki yol aracılığıyla keşfedilen bir dosya bir kez yüklenir.

Doğrula ve test et

Doğrulama, modülü üretim yükleyicisi aracılığıyla yürütür ve en az bir politika kaydettiğini onaylar.
Doğrulama, eksik dosyaları, sözdizimi hatalarını, çözülmemiş içe aktarmaları, üst düzey istisnalar ve modül yükleme zaman aşımlarını yakalar. Match mantığınızın doğru olduğunu kanıtlamaz. En azından bu durumları test edin:
  • Eşleşmesi gereken ve amaçlanan politika sebebini üreten bir işlem.
  • Yakınlarda ancak güvenli olan allow() döndürmesi gereken bir işlem.
  • Eksik veya yanlış biçimlendirilmiş araç alanları.
  • Alternatif komut sözdizimi, yollar, alıntılama, harf durumu ve boşluk.
  • Kullanılamayan bir alt işlem veya ağ bağımlılığı.
Sonucu Observe → policy (Gözlemle → politika) altında özel politikanıza atayın. Farklı bir yerleşik politika kararı verirse, engellenen bir test yeterli değildir.

Çalışma zamanı davranışı

  • Yerleşik politikalar özel politikalardan önce değerlendirilir.
  • İlk deny daha fazla politika değerlendirmesini durdurur.
  • Hiçbir politika olayı reddetmediğinde birden fazla instruct sonucu birleştirilebilir.
  • Bir politika işlevinin 10 saniyelik bir yürütme süresi vardır.
  • Atılan bir istisna veya zaman aşımı günlüğe kaydedilir ve allow() olarak değerlendirilir.
  • Başarısız olarak yüklenmiş bir kural dosyası atlanır; diğer özel dosyalar ve yerleşik politikalar devam eder.
  • Üst düzey modül yükleme de 10 saniyelik bir süresi vardır.
  • Bulut gözlemle modu politikayı çalıştırır ancak onu uygulamadan izin olmayan bir kararı kaydeder.
Politika modüllerini belirli ve hızlı tutun. Üst düzey ağ çağrılarından veya sunucu başlatmadan kaçının. fn içindeki işi sınırlayın, bağımlılık başarısızlıklarını yakalayın ve bu başarısızlığın işleme izin verip vermeyeceğini veya reddetmesi gerekip gerekmediğini kasıtlı olarak seçin.

API dışa aktarmaları

TypeScript PolicyContext, PolicyResult, CustomHook, PolicyDecision ve PolicyFunction dışa aktarımını sağlar.

Özel politikaları dağıt

Bir sürümü yayımla, gözlemle modunda dağıt, kararları doğrula ve uygulamaya geçişi yap.