Edison Watch

Policy Rules

สร้างและจัดการ policy rule ที่ใช้ CEL เพื่อควบคุมพฤติกรรมของเครื่องมือ AI

Policies คือกฎที่ Edison Watch ประเมินต่อการเรียกใช้เครื่องมือ AI ทุกครั้งแบบเรียลไทม์ สามารถบล็อกการกระทำ ติดแท็กเซสชัน ตั้งค่าระดับ access-control และอื่นๆ - ทั้งหมดโดยไม่ต้องเปลี่ยนการกำหนดค่าเครื่องมือ AI

มุมมอง Policies

ไปที่ Policies ในแถบด้านข้าง หน้าถูกแบ่งเป็นสองแผง:

Policies page
  • แถบด้านข้างซ้าย - รายการกฎทั้งหมด จัดกลุ่มตามสถานะ พร้อมช่องค้นหา
  • แผงขวา - รายละเอียดของกฎที่เลือก

แถบสรุปที่ด้านบนของแถบด้านข้างแสดงจำนวนกฎ enabled, tentative และ disabled ได้ในพริบตา

สถานะของกฎ

สถานะความหมาย
enabledกฎทำงานและถูกบังคับใช้กับการเรียกใช้เครื่องมือที่ตรงกันทั้งหมด
tentativeกฎถูกประเมินแต่เพียงบันทึก - ไม่ได้ใช้การกระทำ มีประโยชน์สำหรับการทดสอบกฎใหม่อย่างปลอดภัย
disabledกฎถูกเก็บไว้แต่ไม่ถูกประเมิน

Phase ของกฎ

แต่ละกฎทำงานในหนึ่งในสอง phase:

Phaseเมื่อไหร่ที่ทำงานพฤติกรรมการบล็อก
preก่อนการเรียกใช้เครื่องมือทำงานป้องกันการทำงาน
postหลังจากการเรียกใช้เครื่องมือเสร็จ; result ของเครื่องมือพร้อมใช้งานใน expressionการเรียกทำงานไปแล้ว - result จะถูกแทนที่ด้วย error ก่อนส่งกลับไปยัง AI เพื่อป้องกันการลักลอบนำข้อมูลที่ละเอียดอ่อนออก

บริบท CEL Expression

กฎถูกเขียนด้วย CEL (Common Expression Language) Expression ประเมินต่อ top-level object สี่รายการที่แสดงการเรียกใช้เครื่องมือปัจจุบัน:

ตัวแปรฟิลด์หมายเหตุ
principaluser_id, email, rolesผู้ใช้ที่ทำการเรียก roles เป็นรายการชื่อบทบาทแบบกำหนดเอง
resourcetype, name, serverสิ่งที่กำลังเรียก type เป็น "tool", "resource" หรือ "prompt"
toolargs, input_schema, output_schema, resultresult จะถูกกรอกเฉพาะใน phase post
sessionhas_private_data_access, has_untrusted_content_exposure, has_external_communication, highest_acl_level, tool_history, tagsสถานะเซสชันปัจจุบัน รวมถึงแฟล็ก Lethal Trifecta ทั้งสาม

หาก expression ประเมินเป็น true การกระทำของกฎจะถูกใช้

resource.server == "github" && resource.name == "delete_branch" &&
tool.args.branch == "main"

Actions

Actionผล
blockป้องกันการเรียกใช้เครื่องมือไม่ให้ทำงานและส่ง error กลับไปยัง AI
mark_privateตั้งแฟล็กเซสชันว่ามีข้อมูลส่วนตัว
mark_untrustedตั้งแฟล็กเซสชันว่ามีเนื้อหาภายนอกที่ไม่น่าเชื่อถือ
mark_writeตั้งแฟล็กเซสชันว่าได้ทำการเขียน
set_aclตั้งค่าระดับ ACL ของเซสชัน (PUBLIC, PRIVATE หรือ SECRET)
add_tagเพิ่มแท็ก key-value ลงในเซสชันสำหรับการกรองและการตรวจสอบ
allow_overrideอนุญาตการเรียกอย่างชัดเจนแม้ว่ากฎอื่นๆ จะบล็อก

ขอบเขตของกฎ

กฎสามารถถูกจำกัดขอบเขตไปยัง principal และ resource เฉพาะ:

  • Principal scope - กำหนดเป้าหมายผู้ใช้ทั้งหมดในระดับ global บทบาทเฉพาะ หรือผู้ใช้เฉพาะ
  • Resource scope - กำหนดเป้าหมายเซิร์ฟเวอร์เฉพาะ ประเภท element (tools/resources/prompts) หรือรูปแบบชื่อ

กฎที่ไม่มีขอบเขตจะใช้กับ principal และ resource ทั้งหมด

ลำดับความสำคัญและการ Override

เมื่อมีกฎหลายข้อที่ตรงกับการเรียกใช้เครื่องมือเดียวกัน การกระทำของกฎที่ตรงกันทุกข้อจะถูกใช้ ลำดับความสำคัญควบคุมว่า block และ allow_override โต้ตอบกันอย่างไร:

  • block จะถูกยกเลิกก็ต่อเมื่อกฎ allow_override ที่ตรงกันมีลำดับความสำคัญเท่ากันหรือสูงกว่า
  • มิฉะนั้น block จะชนะ
กฎที่ตรงกันลำดับความสำคัญผลลัพธ์
block + allow_override100 vs. 100✅ อนุญาต (override ≥ block)
block + allow_override100 vs. 99❌ ถูกบล็อก (override < block)
block เดี่ยวใดก็ได้❌ ถูกบล็อก

Action ที่ไม่ใช่ block (mark_*, set_acl, add_tag) ถูกใช้เมื่อใดก็ตามที่กฎตรงกันและไม่ได้รับผลกระทบจากการ resolve นี้

การสร้าง Policy

  1. คลิก Create Policy ในแถบด้านข้างซ้าย
  2. เลือกเทมเพลตจาก template picker หรือเริ่มจากศูนย์
  3. กรอกชื่อกฎ CEL expression phase ลำดับความสำคัญ action และขอบเขต
  4. บันทึกกฎ

การทดสอบกฎก่อนเปิดใช้งาน

ตัวแก้ไขกฎมีแผง evaluate ที่เรียกใช้ CEL expression ของคุณต่อบริบทสังเคราะห์ - principal, resource, tool args และแฟล็กเซสชัน - โดยไม่ต้องบันทึกกฎ ใช้เพื่อยืนยันว่า expression ตรงกับกรณีที่คุณคาดหวังและเพื่อดูว่า action ใดจะทำงาน

สำหรับการเปิดตัวแบบค่อยเป็นค่อยไปกับทราฟฟิกจริง ให้บันทึกกฎด้วยสถานะ tentative การตรงกันจะถูกบันทึกที่ฝั่ง server เป็น ⚠️ TENTATIVE match - would apply actions: ...; ยังไม่มีมุมมอง dashboard เฉพาะสำหรับ tentative hit ในปัจจุบัน ดังนั้นให้ตรวจสอบ server log หรือ SIEM ของคุณ เลื่อนกฎเป็น enabled เมื่อคุณมั่นใจ

การแก้ไขและการลบ

เลือกกฎในแถบด้านข้าง จากนั้นคลิก Edit หรือ Delete ในแผงรายละเอียด