מגבלות מנוהלות הן כללי מדיניות ארגוניים מוגדרים מראש, שמבוססים על פלטפורמה מודרנית, ומספקים שליטה מרכזית ופרוגרמטית על משאבי Compute Engine. הם כוללים תמיכה מובנית בכלים להשקה בטוחה, כמו Policy Simulator (סימולטור מדיניות) והרצת בדיקה.
אפשר לזהות אילוצים מנוהלים לפי הקידומת compute.managed.*, והם משמשים כתחליף ישיר לאילוצים מדור קודם compute.*.
יתרונות
- פריסה ומעקב בטוחים: הטמעה של כללי מדיניות עם כלים מלאים, שליטה מהירה יותר בשינויים ופריסה הדרגתית באמצעות סימולציה ויכולות הרצה יבשה.
- רישום עקבי ביומן: מאפשר אחידות ברישום ביומן ובהודעות השגיאה, וכך מפשט את המעקב המרכזי ומייעל את הביקורות.
העברה בירושה של מדיניות
כללי מדיניות הארגון שאתם מגדירים במשאב מסוים עוברים בירושה לצאצאים של המשאב בהיררכיית המשאבים. לדוגמה, אם אוכפים מדיניות בתיקייה, Cloud de Confiance by S3NS המדיניות נאכפת בכל הפרויקטים בתיקייה הזו.
תמחור
שירות מדיניות הארגון, כולל מדיניות ארגון מוגדרת מראש (מדורי קודמים), מנוהלת ומותאמת אישית, מוצע ללא תשלום.
לפני שמתחילים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי 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
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
- חשוב לוודא שאתם יודעים מהו מספר הארגון שלכם.
- אם עדיין לא עשיתם זאת, מתקינים את ה-CLI של gcloud ומפעילים אותו באמצעות הפקודה
gcloud init. - מגדירים פרויקט ברירת מחדל לבדיקה.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לניהול כללי מדיניות ארגונית עם אילוצים מנוהלים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- אדמין של מדיניות הארגון (
roles/orgpolicy.policyAdmin) במשאב הארגון -
כדי לבדוק את האילוצים:
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) בפרויקט
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות לניהול מדיניות הארגון עם אילוצים מנוהלים. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לנהל את כללי מדיניות הארגון עם אילוצים מנוהלים, נדרשות ההרשאות הבאות:
-
orgpolicy.constraints.list -
orgpolicy.policies.create -
orgpolicy.policies.delete -
orgpolicy.policies.list -
orgpolicy.policies.update -
orgpolicy.policy.get -
orgpolicy.policy.set -
כדי לבדוק את האילוצים:
-
compute.instances.createבפרויקט - כדי להשתמש באימג' בהתאמה אישית ליצירת המכונה הווירטואלית (VM):
compute.images.useReadOnlyבקובץ אימג' - כדי להשתמש ב-snapshot ליצירת המכונה הווירטואלית:
compute.snapshots.useReadOnlyבקובץ ה-snapshot - כדי להשתמש בתבנית של הגדרות מכונה ליצירת המכונה הווירטואלית:
compute.instanceTemplates.useReadOnlyבתבנית של הגדרות המכונה - כדי להקצות רשת מדור קודם למכונה הווירטואלית:
compute.networks.useבפרויקט - כדי לציין כתובת IP סטטית למכונה הווירטואלית:
compute.addresses.useבפרויקט - כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת מדור קודם:
compute.networks.useExternalIpבפרויקט - כדי לציין רשת משנה למכונה הווירטואלית:
compute.subnetworks.useבפרויקט או ברשת המשנה שנבחרה - כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת VPC:
compute.subnetworks.useExternalIpבפרויקט או ברשת המשנה שנבחרה - כדי להגדיר מטא-נתונים של המכונה הווירטואלית:
compute.instances.setMetadataבפרויקט - כדי להגדיר תגים למכונה הווירטואלית:
compute.instances.setTagsבמכונה הווירטואלית - כדי להגדיר תוויות למכונה הווירטואלית:
compute.instances.setLabelsבמכונה הווירטואלית - כדי להגדיר חשבון שירות לשימוש של המכונה הווירטואלית:
compute.instances.setServiceAccountבמכונה הווירטואלית - כדי ליצור דיסק חדש למכונה הווירטואלית:
compute.disks.createבפרויקט - כדי לצרף דיסק קיים במצב קריאה-בלבד או במצב קריאה וכתיבה:
compute.disks.useבדיסק - כדי לצרף דיסק קיים במצב קריאה-בלבד:
compute.disks.useReadOnlyבדיסק
-
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
אילוצים מנוהלים זמינים
אילוצי מדיניות הארגון המנוהלים הבאים זמינים ב-Compute Engine:
הערכה היררכית של מטא-נתונים
אילוצים מנוהלים שמסתמכים על מפתחות מטא-נתונים מוגדרים מראש, כמו OS Login או Serial Port Access, תומכים בהערכה היררכית. כש-Compute Engine מעריך את האילוצים האלה, הוא בודק את ערכי המטא-נתונים שהוגדרו ברמת המכונה הווירטואלית, הפרויקט או האזור.
הגדרת ערכי מטא-נתונים ברמת הפרויקט או ברמת האזור מאפשרת לכם לנהל מכונות וירטואליות בהיקף גדול. עם זאת, אכיפת האילוצים מתרחשת רק במהלך יצירת מכונת VM או קריאות API לעדכון. לכן, שינויים במטא-נתונים של פרויקט או אזור משפיעים על התאימות של מכונת VM לאילוצים רק כשיוצרים או מעדכנים את המכונה.
אילוצים ורמות שמבוססים על מטא-נתונים
| מגבלה | מפתח מטא-נתונים | רמות בהיררכיית המטא-נתונים |
|---|---|---|
compute.managed.disableSerialPortAccess |
serial-port-enable |
פרויקט, אזור, מכונה |
compute.managed.requireOsLogin |
enable-oslogin |
פרויקט, אזור, מכונה |
compute.managed.disableGuestAttributesAccess |
enable-guest-attributes |
פרויקט, אזור, מכונה |
compute.managed.requireOsConfig |
enable-osconfig |
פרויקט, אזור, מכונה |
compute.managed.disallowGlobalDns |
VmDnsSetting |
פרויקט, מכונה |
השקה בטוחה: מחזור החיים של המדיניות
כדי למנוע שיבושים בשירות כשמטמיעים בהדרגה אילוצים חדשים, מומלץ להטמיע אילוצים מנוהלים באופן הבא:
ניתוח באמצעות כלי הסימולציה של המדיניות
לפני שאוכפים מדיניות, כדאי להשתמש בסימולטור המדיניות כדי לראות אילו משאבים קיימים מפרים את המדיניות. איך לעשות את זה?
נכנסים לדף Organization Policies במסוף Cloud de Confiance .
בסרגל המסננים, מחפשים את ההגבלה ולוחצים על שם ההגבלה כדי לעבור לדף פרטי המדיניות שלה.
לוחצים על בדיקת שינויים כדי ליצור דוח סימולציה.
יכול להיות שיחלפו כמה שעות עד שהשינויים בהיררכיית המטא-נתונים יופיעו בדוח הסימולציה של הגבלות על הגדרות המטא-נתונים של מכונות וירטואליות.
בודקים את הדוח כדי להגדיר מחדש משאבים שלא עומדים בדרישות או כדי לבקש פטורים.
אימות באמצעות הרצה יבשה
במצב הרצה יבשה, ההפרות נרשמות ב-Cloud Logging אבל ההגבלות לא נאכפות.
כדי לבדוק אילוץ, משתמשים בפקודה gcloud org-policies set-policy באופן הבא:
יוצרים קובץ YAML של מדיניות (לדוגמה,
dry-run-policy.yaml) עםdryRunSpec:name: projects/PROJECT_ID/policies/compute.managed.requireOsLogin dryRunSpec: rules: - enforce: trueמחליפים את
PROJECT_IDבמזהה הפרויקט.החלת המדיניות:
gcloud org-policies set-policy dry-run-policy.yaml
אכיפה מלאה
אחרי שמדמים את המדיניות ובודקים אותה, אפשר לאכוף אותה על משאב. יכול להיות שיחלפו עד 15 דקות עד שהשינויים במדיניות יתעדכנו בכל המערכות שלCloud de Confiance by S3NS .
בדיקת אכיפת האילוצים
אחרי שמגדירים מדיניות, אפשר לוודא שהיא נאכפת באמצעות ה-CLI של gcloud. לדוגמה, כדי לבדוק את האילוץ compute.managed.requireOsLogin, מבצעים את השלבים הבאים:
כדי לוודא שההגדרה שלכם נכונה, אתם יכולים להציג רשימה של כללי המדיניות הקיימים:
gcloud org-policies list --project=PROJECT_IDהחלת מדיניות האכיפה באמצעות קובץ YAML:
gcloud org-policies set-policy enforce_managed_constraint.yamlכדי לאמת את האכיפה, קוראים ל-API של מוטציה. ניסיון ליצור מכונה וירטואלית עם מטא-נתונים שלא עומדים בדרישות אמור להיכשל:
gcloud compute instances create VM_NAME \ --machine-type=MACHINE_TYPE \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --metadata=enable-oslogin=falseמחליפים את מה שכתוב בשדות הבאים:
-
VM_NAME: השם של המופע החדש של מכונה וירטואלית. -
MACHINE_TYPE: סוג מכונה תקין, לדוגמה,e2-micro. -
IMAGE_FAMILY: משפחת תמונות תקינה, לדוגמה,debian-11. -
IMAGE_PROJECT: הפרויקט של משפחת התמונות, לדוגמה,debian-cloud.
-
בודקים את הודעת השגיאה. אמורה להופיע הודעת דחייה שמציינת את האילוץ הספציפי שהופר:
ERROR: (gcloud.compute.instances.create) Could not fetch resource: - Operation denied by org policy: [constraints/compute.managed.requireOsLogin]
פטורים מותנים עם תגים
אתם יכולים להשתמש בתגים כדי להעניק חריגים למשאבים ספציפיים על סמך צרכים עסקיים. בדוגמה הזו, אנחנו משתמשים בתג בשם osLoginOptional כדי לזהות משאבים שפטורים מהדרישה של OS Login. כשמקשרים את התג הזה עם הערך true למשאב, מדיניות הארגון מאפשרת את קיומו של המשאב הספציפי הזה בלי שהכניסה באמצעות OS Login מופעלת, גם אם המדיניות נאכפת באופן מחמיר בשאר הסביבה.
כדי להעניק חריגה באמצעות תגים:
יצירת תג: משתמשים ב-CLI של gcloud כדי ליצור מפתח תג וערך תג.
יוצרים את מפתח התג:
gcloud resource-manager tags keys create osLoginOptional \ --parent=organizations/ORGANIZATION_IDיוצרים את ערך התג:
gcloud resource-manager tags values create true \ --parent=organizations/ORGANIZATION_ID/tagKeys/osLoginOptional
מחליפים את
ORGANIZATION_IDבמזהה הארגון.מקשרים את התג למשאב. כדי להחריג פרויקט מהאילוץ
compute.managed.requireOsLogin, צריך לקשר את התגosLoginOptional=trueלפרויקט באמצעות הפקודהgcloud resource-manager tags bindings create:gcloud resource-manager tags bindings create \ --tag-value=ORGANIZATION_ID/osLoginOptional/true \ --parent=//cloudresourcemanager.googleapis.com/projects/PROJECT_ID \ --location=globalמחליפים את
ORGANIZATION_IDבמזהה הארגון ואתPROJECT_IDבמזהה הפרויקט שרוצים להחריג.במאמר קישור תג למשאב מוסבר איך לקשר תגים למשאבים אחרים.
מעדכנים את המדיניות: יוצרים או מעדכנים את קובץ ה-YAML של המדיניות (לדוגמה,
policy.yaml) כדי לכלול את הכלל המותנה.name: projects/PROJECT_ID/policies/compute.managed.requireOsLogin spec: rules: - condition: expression: "resource.matchTag('ORGANIZATION_ID/osLoginOptional', 'true')" enforce: false - enforce: trueמחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
ORGANIZATION_ID: מזהה הארגון.
מחילים את המדיניות: משתמשים בפקודה הבאה של ה-CLI של gcloud כדי להפעיל את ההגדרה:
gcloud org-policies set-policy policy.yaml
העברה ממגבלות קודמות
במהלך ההעברה, חשוב לזכור שאילוצים מנוהלים משפרים את ההתנהגות של כללי המדיניות הקודמים, אבל לא משכפלים אותה בדיוק. האילוצים המנוהלים מספקים יכולת חיזוי טובה יותר, כי הם בודקים הפרות רק במהלך בקשות API שיוצרות או משנות משאבים. אם בקשה מפרה אילוץ, קריאה ל-API נכשלת עם שגיאה ברורה. זה שונה ממדיניות מדור קודם, שאפשר היה לאכוף אותה בשלבים שונים של פעולה או להשתמש בה כמאפייני משאב, ולכן התנהגות האכיפה הייתה פחות צפויה.
כשעוברים מאילוץ מדור קודם compute.* לאילוץ מודרני compute.managed.* מקביל, צריך לפעול לפי השלבים הבאים כדי למנוע החמרה לא מכוונת של ההגבלות:
- גילוי: זיהוי החלופה החדשה למגבלה המנוהלת.
- ניתוח ואימות: משתמשים בסימולטור המדיניות ובניסיון הרצה כמו שמתואר למעלה.
- אכיפת הגבלה מנוהלת: החלת ההגבלה המנוהלת החדשה לצד ההגבלה הקודמת.
- מחיקת כללי מדיניות מדור קודם:
- עוברים אל 'מלאי נכסים' ב Cloud de Confiance מסוף ומסננים לפי
orgpolicy.Policyושם האילוץ מדור קודם כדי לזהות את כל כללי המדיניות שמשתמשים באילוץ מדור קודם. - מוחקים את כל כללי המדיניות שמשתמשים באילוץ מהגרסה הקודמת. אם מוחקים מדיניות, היא חוזרת להתנהגות ברירת המחדל שמנוהלת על ידי Google עבור האילוץ הזה.
- עוברים אל 'מלאי נכסים' ב Cloud de Confiance מסוף ומסננים לפי
המאמרים הבאים
- במאמר הזה מוסבר על המושגים הבסיסיים של השירות ועל היתרונות שלו.
- הוראות מפורטות ליצירה ולניהול של כללי מדיניות זמינות במאמרי העזרה של מנהל המשאבים.
- רשימה מלאה של אילוצים שזמינים בכל שירותי Cloud de Confiance by S3NS .
- כך משתמשים בסימולטור המדיניות לניתוח מתקדם של ההשפעה של מדיניות הארגון.