שימוש במדיניות מערכת הפעלה כדי לשמור על הגדרות תוכנה עקביות במכונות וירטואליות (VM) של Linux ו-Windows.
לפני שמתחילים
- בדיקת מדיניות מערכת ההפעלה והקצאת מדיניות מערכת ההפעלה.
- בודקים את המכסות של OS Config.
- כדי ליצור יומני ביקורת לאירועים ב-VM Manager, צריך להפעיל יומני ביקורת של גישה לנתונים.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS
gcloud
-
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
-
- הגדרת אזור ותחום כברירת מחדל
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
Terraform
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
מערכות הפעלה נתמכות
הרשימה המלאה של מערכות ההפעלה והגרסאות שתומכות במדיניות מערכת ההפעלה זמינה במאמר פרטים על מערכת ההפעלה.
הרשאות
מכיוון שאפשר להשתמש במדיניות מערכת ההפעלה כדי להתקין חבילות תוכנה במכונה וירטואלית ולנהל אותן, יצירה וניהול של מדיניות מערכת ההפעלה שווים למתן גישה להרצת קוד מרחוק במכונה וירטואלית. כשמגדירים מדיניות של מערכת הפעלה, נעשה שימוש בהרשאות IAM כדי לקבוע את הגישה למשאבי המדיניות, והפעילויות מתועדות ביומן הביקורת.
לבעלי פרויקט יש גישה מלאה ליצירה ולניהול של הקצאות של מדיניות מערכת הפעלה. לכל שאר המשתמשים, צריך להעניק הרשאות. אפשר להעניק את אחד מהתפקידים הבאים עם הרשאות מפורטות:
- אדמין של הקצאת מדיניות OS (
roles/osconfig.osPolicyAssignmentAdmin). התפקיד הזה כולל הרשאות ליצירה, למחיקה, לעדכון, לקבלת רשימה ולהצגת רשימה של הקצאות מדיניות OS. - כלי העריכה של OSPolicyAssignment (
roles/osconfig.osPolicyAssignmentEditor). הכלי הזה מכיל הרשאות לעדכון, לקבלת רשימה ולצפייה ברשימה של הקצאות של מדיניות מערכת ההפעלה. - צפייה בהקצאת מדיניות של מערכת הפעלה (
roles/osconfig.osPolicyAssignmentViewer). ההרשאה הזו מאפשרת גישת קריאה בלבד כדי לקבל ולרשום הקצאות של מדיניות מערכת הפעלה.
פקודה לדוגמה להגדרת הרשאות
כדי להעניק למשתמש הרשאת אדמין להקצאות של מדיניות מערכת ההפעלה, מריצים את הפקודה הבאה:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member user:USER_ID@gmail.com \
--role roles/osconfig.osPolicyAssignmentAdmin
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
USER_ID: שם המשתמש של המשתמש ב-Google Workspace
יצירת הקצאה של מדיניות מערכת הפעלה
כדי ליצור הקצאת מדיניות למערכת הפעלה ולהשיק אותה, מבצעים את השלבים הבאים:
- הגדרת VM Manager
- מקצים למשתמשים את ההרשאות הנדרשות.
- עיון במדיניות מערכת ההפעלה ובהקצאת מדיניות מערכת ההפעלה
- יוצרים את משאבי המדיניות של מערכת ההפעלה.
כדי ליצור ולהטמיע את הקצאת מדיניות מערכת ההפעלה, משתמשים באחת מהשיטות הבאות:
המסוף
כדי ליצור הקצאת מדיניות למערכת הפעלה ולהשיק אותה, מבצעים את השלבים הבאים:
- בלקוח המקומי, יוצרים או מורידים מדיניות של מערכת הפעלה. הקובץ צריך להיות בפורמט JSON או YAML. מידע נוסף על יצירת מדיניות OS או על מדיניות OS לדוגמה זמין במאמר מדיניות OS.
נכנסים לדף OS policies במסוף Cloud de Confiance .
לוחצים על יצירת אזור.
בקטע Assignment ID, מציינים שם להקצאת מדיניות מערכת ההפעלה. מוסכמות למתן שמות למשאבים
בקטע OS policies (מדיניות מערכת ההפעלה), מעלים את קובץ המדיניות של מערכת ההפעלה.
בקטע Target VM instances (מכונות וירטואליות לטירגוט), מציינים את המכונות הווירטואליות לטירגוט.
- בוחרים את האזור שמכיל את המכונות הווירטואליות שרוצים להחיל עליהן את המדיניות.
- בוחרים את משפחות מערכות ההפעלה.
- אופציונלי: אפשר לסנן עוד יותר את המכונות הווירטואליות על ידי ציון תוויות להכללה ולהחרגה.
לדוגמה, אפשר לבחור את כל המכונות הווירטואליות של Ubuntu בסביבת הבדיקה, ולהחריג את אלה שמריצות את Google Kubernetes Engine, על ידי ציון הפרטים הבאים:
- שם מקוצר של מערכת ההפעלה:
ubuntu - כלול:
env:test,env:staging - לא כולל:
goog-gke-node

מגדירים תוכנית השקה.
- מציינים את גודל הגל (נקרא גם תקציב השיבושים). לדוגמה, 10%.
- מציינים את זמן ההמתנה. לדוגמה, 15 דקות.

לוחצים על הפעלת ההשקה.
gcloud
כדי ליצור הקצאה של מדיניות מערכת הפעלה ולהשיק אותה באזור:
יוצרים משאב להקצאת מדיניות של מערכת הפעלה בפורמט JSON או YAML. בקובץ הזה מוגדרות מדיניות מערכת ההפעלה שרוצים להחיל על המכונות הווירטואליות, המכונות הווירטואליות שהמדיניות תחול עליהן ושיעור ההשקה שבו המדיניות תוחל. מידע נוסף על הקובץ הזה ועל מטלות לדוגמה זמין במאמר בנושא הקצאת מדיניות למערכת ההפעלה.
משתמשים בפקודה
os-config os-policy-assignments createכדי ליצור הקצאה של מדיניות מערכת הפעלה ולפרוס אותה במיקום שצוין.gcloud compute os-config os-policy-assignments create OS_POLICY_ASSIGNMENT_ID \ --location=ZONE \ --file=OS_POLICY_ASSIGNMENT_FILE \ --async
מחליפים את מה שכתוב בשדות הבאים:
OS_POLICY_ASSIGNMENT_ID: השם של הקצאת מדיניות מערכת ההפעלה. מוסכמות למתן שמות למשאבים-
ZONE: האזור שבו ייצור את הקצאת מדיניות מערכת ההפעלה. -
OS_POLICY_ASSIGNMENT_FILE: הנתיב המוחלט לקובץ הקצאת מדיניות מערכת ההפעלה שיצרתם בשלב הקודם.
דוגמה
gcloud compute os-config os-policy-assignments create my-os-policy-assignment \ --location=asia-south1-a \ --file=/downloads/assignment-config.yaml \ --asyncהפלט אמור להיראות כך:
Create request issued for: [my-os-policy-assignment] Check operation [projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa] for status.
רושמים את שם המשאב שמוגדר במלואו עבור הפעולה. בדוגמה הקודמת, השם המוגדר במלואו של המשאב הוא:
projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa
אפשר להשתמש בשם המשאב המוגדר במלואו הזה כדי לקבל פרטים על השקת גרסה או כדי לבטל השקת גרסה. מידע נוסף על השקות
Terraform
כדי ליצור הקצאת מדיניות של מערכת הפעלה, משתמשים במשאב
google_os_config_os_policy_assignment.בדוגמה הבאה מוודאים ששרת האינטרנט של Apache פועל במכונות וירטואליות של CentOS.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
REST
כדי ליצור הקצאת מדיניות של מערכת הפעלה בלקוח המקומי:
יוצרים הקצאת מדיניות למערכת הפעלה. הקובץ חייב להיות בפורמט JSON. מידע נוסף על יצירת הקצאות של מדיניות מערכת הפעלה ודוגמאות להקצאות של מדיניות מערכת הפעלה
אם רוצים להשתמש בהקצאת מדיניות לדוגמה של מערכת הפעלה בפורמט YAML, צריך להמיר אותה לפורמט JSON.
ב-API, יוצרים בקשת
POSTאל ה-methodprojects.locations.osPolicyAssignments.create.בגוף הבקשה, מדביקים את המפרטים של הקצאת מדיניות מערכת ההפעלה מהשלב הקודם.
POST https://osconfig.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/osPolicyAssignments?osPolicyAssignmentId=OS_POLICY_ASSIGNMENT_ID { JSON_OS_POLICY }מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
OS_POLICY_ASSIGNMENT_ID: השם של הקצאת מדיניות מערכת ההפעלה -
JSON_OS_POLICY: המפרטים של הקצאת מדיניות מערכת ההפעלה שנוצרו בשלב הקודם. הפורמט חייב להיות JSON. מידע נוסף על הפרמטרים והפורמט זמין במאמרResource: OSPolicyAssignment. -
ZONE: האזור שבו רוצים ליצור את הקצאת מדיניות מערכת ההפעלה
דוגמה
לדוגמה, כדי ליצור הקצאת מדיניות של מערכת הפעלה ל-Google Cloud Observability שמתקינה סוכני ניטור ורישום ביומנים במכונות וירטואליות נבחרות באמצעות הקצאת מדיניות לדוגמה של מערכת הפעלה, מבצעים את השלבים הבאים:
- המרת הדוגמה ל-JSON
- שולחים את הבקשה הבאה:
POST https://osconfig.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/osPolicyAssignments?osPolicyAssignmentId=OS_POLICY_ASSIGNMENT_ID { "osPolicies": [ { "id": "setup-repo-and-install-package-policy", "mode": "ENFORCEMENT", "resourceGroups": [ { "resources": [ { "id": "setup-repo", "repository": { "yum": { "id": "google-cloud-monitoring", "displayName": "Google Cloud Monitoring Agent Repository", "baseUrl": "https://packages.cloud.google.com/yum/repos/google-cloud-monitoring-el8-x86_64-all", "gpgKeys": [ "https://packages.cloud.google.com/yum/doc/yum-key.gpg", "https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg" ] } } }, { "id": "install-pkg", "pkg": { "desiredState": "INSTALLED", "yum": { "name": "stackdriver-agent" } } } ] } ] } ], "instanceFilter": { "inclusionLabels": [ { "labels": { "used_for": "testing" } } ] }, "rollout": { "disruptionBudget": { "fixed": 10 }, "minWaitDuration": { "seconds": 300 } } }-
השקות
הקצאות של מדיניות מערכת ההפעלה נפרסות בהתאם לקצב ההשקה. המשמעות היא שאפשר לפרוס בהדרגה הקצאות שמטרגטות קבוצה של מכונות וירטואליות, והן לא יחולו על כל המכונות הווירטואליות באופן מיידי. השינויים מושקים בהדרגה כדי לאפשר לכם להתערב ולבטל השקה אם שינויים חדשים גורמים לרגרסיות.
כשקריאות ל-method של API עשויות להימשך זמן רב, ה-API מחזיר פעולות ממושכות (LRO). מידע נוסף על פעולות ממושכות זמין במאמר בנושא פעולות ממושכות.
ממשק OS Config API יוצר LRO בכל פעם שיוצרים, מעדכנים או מוחקים הקצאה של מדיניות מערכת הפעלה. כל LRO מחזיר משאב של פעולה. משאב הפעולה אמור להיראות כך:
Create request issued for: [my-os-policy-assignment] Check operation [projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa] for status.
בנוסף, כל פעולת יצירה, עדכון או מחיקה יוצרת גרסה חדשה של הקצאת מדיניות למערכת ההפעלה. כדי לראות את השינויים בהקצאת מדיניות של מערכת הפעלה, אפשר לעיין במאמר רשימת השינויים בהקצאת מדיניות של מערכת הפעלה.
אפשר להשתמש ב-Google Cloud CLI כדי לקבל את הפרטים של השקת גרסה או כדי לבטל השקת גרסה.
קבלת פרטים על השקת גרסה
כדי לקבל פרטים על השקת תכונה, משתמשים בפקודה os-config os-policy-assignments operations describe.
gcloud compute os-config os-policy-assignments operations describe FULLY_QUALIFIED_OPERATION_NAME
מחליפים את FULLY_QUALIFIED_OPERATION_NAME בשם המשאב המלא של הפעולה שמוחזרת מהפעולה ליצירה, לעדכון או למחיקה.
דוגמה
gcloud compute os-config os-policy-assignments operations describe \
projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa
פלט לדוגמה
done: true
metadata:
'@type': type.googleapis.com/google.cloud.osconfig.$$api-version$$.OSPolicyAssignmentOperationMetadata
apiMethod: CREATE
osPolicyAssignment: projects/3841234882888/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment@cfb78790-41d8-40d1-b8a1-1eaf6011b909
rolloutStartTime: '2021-04-15T00:53:52.963569Z'
rolloutState: SUCCEEDED
rolloutUpdateTime: '2021-04-15T00:53:53.094041Z'
name: projects/3841234882888/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/cfb78790-41d8-40d1-b8a1-1eaf6011b909
response:
'@type': type.googleapis.com/google.cloud.osconfig.$$api-version$$.OSPolicyAssignment
baseline: true
description: My test policy
instanceFilter:
inclusionLabels:
- labels:
label-key-not-targeting-instances: label-value-not-targeting-instances
name: projects/3841234882888/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment
osPolicies:
- id: q-test-policy
mode: ENFORCEMENT
resourceGroups:
- osFilter:
osShortName: centos
osVersion: '7'
resources:
- id: add-repo
repository:
yum:
baseUrl: https://packages.cloud.google.com/yum/repos/google-cloud-ops-agent-el7-x86_64-all
ביטול השקה
המסוף
נכנסים לדף OS policies במסוף Cloud de Confiance .
לוחצים על הכרטיסייה הקצאות אזוריות.
בקטע 'הקצאת מדיניות למערכת ההפעלה', בשורה של הקצאת המדיניות שרוצים לבטל את ההשקה שלה, לוחצים על פעולה ()> ביטול ההשקה.
לוחצים על ביטול ההשקה.
gcloud
כדי לבטל את ההשקה, משתמשים בפקודה gcloud compute os-config os-policy-assignments operations cancel.
gcloud compute os-config os-policy-assignments operations cancel FULLY_QUALIFIED_OPERATION_NAME
מחליפים את FULLY_QUALIFIED_OPERATION_NAME בשם המשאב המלא של הפעולה שמוחזרת מהפעולה ליצירה, לעדכון או למחיקה.
דוגמה
gcloud compute os-config os-policy-assignments operations cancel \
projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa
אם הפקודה מצליחה, לא מוחזר פלט.
מה השלב הבא?
- מידע נוסף על מדיניות מערכת ההפעלה
- ניהול הקצאות של מדיניות מערכת ההפעלה.