Skip to main content
Özel politikalar, izlemelerizdeki veya denetimlerinizden bir hata kalıbını bir aracı çalışırken çalışan bir karara dönüştürür. Bir politika bir işleme izin verebilir, aracıya rehberlik sağlayabilir veya başka bir olay meydana gelmeden önce işlemi reddedebilir. Davranış araçlarınız, yollarınız, komutlarınız, ortamlarınız veya işletme kurallarınıza bağlı olduğunda özel bir politika kullanın. Mevcut bir kontrolü yeniden oluşturmamak için önce Failproof AI politika paketini kontrol edin.

Özel politika yazın

  1. Admin → policy editor bölümüne gidin, New policy seçeneğini belirleyin ve önlemek istediğiniz hatayı açıklayın.
  2. Politika kaynak kodunu ekleyin, ardından editörde beklenen eşleşmeleri ve güvenli eşleşmeyenleri test edin. Her doğrulama hatasını çözün.
  3. taslağı kaydedin ve Publish version seçeneğini belirterek değişmez bir sürüm oluşturun.
  4. Admin → enforcement bölümüne gidin, sürümü test makinasına observe modunda dağıtın ve uygulamadan önce kararlarını Observe → policy bölümünde doğrulayın. Özel bir politika yazıp yayınlamak için kullanılan politika editörü.

Dar bir kuralla başlayın

Bu politika, komut üretimi hedeflediğinde yalnızca yıkıcı Kubernetes komutlarını engeller. Bu tam hata modu dışındaki her şey allow() döndürür.
İyi politikalar, bir cümle ile açıklanacak kadar dar olmalıdır. Gözlemlenebilen işlemi eşleştirin—aracının hangi niyeti olduğunu değil—ve kural uygulanmadığı anda allow() döndürün.

Bir karar seçin

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

Politika nesnesi

Araçları fn içinde filtreleyin. match.toolNames özel politika türünün 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 ele alın. Aracı sürümleri ve olay türleri aynı alanları sağlamaz.

Ortak araç girdileri

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

Etkinliği seçin

Olay kullanılabilirliği ve engelleme davranışı aracı koşuluna bağlıdır. Karma bir filo arasında bir olaya güvenmeden önce Aracı koşulları bölümüne 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.

Ortak politika kalıplarını yazın

Korunan yollara yazmaları engelle

Bloke edilmeden rehberlik ver

Oturum tamamlanmasını kontrol et

Reddedilen Stop olayı aracının yeniden denemesini sağlayabilir. Yalnızca aracının mevcut ortamda yerine getirebileceği bir koşul üzerinde engelle ve her alt işlem veya ağ çağrısını sınırla.

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öreli içeri aktarmalar desteklenir.
  • Proje politikaları kaydedilebilir, böylece aynı kurallar depo takip eder.

Açık dosyalar

Doğrulama veya yapılandırmanın giriş dosyasını doğrudan adlandırması gerektiğinde 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 yoldan da keşfedilen bir dosya bir kez yüklenir.

Doğrula ve test et

Doğrulama, modülü üretim yükleyicisinden geçirir ve en az bir politika kaydettiğini onaylar.
Doğrulama, eksik dosyaları, söz dizimi hatalarını, çözülmemiş içeri aktarmaları, üst düzey istisnaları ve modül yükleme zaman aşımlarını yakalar. Bu, eşleşme mantığının doğru olduğunu kanıtlamaz. En az bu durumları test edin:
  • Eşleşmesi gereken ve amaçlanan politika nedenini üretmesi gereken bir işlem.
  • Güvenli olması gereken, yakındaki ancak güvenli bir işlem allow() döndürmeli.
  • Eksik veya hatalı araç alanları.
  • Alternatif komut söz dizimi, yollar, tırnak işaretleri, büyük/küçük harf ve boşluk.
  • Kullanılamayan bir alt işlem veya ağ bağımlılığı.
Sonucu Observe → policy bölümünde özel politikaya atfet. Farklı bir yerleşik politika kararı aldıysa 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.
  • Politika olayı reddetmediğinde birden fazla instruct sonucu birleştirilebilir.
  • Bir politika işlevinin 10 saniyelik yürütme süresi limiti vardır.
  • Atılan bir istisna veya zaman aşımı kaydedilir ve allow() olarak değerlendirilir.
  • Yüklemeyi başarısız olan bir kural dosyası atlanır; diğer özel dosyalar ve yerleşik politikalar devam eder.
  • Üst düzey modül yüklemenin de 10 saniyelik süresi limiti vardır.
  • Bulut observe modu politikayı çalıştırır ancak uygulamadan bir non-allow kararını kaydeder.
Politika modüllerini belirlenimci ve hızlı tutun. Üst düzey ağ çağrılarından veya sunucu başlatmadan kaçının. fn içinde çalışmayı sınırla, bağımlılık başarısızlıklarını yakala ve bu başarısızlığın işleme izin vermesi mi yoksa reddetmesi mi gerektiğine bilinçli olarak karar ver.

API dışa aktarmaları

TypeScript, PolicyContext, PolicyResult, CustomHook, PolicyDecision ve PolicyFunction dışa aktarır.

Özel politikaları dağıt

Bir sürüm yayınla, observe modunda dağıt, kararları doğrula ve uygulamaya taşı.