בדף הזה מוסבר איך לאכוף באופן סלקטיבי מדיניות של חומת אש ברשת Cloud Next Generation Firewall ב-Google Kubernetes Engine (GKE) באמצעות תגים. תגים מאפשרים לכם לארגן את היררכיית המשאבים בצורה פרטנית יותר בהשוואה ל Cloud de Confiance by S3NS היררכיית המשאבים שמוגדרת כברירת מחדל. התגים מאפשרים גם לאכוף מדיניות באופן מותנה.
הדף הזה מיועד למומחי אבטחה שרוצים שליטה מדויקת במדיניות חומת האש ב-GKE. כדי לקבל מידע נוסף על תפקידים נפוצים ומשימות לדוגמה שאנחנו מתייחסים אליהם ב Cloud de Confiance by S3NS תוכן, אפשר לעיין במאמר תפקידים נפוצים של משתמשים ב-GKE ומשימות.
לפני שקוראים את הדף הזה, חשוב לוודא שמכירים את המושגים הבאים:
מידע על תגים
תגים הם צמדי מפתח/ערך שמאפשרים להוסיף הערות למשאבים שלכם ב-Cloud de Confiance by S3NS רמת הארגון או הפרויקט ולנהל אותם. אתם יכולים להשתמש בתגים כדי לארגן את המשאבים שלכם וכדי להחיל מדיניות באופן מותנה, כמו חומות אש או מדיניות IAM. אתם יכולים להשתמש בבקרת גישה של IAM כדי להגדיר מי יכול לצרף, ליצור, לעדכן או למחוק תגים.
מידע נוסף על תגים זמין בסקירה הכללית על תגים במאמרי העזרה של Resource Manager.
שימוש בתגים כדי לאכוף מדיניות חומת אש ברשת
אתם יכולים להשתמש בתגים כדי להחיל באופן מותנה מדיניות חומת אש בין רשתות גלובלית או אזורית על צמתי GKE. צריך להגדיר את GCE_FIREWALL המטרה של התגים שרוצים להשתמש בהם עם כללי מדיניות של חומת אש ברשת. כשמחילים תגי ייעוד של חומת אש על אשכולות GKE או על מאגרי צמתים, GKE מצרף באופן אוטומטי את התגים האלה למכונות הווירטואליות (VM) התואמות ב-Compute Engine.
תגים למדיניות חומת אש ברשת מחליפים את הצורך בשימוש בתגים ברשת, שהם מטא-נתונים שכל אחד יכול לצרף למכונות וירטואליות ב-Compute Engine לצורך אכיפה של כלל חומת אש ב-Virtual Private Cloud, ושלא תומכים בבקרת גישה של IAM. אם אתם משתמשים בתגי רשת עם כללי חומת אש של VPC, מומלץ לעבור למדיניות של חומת אש ברשת ולהשתמש בתגי חומת אש מאובטחים. השוואה מפורטת זמינה במאמר השוואה בין תגי רשת לתגים.
תגים לזרימת עבודה של מדיניות חומת אש בין רשתות
כדי להשתמש בתגים עם מדיניות חומת אש ברשת ב-GKE, צריך לבצע את הפעולות הבאות:
כדי ליצור תג:
- מגדירים מפתח תג ברמת הארגון או הפרויקט, כמו
env. - מגדירים את הערכים האפשריים של התג למפתח, כמו
dev,stagingו-prod. מגדירים את התג לשימוש במדיניות חומת אש בין רשתות.
- מגדירים מפתח תג ברמת הארגון או הפרויקט, כמו
נותנים למשתמשים גישה לאינטראקציה עם תג חומת האש.
אפשר להחיל צמדי מפתח/ערך של תגים על אשכולות GKE ספציפיים, על מאגרי צמתים או להשתמש בהם ב-ComputeClasses מותאמים אישית כדי להחיל אותם על צמתים עבור עומסי עבודה ספציפיים. מערכת GKE מצרפת אוטומטית את התגים למכונות הווירטואליות הבסיסיות של Compute Engine כדי לאכוף את מדיניות חומת האש.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק Google Kubernetes Engine API. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את gcloud CLI. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
דרישות ומגבלות
- תגים למדיניות חומת אש ברשת נתמכים ב-GKE בגרסה 1.28 ואילך. אם אתם משתמשים בגרסת GKE מוקדמת יותר מ-1.28, אתם צריכים להשתמש במקום זאת בתגי רשת עם כללי חומת אש של VPC.
- בקטרי תקן, כל מאגר צמתים תומך בעד חמישה תגי חומת אש מצורפים.
- אפשר להשתמש בעד חמישה תגי חומת אש באשכולות Autopilot.
- סוגי מחשוב בהתאמה אישית תומכים בעד חמישה תגים.
- GKE דוחה מפתחות תגים שמשתמשים בקידומת
gke-managed. - צריך ליצור את צמדי מפתח/ערך של התגים לפני שמצרפים אותם לאשכולות או למאגרי צמתים.
תפקידים והרשאות של IAM
כדי לקבל את ההרשאות שדרושות לשימוש בתגים בכללי מדיניות של חומת אש ב-GKE, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
-
כדי לתת את ההרשאות הנדרשות לתגים למשתמשים ולסוכני שירות של GKE:
- אדמין IAM של פרויקט (
roles/resourcemanager.projectIamAdmin) בפרויקט - אדמין ארגוני (
roles/resourcemanager.organizationAdmin) בארגון
- אדמין IAM של פרויקט (
-
כדי ליצור ולנהל תגים: Tag Administrator (
roles/resourcemanager.tagAdmin) בארגון או בפרויקט -
כדי לצרף תגים למשאבים: משתמש בתגים (
roles/resourcemanager.tagUser) בפרויקט
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
יצירת תגים
כדי לצרף תגים לאשכולות או לצמתים, התגים צריכים להתקיים. כדי ליצור תג, אפשר לעיין במאמר בנושא שימוש בתגים עבור חומות אש במסמכי התיעוד של Cloud NGFW.
מפתחות התגים יכולים להיות parent או organizations/ORGANIZATION_IDprojects/PROJECT_ID
כדי להשתמש במפתח תג מאובטח עם Cloud NGFW, צריך להגדיר את המאפיין purpose לערך GCE_FIREWALL, ולציין את הערך של המאפיין purpose-data כ-network או כ-organization=auto.
יוצרים את מפתח התג:
יוצרים את מפתח התג בהיקף הרשת:
מפתח התג הזה מוגבל לרשת ה-VPC שצוינה בשדה
purpose-data.gcloud resource-manager tags keys create TAG_KEY \ --parent=projects/PROJECT_ID \ --purpose=GCE_FIREWALL \ --purpose-data=network=PROJECT_ID/NETWORK_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
TAG_KEY: השם של מפתח התג, למשלenv -
PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance -
NETWORK_NAME: השם של רשת ה-VPC שבה תשתמשו בתג
-
יוצרים את מפתח התג בהיקף הארגון:
אפשר להשתמש במפתח התג הזה בכל רשת VPC בארגון.
gcloud resource-manager tags keys create TAG_KEY \ --parent=projects/PROJECT_ID \ --purpose=GCE_FIREWALL \ --purpose-data=organization=autoמחליפים את מה שכתוב בשדות הבאים:
-
TAG_KEY: השם של מפתח התג, למשלenv -
PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance
הערך
organization=autoיוחלף אוטומטית במזהה הארגון. לדוגמה:purposeData: organization: '123456789012'-
קבלת המזהה של מפתח התג:
gcloud resource-manager tags keys describe PROJECT_ID/TAG_KEY \ --format="value(name)"הפלט הוא
tagKeys/KEY_ID, כאשרKEY_IDהוא מזהה מספרי של המפתח. חשוב לרשום את המזהה הזה כדי להשתמש בו בהמשך.מוסיפים ערך תג למפתח התג:
gcloud resource-manager tags values create TAG_VALUE \ --parent=tagKeys/KEY_IDמחליפים את
TAG_VALUEבשם של ערך מותר למפתח התג הזה, כמוdev.
שימוש בתחביר תגים נכון בפקודות של CLI של gcloud
כשמפנים לתגים באמצעות gcloud CLI, צריך לעצב את צמדי מפתח/ערך באמצעות אחת מהתחבירות הבאות:
| תחביר התג | |
|---|---|
tagKeys/KEY_ID=tagValues/VALUE_ID |
מחליפים את מה שכתוב בשדות הבאים:
לדוגמה, |
ORGANIZATION_ID/TAG_KEY=TAG_VALUE |
מחליפים את מה שכתוב בשדות הבאים:
לדוגמה, |
PROJECT_ID/TAG_KEY=TAG_VALUE |
מחליפים את מה שכתוב בשדות הבאים:
לדוגמה, |
PROJECT_NUMBER/TAG_KEY=TAG_VALUE |
מחליפים את מה שכתוב בשדות הבאים:
לדוגמה, |
תגי יעד עם מדיניות חומת אש
אחרי שיוצרים תגים, אפשר להפנות לצמדים ספציפיים של מפתח/ערך בכללים של מדיניות חומת האש. הוראות מפורטות מופיעות במאמר בנושא שימוש בתגים בחומות אש.
מתן הרשאות IAM לסוכני שירות
כדי שמערכת GKE תצרף באופן אוטומטי תגים לצמתים חדשים במהלך אירועי הגדלה, צריך להקצות את תפקידי ה-IAM המתאימים לחשבונות שירות שמנוהלים על ידי Cloud de Confiance, שנקראים גם סוכני שירות.
מקצים את התפקיד Tag User (
roles/resourcemanager.tagUser) לסוכן השירות של Kubernetes Engine:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@container-engine-robot.s3ns-system.iam.gserviceaccount.com \ --role=roles/resourcemanager.tagUser \ --condition=Noneמחליפים את הערך
PROJECT_NUMBERבמספר הפרויקט של האשכול. Cloud de Confianceכדי למצוא את מספר הפרויקט, מריצים את הפקודה הבאה:gcloud projects describe PROJECT_ID --format="value(projectNumber)"מקצים את התפקיד Tag Holds Administrator (
roles/resourcemanager.tagHoldAdmin) לסוכן השירות של Kubernetes Engine לצמד מפתח/ערך של התג:gcloud resource-manager tags values add-iam-policy-binding PROJECT_ID/TAG_KEY/TAG_VALUE \ --member=serviceAccount:service-PROJECT_NUMBER@container-engine-robot.s3ns-system.iam.gserviceaccount.com \ --role=roles/resourcemanager.tagHoldAdminהתפקיד הזה מאפשר לסוכן השירות למנוע מחיקה של תג אם צמד המפתח-ערך עדיין בשימוש ב-GKE.
מקצים את התפקיד Tag User (
roles/resourcemanager.tagUser) לסוכן השירות של Google APIs:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER@cloudservices.s3ns-system.iam.gserviceaccount.com \ --role=roles/resourcemanager.tagUser \ --condition=None
הקצאת תפקידי IAM נוספים לתגים מחוץ לפרויקט
כדי להשתמש בתגים שנמצאים בבעלות של ארגון או פרויקט אחר שאינו פרויקט האשכול, צריך לבצע את השלבים הנוספים הבאים:
נותנים לסוכן השירות של Kubernetes Engine גישה לתגים במשאב האב באמצעות התפקיד Tag User (משתמש בתגים) (
roles/resourcemanager.tagUser):gcloud resource-manager tags keys add-iam-policy-binding PARENT_RESOURCE/TAG_KEY \ --member=serviceAccount:service-PROJECT_NUMBER@container-engine-robot.s3ns-system.iam.gserviceaccount.com \ --role=roles/resourcemanager.tagUser \ --condition=Noneמחליפים את מה שכתוב בשדות הבאים:
-
PARENT_RESOURCE: מזהה הפרויקט או מזהה הארגון של המשאב שבבעלותו התג הזה -
PROJECT_NUMBER: מספר הפרויקט של פרויקט האשכול
-
נותנים לסוכן השירות של Google APIs את התפקיד Tag User (משתמש בתג) (
roles/resourcemanager.tagUser) עבור התגים במשאב האב:gcloud resource-manager tags keys add-iam-policy-binding PARENT_RESOURCE/TAG_KEY \ --member=serviceAccount:PROJECT_NUMBER@cloudservices.s3ns-system.iam.gserviceaccount.com \ --role=roles/resourcemanager.tagUser \ --condition=Noneמקצים את התפקיד Tag Holds Administrator (אדמין של תגי השהיה) (
roles/resourcemanager.tagHoldAdmin) לסוכן השירות של Kubernetes Engine לצמד מפתח/ערך של התג:gcloud resource-manager tags values add-iam-policy-binding PARENT_RESOURCE/TAG_KEY/TAG_VALUE \ --member=serviceAccount:service-PROJECT_NUMBER@container-engine-robot.s3ns-system.iam.gserviceaccount.com \ --role=roles/resourcemanager.tagHoldAdmin
צירוף תגי חומת אש לאשכולות של Autopilot
מצרפים תגי חומת אש לאשכולות Autopilot ברמת האשכול. GKE מחיל באופן אוטומטי את התגים האלה ברמת האשכול על כל צומת.
צירוף תגים כשיוצרים אשכול חדש של Autopilot
מריצים את הפקודה הבאה:
gcloud container clusters create-auto CLUSTER_NAME \
--location=LOCATION \
--autoprovisioning-resource-manager-tags=TAG1,TAG2,...
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול החדש. -
LOCATION: האזור של Compute Engine שבו נמצא האשכול. -
TAG1,TAG2,...: קבוצה מופרדת בפסיקים של צמדי מפתח/ערך לצירוף. כל צמד של מפתח וערך צריך להיות בפורמט נתמך, כפי שמתואר בקטע תחביר התגים בפקודות. לדוגמה,example-project/env=dev,1234567901/team=sre.
צירוף תגים לאשכולות קיימים של Autopilot
מריצים את הפקודה הבאה:
gcloud container clusters update CLUSTER_NAME \
--location=LOCATION \
--autoprovisioning-resource-manager-tags=TAG1,TAG2,...
כשמעדכנים את התגים באשכול, GKE דורס את כל התגים הקיימים בכל הצמתים.
צירוף תגי חומת אש לאשכולות רגילים ולמאגרי צמתים
השיטה שבה משתמשים כדי לצרף תגים תלויה בשאלה אם רוצים שמאגרי צמתים אחרים באשכול יירשו את התגים, באופן הבא:
| תגי חומת אש סטנדרטיים של אשכול | |
|---|---|
--autoprovisioning-resource-manager-tags |
הגדרה ברמת האשכול GKE מחיל את התגים על כל מאגרי הצמתים החדשים שהוקצו אוטומטית באשכול. אם משתמשים בדגל הזה באשכול קיים, מערכת GKE לא מחילה את התגים על מאגרי הצמתים הקיימים באשכול. מאגרי צמתים קיימים ישמרו את התגים שכבר הוחלו לפני העדכון. כדי לעדכן את התגים של מאגרי צמתים קיימים, משתמשים בדגל |
--resource-manager-tags |
הגדרה ברמת מאגר הצמתים GKE מוסיף את התגים למאגר הצמתים שצוין. אם משתמשים בדגל הזה במהלך יצירת האשכול, מערכת GKE מוסיפה את התגיות למאגר הצמתים שמוגדר כברירת מחדל ומערכת GKE יוצרת. אם משתמשים בדגל הזה במאגר צמתים שהוקצה אוטומטית, GKE מחליף את כל התגים הקיימים במאגר הצמתים. |
צירוף תגי חומת אש לאשכולות רגילים
אפשר לצרף תגים לאשכולות חדשים או קיימים של Standard. כשמצרפים תגים לאשכול שלם, מערכת GKE מתייחסת לתגים האלה כאילו הם הוגדרו ברמת האשכול.
צירוף תגים לאשכול חדש של Standard עם הקצאת משאבים אוטומטית של צמתים
כברירת מחדל, מערכת GKE משתמשת בתגיות ברמת האשכול לצמתים חדשים שהוקצו אוטומטית. מאגר הצמתים שמוגדר כברירת מחדל ש-GKE יוצר באשכול לא מוקצה באופן אוטומטי ולא מקבל את התגים האלה.
gcloud container clusters create CLUSTER_NAME \
--location=LOCATION \
--autoprovisioning-resource-manager-tags=TAG1,TAG2,... \
--enable-autoprovisioning \
--max-cpu=MAX_CPU \
--max-memory=MAX_MEMORY
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול החדש -
LOCATION: האזור או התחום של Compute Engine עבור האשכול -
TAG1,TAG2,...: קבוצה מופרדת בפסיקים של צמדי מפתח/ערך לצירוף. כל צמד של מפתח וערך צריך להיות בפורמט נתמך, כפי שמתואר בקטע תחביר התגים בפקודות. לדוגמה,example-project/env=dev,1234567901/team=sre. -
MAX_CPU: המספר המקסימלי של ליבות לאשכול -
MAX_MEMORY: נפח הזיכרון המקסימלי של האשכול בג'יגה-בייט
צירוף תגים כשמפעילים הקצאה אוטומטית של צמתים באשכול קיים
GKE מוסיף את התגים האלה רק למאגרי צמתים חדשים שהוקצו אוטומטית. מאגרי הצמתים הקיימים שומרים על התגים שהיו להם לפני העדכון.
מצרפים תגים לאשכול:
gcloud container clusters update CLUSTER_NAME \ --location=LOCATION \ --autoprovisioning-resource-manager-tags=TAG1,TAG2,...מפעילים הקצאת משאבים אוטומטית של צמתים באשכול:
gcloud container clusters update CLUSTER_NAME \ --location=LOCATION \ --enable-autoprovisioning \ --max-cpu=MAX_CPU \ --max-memory=MAX_MEMORY
צירוף תגי חומת אש למאגרי צמתים
אפשר לצרף תגים למאגרי צמתים חדשים או קיימים, בלי קשר לשאלה אם הם משתמשים בהקצאה אוטומטית של צמתים. מערכת GKE מתייחסת לתגים האלה כהגדרה ברמת מאגר הצמתים.
צירוף תגים למאגר ברירת המחדל של הצמתים
כשיוצרים אשכול, GKE מצרף את התגים שציינתם באמצעות הדגל --resource-manager-tags למאגר ברירת המחדל של הצמתים ש-GKE יוצר באשכול.
gcloud container clusters create CLUSTER_NAME \
--location=LOCATION \
--resource-manager-tags=TAG1,TAG2,...
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול החדש -
LOCATION: האזור או התחום של Compute Engine עבור האשכול -
TAG1,TAG2,...: קבוצה מופרדת בפסיקים של צמדי מפתח/ערך לצירוף. כל צמד של מפתח וערך צריך להיות בפורמט נתמך, כפי שמתואר בקטע תחביר התגים בפקודות. לדוגמה,example-project/env=dev,1234567901/team=sre.
צירוף תגים למאגר חדש של צמתים
כשמשתמשים בדגל --resource-manager-tags במהלך יצירת מאגר הצמתים, GKE מצרף את התגים שציינתם למאגר הצמתים הזה.
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=LOCATION \
--resource-manager-tags=TAG1,TAG2,...
מחליפים את מה שכתוב בשדות הבאים:
-
NODE_POOL_NAME: השם של מאגר הצמתים החדש -
CLUSTER_NAME: שם האשכול -
LOCATION: האזור או התחום של Compute Engine שבו נמצא האשכול -
TAG1,TAG2,...:קבוצה מופרדת בפסיקים של צמדי מפתח/ערך לצירוף. כל צמד של מפתח וערך צריך להיות בפורמט נתמך, כפי שמתואר בקטע תחביר התגים בפקודות. לדוגמה,example-project/env=dev,1234567901/team=sre.
צירוף תגים למאגר צמתים קיים
כשמעדכנים את התגים במאגר צמתים קיים באמצעות הדגל --resource-manager-tags, GKE מחליף את כל התגים הקיימים במאגר הצמתים הזה. אפשר להשתמש בפקודה הזו כדי לעדכן את התגים במאגרי צמתים שהוקצו אוטומטית.
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=LOCATION \
--resource-manager-tags=TAG1,TAG2,...
מחליפים את NODE_POOL_NAME בשם של מאגר הצמתים שרוצים לעדכן.
הפעלה והשבתה של הגדרות ניהול תצורה אוטומטי באשכולות ובמאגרי צמתים קיימים
כשמעדכנים תגיות ברמת האשכול, GKE מחיל את התגיות החדשות על כל מאגרי הצמתים החדשים באשכול, ושומר את התגיות שצורפו למאגרי צמתים קיימים.
כשמעדכנים מאגרי צמתים קיימים כדי להפעיל או להשבית הקצאה אוטומטית של צמתים, כדאי לקחת בחשבון את ההשלכות הבאות על תגים:
- כשמפעילים או משביתים הקצאה אוטומטית של צמתים, מאגר הצמתים שומר על התיוגים הקיימים. GKE לא מחליף את התגים האלה בתגים ברמת האשכול, גם במהלך יצירה מחדש של הצומת.
- אם מעדכנים ידנית את התגים במאגרי צמתים ספציפיים, GKE מחליף את התגים הקיימים בתגים שצוינו למאגר הצמתים הזה.
הוספת תגים לעומסי עבודה באמצעות ComputeClasses בהתאמה אישית
אפשר להחיל תגי חומת אש על מאגרי צמתים ספציפיים באשכולות Autopilot ובאשכולות רגילים שמשתמשים בהקצאת צמתים אוטומטית (NAP) באמצעות ComputeClasses מותאמים אישית (CCC). סוג משאב 'מחלקה מותאמת אישית של מחשוב' מאפשר להגדיר תצורה לקבוצת צמתים, כולל הגדרת התגים של Resource Manager שיוחלו על הצמתים.
כשפורסים עומס עבודה שמבקש צומת עם תווית ספציפית של מחלקת מחשוב בהתאמה אישית, NAP בודק קודם אם כבר קיים מאגר צמתים שתואם לכל הדרישות של מחלקת המחשוב בהתאמה אישית, כולל תגי Resource Manager שצוינו.
אם לא קיים מאגר צמתים תואם, NAP יוצר מאגר צמתים חדש עבור עומס העבודה עם ההגדרה שצוינה ומצרף את התגים למכונות הווירטואליות הבסיסיות של Compute Engine. היצירה האוטומטית של מאגר הצמתים עוזרת לוודא שעומסי העבודה (workloads) פועלים בצמתים עם תגי חומת האש הנכונים לאכיפת המדיניות.
יצירת ComputeClass בהתאמה אישית באמצעות תגים
כדי ליצור
ComputeClassעם תגים, שומרים את המניפסט הבא בתורmy-compute-class.yaml. בשדהresourceManagerTags, מציינים את המפתחות והערכים של התגים שרוצים לשייך למאגרי הצמתים שנוצרים באמצעות המחלקה הזו.apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTE_CLASS_NAME spec: nodePoolConfig: resourceManagerTags: - key: "PROJECT_ID/TAG_KEY_1" value: "TAG_VALUE_1" - key: "ORGANIZATION_ID/TAG_KEY_2" value: "TAG_VALUE_2" - key: "tagKeys/KEY_ID" value: "tagValues/VALUE_ID"מחליפים את מה שכתוב בשדות הבאים:
-
COMPUTE_CLASS_NAME: השם של סוג המכונה המותאם אישית, למשלmy-custom-class. -
PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance . -
TAG_KEY_1: השם של מפתח התג הראשון. -
TAG_VALUE_1: השם של ערך התג הראשון. -
ORGANIZATION_ID: מזהה הארגון המספרי ב- Cloud de Confiance . -
TAG_KEY_2: השם של מפתח התג השני. -
TAG_VALUE_2: השם של ערך התג השני. -
KEY_ID: המזהה המספרי של מפתח התג. -
VALUE_ID: המזהה המספרי של ערך התג.
-
החלת המניפסט:
kubectl apply -f my-compute-class.yaml
אם מציינים תג לא תקין או אם לסוכני השירות של GKE אין את הרשאות ה-IAM הנדרשות לתג, GKE לא מקצה מאגר צמתים לעומס העבודה, ועומס העבודה נשאר במצב Pending. מידע נוסף על השגיאה זמין בשדה Status של משאב ComputeClass.
כדי לבדוק את הסטטוס, מריצים את הפקודה הבאה:
kubectl get cc COMPUTE_CLASS_NAME -o jsonpath='{.status}' | jq .
מחליפים את COMPUTE_CLASS_NAME בשם של מחלקת המחשוב המותאמת אישית.
טירגוט של מחלקת מחשוב בהתאמה אישית בעומס העבודה
כדי לטרגט את ComputeClass שיצרתם, שומרים את המניפסט הבא בתור
pod-with-ccc.yaml. במניפסט הזה נעשה שימוש בשדהnodeSelectorכדי לטרגט את Compute Class.apiVersion: v1 kind: Pod metadata: name: nginx-server spec: nodeSelector: cloud.google.com/compute-class: "COMPUTE_CLASS_NAME" containers: - name: nginx image: nginx:latestמחליפים את
COMPUTE_CLASS_NAMEבשם של מחלקת המחשוב המותאמת אישית, לדוגמה,my-custom-class.החלת המניפסט:
kubectl apply -f pod-with-ccc.yaml
כשמתזמנים עומס עבודה שמיועד לסוג מחשוב מותאם אישית, מערכת GKE מחילה באופן אוטומטי כתם על הצמתים שנוצרו עבור הסוג הזה, ומוסיפה סבילות תואמת ל-Pods של עומס העבודה, כך שרק Pods שמבקשים במפורש את הסוג הזה יתזמנו בצמתים האלה.
איך מאשרים עומסי עבודה באמצעות מדיניות אימות קבלה (VAP)
כדי לוודא שרק עומסי עבודה מורשים יכולים להיות מתוזמנים במאגרי צמתים עם תגים, מומלץ להשתמש במדיניות אימות קבלה. המדיניות הזו, שהיא תכונה מובנית של Kubernetes, מיירטת בקשות ליצור או לעדכן Pods לפני שהן נשמרות. היירוט הזה מונע הפעלה של עומסי עבודה לא מורשים בצמתים מתויגים.
מדיניות ההרשאה הבאה דוחה בקשות ליצירת Pod אם ה-Pod מכיל toleration לאחד מה-taints של Compute Class שמפורטים וגם לא נמצא במרחב שמות מורשה.
שומרים את קובץ המניפסט הבא בשם
restrict-toleration.yaml:החלת המניפסט:
kubectl apply -f restrict-toleration.yaml
לשנות את מדיניות אימות הגישה כדי להתאים אותה לצרכי האבטחה הספציפיים של הארגון.
אימות תגי חומת האש באשכול
כדי להציג את התגים באשכולות של Autopilot:
gcloud container clusters describe CLUSTER_NAME \ --location=LOCATION \ --format="value(nodePoolAutoConfig.resourceManagerTags)"מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: שם האשכול. -
LOCATION: האזור או התחום של Compute Engine שבו נמצא האשכול.
-
מציגים את רשימת התגים במאגרי צמתים ספציפיים:
הפקודה הזו מאמתת גם תגים במאגרי צמתים שהוקצו אוטומטית על ידי Custom Compute Class.
gcloud container node-pools describe NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --location=LOCATION \ --format="value(config.resourceManagerTags)"מחליפים את מה שכתוב בשדות הבאים:
-
NODE_POOL_NAME: שם מאגר הצמתים. -
CLUSTER_NAME: שם האשכול. -
LOCATION: האזור או התחום של Compute Engine שבו נמצא האשכול.
-
ניתוק תגי חומת אש מאשכולות וממאגרי צמתים
כדי להסיר תגי חומת אש מאשכולות וממאגרי צמתים, צריך לעדכן את המשאב עם ערך ריק לתגים.
ניתוק תגים מאשכולות של Autopilot
מריצים את הפקודה הבאה:
gcloud container clusters update CLUSTER_NAME \
--location=LOCATION \
--autoprovisioning-resource-manager-tags=
ניתוק תגים ממאגרי צמתים
הסרת תגים של צומת ברמת האשכול
autoprovisioning:gcloud container clusters update CLUSTER_NAME \ --location=LOCATION \ --autoprovisioning-resource-manager-tags=GKE לא יצרף תגים למאגרי צמתים חדשים שהוקצו אוטומטית.
מנתקים תגים ממאגר הצמתים:
gcloud container node-pools update NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --location=LOCATION \ --resource-manager-tags=GKE מסיר תגים קיימים ממאגר הצמתים הזה.
מחיקת מפתחות וערכים של תגים
כדי למחוק מפתח או ערך של תג, צריך לוודא שהתג מנותק מכל המשאבים. אחר כך, כדאי לעיין במאמר בנושא מחיקת תגים במאמרי העזרה של Resource Manager.
השוואה בין תגי רשת לבין תגים
שימוש בתגים לאכיפת מדיניות חומת האש מספק יתרונות משמעותיים מבחינת אבטחה ונוחות שימוש בהשוואה לתגי רשת. באופן דומה, מדיניות חומת אש ברשת משפרת את היכולות של כללי חומת אש ב-VPC, ומאפשרת לאכוף כללי חומת אש בארגונים, בתיקיות, בפרויקטים או ברשתות שלמים.
שימוש בתגים עם מדיניות חומת אש בין רשתות הוא דרך מאובטחת יותר וניתנת להרחבה לניהול הגישה לסביבות GKE בארגון. אפשר להשתמש בתגי רשת באותו אשכול כמו בתגים, אבל אי אפשר להשתמש בתגי רשת כדי לאכוף מדיניות של חומת אש ברשת.
השוואה מפורטת בין תגים לתגי רשת מופיעה במאמר השוואה בין תגים לתגי רשת במאמרי העזרה של Cloud NGFW.
הבדלים פונקציונליים במאגרי צמתים שהוקצו אוטומטית
במאגרי צמתים רגילים שלא משתמשים ב-Node Auto Provisioning ובאשכולות Autopilot, תגי רשת ותגים מתנהגים באופן דומה. בטבלה הבאה מפורטים ההבדלים הפונקציונליים בין תגי רשת לבין תגים במאגרי צמתים שהוקצו אוטומטית באשכולות רגילים:
| פעולה | אופן הפעולה של תגי הרשת | אופן הפעולה של התגים |
|---|---|---|
| הקצאה אוטומטית של מאגר צמתים ב-GKE | GKE מוסיף את תגי הרשת ברמת האשכול | מערכת GKE מוסיפה את התגים ברמת האשכול |
| עדכון תגים או תגי רשת במאגר צמתים שהוקצה לו באופן אוטומטי Node Auto Provisioning |
|
GKE מחליף תגים קיימים במאגר הצמתים בלי קשר לשאלה אם קיימים תגים ברמת האשכול |
| עדכון תגים או תגי רשת לכל האשכול | GKE מחליף את תגי הרשת במאגרי צמתים חדשים וקיימים שהוקצו אוטומטית באשכול. | GKE מחיל את התגיות החדשות ברמת האשכול על מאגרי צמתים חדשים שהוקצו אוטומטית. מאגרי צמתים קיימים שהוקצו להם משאבים באופן אוטומטי ישמרו את התגים שהיו להם לפני העדכון. |
המאמרים הבאים
- שימוש בתגים לצורך מעקב אחר השימוש ואכיפה של מדיניות IAM
- מידע נוסף על תגים לחומות אש
- מידע נוסף על תגים