- เลเยอร์การจัดการสิทธิ์ที่ช่วยกำหนดกฎการควบคุมการเข้าถึงที่ทรงพลังและรับรู้บริบทสำหรับทรัพยากรของแอปพลิเคชัน
- เขียนด้วยนโยบาย YAML แบบเรียบง่าย และสามารถจัดการและปรับใช้ผ่านโครงสร้างพื้นฐานแบบ GitOps ได้
- โฮสต์ Cerbos Policy Decision Point (PDP) แบบ self-hosted และประเมินนโยบายผ่าน API ที่มีความพร้อมใช้งานสูงเพื่อทำการตัดสินใจการเข้าถึงแบบไดนามิก
คุณสมบัติหลักของ Cerbos
- การเขียนและปรับใช้นโยบาย:
- กำหนดนโยบายในรูปแบบ YAML
- จัดเก็บนโยบายผ่านดิสก์, cloud object store, Git repository หรือฐานข้อมูล
- ความสามารถในการขยายและการผสานรวม:
- สามารถปรับใช้ได้ในหลายสภาพแวดล้อม เช่น บริการ K8s, sidecar, บริการ systemd, AWS Lambda
- ผสานรวมกับการปรับใช้แบบ serverless และ edge ได้ง่าย
- ความสามารถด้านการจัดการนโยบายที่ทรงพลัง:
- รองรับการทำ ABAC (Attribute-Based Access Control) ได้มากกว่า RBAC (Role-Based Access Control) แบบพื้นฐาน
- สามารถประเมินเงื่อนไขอย่างละเอียดโดยใช้ข้อมูลบริบทขณะรันไทม์
แนวคิดหลัก
- Principal: ผู้กระทำที่ต้องการดำเนินการ (เช่น ผู้ใช้ แอปพลิเคชัน บริการ)
- Action: การกระทำที่ผู้กระทำต้องการทำ (เช่น สร้าง อ่าน อัปเดต ลบ เป็นต้น)
- Resource: เป้าหมายที่ควบคุมการเข้าถึง (เช่น รายงาน ใบเสร็จ ข้อมูลบัตร เป็นต้น)
- Policies: ไฟล์ YAML ที่กำหนดกฎการเข้าถึงแยกตามทรัพยากร
- Cerbos PDP:
- บริการแบบ stateless ที่รันนโยบายและตัดสินใจเรื่องการเข้าถึง
- API หลัก:
- CheckResources: ตรวจสอบว่าผู้กระทำรายหนึ่งสามารถเข้าถึงทรัพยากรได้หรือไม่
- PlanResources: ตรวจสอบว่าผู้กระทำรายหนึ่งสามารถเข้าถึงทรัพยากรใดได้บ้าง
- SDK และอะแดปเตอร์:
- มี SDK สำหรับหลายภาษาโปรแกรม
- มีอะแดปเตอร์สำหรับแปลงผลลัพธ์
PlanResources เป็นคิวรี
กรณีการใช้งาน
- ขยายจาก RBAC ไปสู่ ABAC:
- เพิ่มบทบาทแบบไดนามิกด้วยการประเมินเงื่อนไขขณะรันไทม์
- สามารถ override นโยบายแบบละเอียดสำหรับผู้ใช้เฉพาะรายได้
- การทำงานร่วมกันและการปรับใช้นโยบาย:
- เขียนนโยบายร่วมกับทีมผ่าน Cerbos Hub
- กระจายอัปเดตนโยบายไปยัง PDP fleet ทั้งหมดได้อย่างมีประสิทธิภาพ
- การผสานรวมกับสภาพแวดล้อมคลาวด์และเอดจ์:
- เหมาะกับบริการบนคลาวด์และการปรับใช้ที่เอดจ์
ยังไม่มีความคิดเห็น