מדיניות כקוד
1) מה נחשב ל ”פוליטיקה”
מדיניות היא כלל דטרמיניסטי שעונה על השאלה ”לא יכול/לא יכול” (או ”איך בדיוק יכול”) בהינתן ההקשר:- גישה/אישור: RBAC/ABAC, REBAC, יצוא נתונים, קפיצת מדרגה (MFA).
- אבטחת תשתיות: שליטה בקוברנטס, מדיניות תמונה/סודיות, כללי רשת.
- ציות ופרטיות: ניהול הסכמה, תיוג מח "ש, ימי דיווח מקומי, הגבלות גיאו.
- קונפיגורציות ואיכות: ”מכחיש: עדכני”, גבולות משאבים, תגי משאבים מחייבים (ענן).
- Data and ML: איסור על אימון על סטים ללא הסכמה, k-אנונימיות, DP-תקציבי, Data Lineage-invariants.
2) מודל אדריכלי PaC
PAP (נקודת ניהול מדיניות): תהליכי מאגר וניהול (MR/PR, סקירה, גרסה).
PDP (Policy Decision Point): מנוע שמחשב את החלטת המדיניות (אופ "א, מנוע סידר, מתורגמן ילידי).
נקודת פנייה (PEP): נקודת יישום (API gateway, webhook administration in K8s, ETL transformer, SDK).
PIP (נקודת מידע למדיניות): מקורות לתכונות/עובדות: IDP, ספריות משאבים, מחסן נתונים, שיעור סיכון.
רישום החלטה/ביקורת: רישומי פתרונות בלתי ניתנים לשינוי (לניתוח תקריות ותאימות).
הזרם: Request ach PEP יוצר הקשר * PDP טוען עובדות (PIP) * מחשב פתרון * PEP תקף (אפשר/מכחיש/עורך) * log/metrics.
3) כלים ותחומים
OPA/Rego הוא מנוע ושפה אוניברסלית למדיניות הצהרתית (webhook administration in K8s: Gatekeeper, in CI - Confest, in API - sidecar/service).
Kyverno - מדיניות הצהרתית עבור קוברנטס ב ־ YAML, תיקון/אימות/דור.
סידר (באנגלית: Cedar או AWS) היא שפת מדיניות המתמקדת באישור של מי-על-מה.
ענן IAM (AWS/GCP/Azure) - מדיניות משאב ענן (רצוי לבדוק PAC סטטי ובתוכניות IC).
מותאם אישית - DSL/כללים על JSON/SQL עבור פרטים (לדוגמה, תאימות ML).
4) אופן החיים של המדיניות
1. הגדרת היעד ותחומו: ”איסור על טעינת מכולות עם פגיעות גבוהה/קריטית”.
2. תבנית בקוד: Rego/Cedar/YAML.
3. בדיקות: טבלאות אמת, מקרים שליליים, מבוסס רכוש.
4. בדיקות מז "פ: לינטר, יחידה, אינטגרציה על מניפסטים פיקטיביים/בקשות.
5. שחרור והפצה: פרסום בצרור, חתימה, משלוח ל ־ PDP/edge.
6. ניטור: קצב פגיעה, latency p95/p99, למנוע שיתוף, לוחות מחוונים להיסחף.
7. יוצא מן הכלל/ויתור: זמן/נפח מוגבל, מבוקר ובבעלותו.
8. שיפוץ וארכיון: גרסאות, תאימות, נדידה.
5) אחסון והפצה
פריסת רפו: 'מדיניות/< דומיין >/< מדיניות>. rego' cedar 'yaml',' מבחנים/', 'חבילות/',' סכמות/'.
Versioning: semver ו- ”policy _ version” בתגובות PDP.
חבילות - חבילות מדיניות דחוסות + סכמות + תצורות, חתומות (אבטחת שרשרת אספקה).
הפצה: משיכה (PDP מושך registry/S3) או דחיפה (בקר שולח).
הערכה חלקית, מצפה למדיניות לביצוע מהיר של המתחם.
6) מודל נתונים ותרשימים
חוזה הקשר יחיד: ”נושא”, ”משאב”, ”פעולה”, ”env”, ”חוקי”.
JSON-Schema/Protobuf: לאמת מודלים בפועל; סכימה לא תואמת - סיבה ל ”להכחיש”.
נורמליזציה מאפיינת: שמות מאוחדים (לדוגמה, ”tenant _ id',” risk _ level ”,” pii _ tags', ”image”. וולנס ').
7) ביצועים ואמינות
מטמון פתרון: מפתח ”(subject_hash, resource_key, פעולה, policy_version)”; TL קצר, נכות באירוע (שינוי תפקיד/תג).
עובדות מקומיות: אל תמשוך צילומי פיפ "א כבדים למסלול החם.
כשל פתוח נגד כשל סגור: אבטחת תחום קריטי - אל-כשל; עבור UX-critical-disgradation (מהדורה במקום להכחיש).
תקציב Latency: היעד '<3-10 ms' לכל פתרון בזיכרון PDP, '<30-50 ms' עם PIP.
8) ניהול יוצא מן הכלל (ויתורים)
זמן מוגבל (למשל: 7 ימים), עם בעל חובה והגיון.
יחד: על ידי משאב/פרויקט/שם; לאסור על גלובל ”לנצח”.
ביקורת ותזכורות: דיווחים על ויתור מתוקשר, סגירה אוטומטית/הסלמה.
9) מדידות ויכולת תצפית
כיסוי מדיניות: פרופורציה של נתיבים/נקודות קצה מוגנות על ידי PAC.
שיעור Latency/QPS/שגיאה.
מכחיש קצב ושווא חיובי/שלילי (דרך יבש-run/shadow mode).
סחיפה: אי התאמה בין תוכנית (IC) לעובדה (live), בין SDK לפתרונות שרת.
”החלטה _ id, policy_ids, גרסה, attributes_digest, אפקט, סיבה”.
10) אנטי דפוסים
מדיניות ”מחווטת” לקוד ללא גרסאות ומבחנים.
חוסר שרטוטים/אימות הקשר * החלטות בלתי צפויות.
קובץ מונוליטי אחד "מגה. רגו"
אין תהליך חריג = סיבובים ידניים ותוהו ובוהו.
רק יישום זמן ריצה ללא משמרת ב CI (כשלים מאוחרים).
תופעות לוואי נסתרות במדיניות (מדיניות צריכה להיות פונקציה טהורה).
11) דוגמאות
11. 1 rego (אופ "א) - להכחיש תמונות פגיעות ב K8s
rego package k8s. admission. vulns
deny[msg] {
input. kind. kind == "Pod"
some c img:= input. request. object. spec. containers[c].image vulns:= data. registry. scan [img] # actual-snapshot from PIP count ({v v:= vulns[_]; v.severity == "CRITICAL"}) > 0 msg:= sprintf("image %s has CRITICAL vulns", [img])
}
11. 2 rego: נתוני ייצוא מ-MFA ו-IP לבן בלבד
rego package api. export
default allow = false
allow {
input. action == "export"
input. subject. mfa_verified == true net. cidr_contains("203. 0. 113. 0/24", input. env. ip)
}
11. 3 ארז: קרא רק לבעלים או לחברי הקבוצה
cedar permit(
principal in Group::"team_members",
action in [Action::"read"],
resource in Photo::"")
when { resource. owner == principal resource. team_id in principal. team_ids };
11. 4 קייברנו (YAML): היובש ': האחרון' ומחויב. משאבים
yaml apiVersion: kyverno. io/v1 kind: ClusterPolicy metadata:
name: disallow-latest-and-require-limits spec:
validationFailureAction: Enforce rules:
- name: disallow-latest match: { resources: { kinds: ["Pod"] } }
validate:
message: "Image tag 'latest' is not allowed."
pattern:
spec:
containers:
- name: ""
image: "!:latest"
- name: require-limits match: { resources: { kinds: ["Pod"] } }
validate:
message: "resources. limits.{cpu,memory} required."
pattern:
spec:
containers:
- resources:
limits:
cpu: "?"
memory: "?"
11. 5 קונספט במודיעיני לתוכנית טרה ־ פורם
bash terraform plan -out tf. plan terraform show -json tf. plan > tf. json conftest test tf. json --policy policies/terraform
12) הטמעת יכולות קיימות
RBAC/ABAC: PAC - שכבת הכרזה; PDP/PEP ממאמר מנוע התפקידים נמצאים בשימוש חוזר.
ניהול הסכמה: ”add/personalization” מדיניות כתנאי גישה למידע/endpoint.
אנוניזציה/PII: מדיניות האוסרת הכשרה/ייצוא ללא אנונימיות ופרופילי תקציב DP.
ניתוב גיאו: מדיניות לניתוב תנועה/נתונים על ידי אזור אחסון.
13) תהליכים ואנשים
בעלי תחום מדיניות: אבטחה, פלטפורמה, נתונים, מוצר/שיווק.
מבקרים: security + domain בעלים.
קטלוג מדיניות: תיאור יעד, סיכון, SLO, מגע, דוגמאות, קישורי אירוע.
הדרכה: מדריכים וקטעים למפתחים (איך לכתוב מבחנים, איך לחסל את רגו).
14) רשימת אדריכלים
1. סט מינימלי של תחומים ובעלים מוגדר?
2. מאגר מדיניות עם בדיקות, לינטר ומודיע?
3. האם PDPs/PEPs ממוקמים על ההיקף, ב API, K8s, ובצינורות הנתונים?
4. האם יש דיאגרמות הקשר ואימות?
5. חבילות חתימה ומשלוח, מטמון ואסטרטגיית נכות?
6. מטריצות (איחור, הכחשה, סחיפה), רישום החלטות וביקורת חשבונות?
7. תהליך חריג עם טי-טי-אל ודיווח?
8. יבש לרוץ/מצב צל לפני אכיפה?
9. הערכה חלקית/התאמה מחדש לנקודות חמות?
10. רינון להשפלה (אל-כשל סגור/Low-with-reduction)?
מסקנה
מדיניות כקוד הופכת את הכללים לברי רבייה, ניתנים לאימות, ומנוהלת על אותם עקרונות כמו היישום: קוד ביקורת, מבחנים, סי-איי-די, מדידות, וגלגולים. על ידי חיבור PAC עם אישור (RBAC/ABAC), ציות ואבטחת פלטפורמות, אתה מקבל לולאת בקרה בודדת, צפויה וניתנת לחיזוי עבור התנהגות המערכת - החל בבקרת כניסה ליצוא נתונים וצינורות ML.