במסמך הזה מוסבר איך לכתוב כללים בהתאמה אישית באמצעות שפת המדיניות Rego. אפשר להשתמש בכללים האלה בכלי לניהול עומס העבודה כדי להעריך את עומסי העבודה בהשוואה לשיטות המומלצות שהוגדרו לארגון.
מידע נוסף זמין במאמר מידע על כללים בהתאמה אישית בכלי לניהול עומס העבודה.
לפני שמתחילים
- חשוב להכיר את שפת המדיניות של Rego.
כתיבת כללים בהתאמה אישית באמצעות Rego
Google מספקת מאגר לדוגמה ב-GitHub עם קבוצה של כללים מוגדרים מראש שבהם אפשר להשתמש כדי להעריך את עומסי העבודה. הדוגמאות האלה כוללות כמה תרחישי שימוש.
בוחרים כללים ממאגר הכללים או יוצרים קובץ כללים (.rego) שמתאר את דרישות ההערכה.
כלל בהתאמה אישית כולל את הקטעים הבאים:
מטא-נתונים. השדות הבאים מגדירים את המטא-נתונים של הכלל:
-
DETAILS: תיאור קצר של הכלל. -
SEVERITY: ערך שמוגדר על ידי המשתמש ומגדיר את חומרת ההפרה של הכלל. לדוגמה,HIGH,CRITICAL,MEDIUMאוLOW. -
ASSET_TYPE: אחד מהנכסים הנתמכים. אפשר לעיין ברשימה של מקורות הנתונים הנתמכים. -
TAGS: תג אחד או יותר לכלל. התגים האלה עוזרים לסנן את הכללים.
-
הצהרת חבילה. לדוגמה,
templates.google.compute.instance.label.ייבוא דוחות. לדוגמה,
data.validator.google.lib as lib.הגדרות של כללים: קבוצת הוראות שמגדירה את הכלל.
דוגמאות לכללים
כללי הדוגמה הבאים זמינים במאגר GitHub GoogleCloudPlatform/workload-manager. אתם יכולים להעלות את הכללים האלה כמו שהם לקטגוריה שלכם ב-Cloud Storage ולהשתמש בהם כדי להריץ את ההערכות. לחלופין, אפשר לשנות את הכללים בהתאם למדיניות הארגון ואז להעלות את הקבצים לקטגוריה של Cloud Storage.
- דוגמה 1: מוודאים שיש לפחות תווית אחת למכונות ה-VM.
- דוגמה 2: מוודאים שעומס העבודה לא משתמש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.
- דוגמה 3: מוודאת שמכונות וירטואליות בעומס העבודה לא משתמשות בכתובת IP חיצונית.
רשימה מלאה של כללי דוגמה שאפשר להשתמש בהם בכלי לניהול עומס העבודה זמינה במאגר GitHub GoogleCloudPlatform/workload-manager.
דוגמה 1
הכלל מוודא שיש לפחות תג אחד למשאבי Compute Engine.
דוגמה 2
מוודא שעומס העבודה לא משתמש בחשבון השירות שמוגדר כברירת מחדל של Compute Engine
דוגמה 3
מוודא שהמכונות הווירטואליות בעומס העבודה לא משתמשות בכתובת IP חיצונית.
העלאת הכלל לקטגוריה של Cloud Storage
אחרי שיוצרים את הקובץ .rego, מעלים אותו לקטגוריה של Cloud Storage. הרמה העליונה של הקטגוריה ב-Cloud Storage חייבת לכלול את התיקיות /lib ו-/rules:
libparameters.regoutils.rego
/rulesrule_name1.regorule_name2.rego