מדיניות מערכת הפעלה היא קובץ שמכיל את ההגדרה הדקלרטיבית של משאבי מערכת הפעלה, כמו חבילות, מאגרי מידע, קבצים או משאבים מותאמים אישית שמוגדרים על ידי סקריפטים. מידע נוסף זמין בהגדרת המשאב של OSPolicy.
הקצאת מדיניות מערכת הפעלה היא משאב API שמשמש את VM Manager להחלת מדיניות מערכת הפעלה על מכונות וירטואליות. מידע נוסף זמין בהגדרת המשאב של OSPolicyAssignment.
מדיניות מערכת ההפעלה
מדיניות מערכת הפעלה היא קובץ JSON או YAML שמחולק לשלושה חלקים:
מצב. התנהגות המדיניות. אלה שני המצבים שזמינים:
-
Validation: במצב הזה, המדיניות בודקת אם המשאבים נמצאים במצב שנבחר, אבל לא מבצעת פעולה כלשהי. -
Enforcement: במצב הזה, המדיניות בודקת אם המשאבים נמצאים במצב שנבחר, ואם לא, היא מבצעת את הפעולות הנדרשות כדי להעביר אותם למצב הזה.
בשני המצבים, VM Manager מדווח על התאימות למדיניות מערכת ההפעלה ולמשאבים המשויכים.
-
קבוצות משאבים. השם והגרסה של מערכת ההפעלה שאליהם מתייחסים המפרטים של המשאב המשויך. לדוגמה, אפשר להגדיר מדיניות אחת להתקנה או לפריסה של סוכן במערכות הפעלה שונות ובגרסאות שונות.
משאבים. המפרטים שנדרשים כדי שמכונת ה-VM תגיע להגדרה שנבחרה. אפשר לציין עד 10 מזהי משאבים בכל קבוצת משאבים. אלה סוגי המשאבים שנתמכים:
-
pkg: משמש להתקנה או להסרה של חבילות Linux ו-Windows -
repository: משמש לציון חבילות תוכנה במאגר שאפשר להתקין מהן -
exec: משמש להפעלת מעטפת אד-הוק (/bin/sh) או סקריפט PowerShell
file: משמש לניהול קבצים במערכת
-
דוגמאות למדיניות של מערכת ההפעלה
בדוגמאות הבאות אפשר לראות איך יוצרים מדיניות של מערכת הפעלה. אפשר להעלות את מדיניות מערכת ההפעלה הזו אל Cloud de Confiance המסוף כשיוצרים הקצאה של מדיניות מערכת הפעלה.
- דוגמה 1: התקנת חבילה.
- דוגמה 2: הרצת סקריפט.
- דוגמה 3: מריצים סקריפט שמאוחסן בקטגוריה של Cloud Storage ומעתיקים את קובץ הפלט לקטגוריה של Cloud Storage.
- דוגמה 4: מציינת מאגר הורדות ומתקינה חבילות מהמאגר הזה.
- דוגמה 5: הגדרת סריקה של מדד CIS במכונות וירטואליות שמופעל בהן מערכת הפעלה שמותאמת לקונטיינרים (COS). מידע נוסף על שימוש במדיניות מערכת ההפעלה לסריקת מדד CIS זמין במאמר אוטומציה של הפעלה ובדיקה של סטטוס התאימות ל-CIS.
רשימה מלאה של מדיניות לדוגמה של מערכת ההפעלה שאפשר להחיל בסביבה שלכם זמינה במאגר GitHub GoogleCloudPlatform/osconfig.
דוגמה 1
יצירת מדיניות OS שמתקינה קובץ Windows MSI שהורד מקטגוריה של Cloud Storage.
דוגמה 2
יוצרים מדיניות של מערכת הפעלה שמאמתת אם שרת האינטרנט של Apache פועל במכונות הווירטואליות של Linux.
דוגמה 3
יוצרים מדיניות למערכת ההפעלה שמאמתת אם שרת האינטרנט של Apache פועל במכונות הווירטואליות של Linux. בדוגמה הזו, סקריפט apache-validate.sh מאוחסן בקטגוריה של Cloud Storage. כדי להעתיק את הפלט לקטגוריה של Cloud Storage, סקריפט apache-enforce.sh צריך לכלול פקודה שדומה לפקודה הבאה:
gcsutil cp my-exec-output-file gs://my-gcs-bucket
דוגמה 4
יצירת מדיניות מערכת הפעלה שמתקינה סוכני Google Cloud Observability במכונות וירטואליות של CentOS.
דוגמה 5
המדיניות מגדירה סריקה תקופתית ברמה 1 של CIS עם תקופת ברירת המחדל של פעם ביום.
הקצאת מדיניות מערכת ההפעלה
הקצאת מדיניות של מערכת הפעלה כוללת את המקטעים הבאים:
מדיניות OS. מדיניות אחת או יותר של מערכת ההפעלה שרוצים להחיל על המכונה הווירטואלית. כדי להוריד או ליצור מדיניות, אפשר לעיין במאמר בנושא מדיניות של מערכת הפעלה.
מכונות וירטואליות ליעד. קבוצה של מכונות וירטואליות באזור אחד שרוצים להחיל עליהן את המדיניות. באזור מסוים, אפשר להגביל או להגדיר הגבלות על מכונות וירטואליות על ידי ציון שמות מערכות ההפעלה והכללה או החרגה של תוויות. אפשר לבחור שילוב של האפשרויות הבאות:
- אזור: מציינים את Cloud de Confiance by S3NS האזור שבו רוצים להפעיל את הקצאת מדיניות מערכת ההפעלה.
- השם והגרסה של מערכת ההפעלה: מציינים את השם הקצר והגרסה של מערכת ההפעלה שאליה חלה מדיניות מערכת ההפעלה. דוגמה לאופן טירגוט של כמה מערכות הפעלה מופיעה בדוגמה 4.
כדי לסנן מכונות וירטואליות לפי מערכת ההפעלה, אפשר להשתמש בכל אחד מהשמות הקצרים הבאים בקובצי ה-YAML של מדיניות מערכת ההפעלה:
שם מלא שם מקוצר CentOS centosמערכת הפעלה שמותאמת לקונטיינרים (COS) cosDebian debianopenSUSE Leap opensuse-leapOracle Linux olRed Hat Enterprise Linux (RHEL) rhelRocky Linux rockySUSE Linux Enterprise Server (SLES) slesUbuntu ubuntuWindows Server windowsהרשימה המלאה של מערכות ההפעלה והגרסאות שתומכות במדיניות מערכת ההפעלה זמינה במאמר פרטים על מערכת ההפעלה.
- include set: מציין את מכונות ה-VM שהמדיניות של מערכת ההפעלה חלה עליהן על סמך תוויות של מכונות וירטואליות או של מערכת.
- הגדרה של החרגה: מציינת את המכונות הווירטואליות שמדיניות מערכת ההפעלה צריכה להתעלם מהן על סמך תוויות של מכונות וירטואליות או של המערכת.
גם עבור קבוצות תוויות להכללה וגם עבור קבוצות תוויות להחרגה, המערכת מקבלת תווית מחרוזת יחידה אם היא תואמת למוסכמת מתן השמות שבה המערכת משתמשת. עם זאת, רוב התוויות מוגדרות בזוגות של
key:value. מידע נוסף על תוויות זמין במאמר הוספת תוויות למשאבים.לדוגמה, אפשר לבחור את כל המכונות הווירטואליות של Ubuntu בסביבת הבדיקה, ולהחריג את אלה שמריצות Google Kubernetes Engine, על ידי ציון הפרטים הבאים:
- שם מקוצר של מערכת ההפעלה:
ubuntu - כלול:
env:test,env:staging - לא כולל:
goog-gke-node
שיעור השקה. המדיניות הזו קובעת את הקצב שבו יוחלו כללי המדיניות של מערכת ההפעלה על המכונות הווירטואליות. ההפצה של מדיניות מערכת ההפעלה מתבצעת בהדרגה כדי לאפשר לכם לעקוב אחרי תקינות המערכת ולבצע שינויים אם העדכונים גורמים לרגרסיות בסביבה שלכם. תוכנית השקה כוללת את הרכיבים הבאים:
- גודל הגל (תקציב ההפרעה): מספר קבוע או אחוז קבוע של מכונות וירטואליות שיכולות לחוות פריסה בו-זמנית. המשמעות היא שבכל רגע במהלך ההשקה, רק מספר מסוים של מכונות וירטואליות מוגדר כמטרה.
- זמן ההמתנה: הזמן שחולף מהרגע שבו השירות מחיל מדיניות על מכונת ה-VM ועד לרגע שבו מכונת ה-VM מוסרת מסף השיבוש. לדוגמה, זמן המתנה של 15 דקות אומר שתהליך ההשקה צריך להמתין 15 דקות אחרי החלת המדיניות על מכונה וירטואלית, לפני שהוא יכול להסיר את המכונה הווירטואלית מסף השיבוש ולהמשיך בהשקה. זמן ההמתנה עוזר לשלוט במהירות ההשקה, וגם מאפשר לכם לזהות ולפתור בעיות פוטנציאליות בהשקה בשלב מוקדם. בוחרים פרק זמן ארוך מספיק כדי לעקוב אחרי הסטטוס של ההשקות.
לדוגמה, אם מגדירים יעד של 10 מכונות וירטואליות, סף שיבוש של 20% וזמן המתנה של 15 דקות, אז בכל רגע נתון, רק 2 מכונות וירטואליות מתוזמנות לעדכון. אחרי שכל מכונה וירטואלית מתעדכנת, צריכות לעבור 15 דקות לפני שהמכונה הווירטואלית מוסרת מסף השיבוש ומכונה וירטואלית אחרת מתווספת לפריסה.
מידע נוסף על השקות זמין במאמר השקות.
דוגמה להקצאת מדיניות מערכת הפעלה
בדוגמאות הבאות אפשר לראות איך יוצרים הקצאות של מדיניות מערכת הפעלה. אפשר להשתמש בדוגמאות האלה כדי ליצור הקצאות של מדיניות מערכת הפעלה מ-Google Cloud CLI או מ-OS Config API.
- דוגמה 1: התקנת חבילה.
- דוגמה 2: הרצת סקריפט.
- דוגמה 3: מציינת מאגר להורדה ומתקינה חבילות מהמאגר הזה.
- דוגמה 4: הקצאת מדיניות של מערכת הפעלה שחלה על כמה מערכות הפעלה.
רשימה של הקצאות לדוגמה של מדיניות מערכת הפעלה שאפשר להחיל בסביבה שלכם זמינה במאגר GitHub GoogleCloudPlatform/osconfig.
דוגמה 1
יוצרים הקצאת מדיניות של מערכת הפעלה שמתקינה קובץ MSI של Windows שהורד מקובץ של Cloud Storage.
דוגמה 2
יוצרים הקצאת מדיניות למערכת ההפעלה שמאמתת אם שרת האינטרנט של Apache פועל בכל המכונות הווירטואליות של Linux.
דוגמה 3
יוצר הקצאה של מדיניות מערכת הפעלה שמתקינה סוכני Google Cloud Observability במכונות וירטואליות של CentOS.
דוגמה 4
יוצר הקצאת מדיניות של מערכת הפעלה שחלה על כמה מערכות הפעלה של Linux ו-Windows.