העברת כללי חומת אש של VPC שמשתמשים בתגי רשת ובחשבונות שירות

כללי חומת האש של הענן הווירטואלי הפרטי (VPC) יכולים להכיל תגי רשת וחשבונות שירות של מקורות. כדי להעביר את כללי חומת האש של VPC שמכילים תגים של רשתות וחשבונות שירות של מקורות למדיניות חומת אש בין רשתות גלובליות, צריך לבצע את המשימות הבאות:

  1. הערכת הסביבה.
  2. הצגת רשימה של תגי רשת וחשבונות שירות קיימים.
  3. יצירת תגים לכל תג רשת ולכל חשבון שירות של מקור.
  4. מיפוי של תגי הרשת וחשבונות השירות לתגים שאתם יוצרים.
  5. הכפפת תגים למכונות וירטואליות (VM).
  6. העברת כללי חומת אש של VPC למדיניות חומת אש בין רשתות גלובלית.
  7. לעיון במדיניות חומת האש החדשה ברשת
  8. משלימים את המשימות שאחרי ההעברה.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. התקינו את ה-CLI של Google Cloud.

  6. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  7. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  11. התקינו את ה-CLI של Google Cloud.

  12. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  13. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  14. מוודאים שיש לכם את התפקיד 'אדמין אבטחה של Compute' (roles/compute.securityAdmin).

הערכת הסביבה

לפני שמעבירים את כללי חומת האש של VPC למדיניות חומת אש גלובלית ברשת, צריך להעריך את הסביבה הקיימת ואת התפקידים וההרשאות של ניהול זהויות והרשאות גישה (IAM):

  1. מזהים את מספר הכללים של חומת האש ב-VPC ברשת ה-VPC.
  2. חשוב לרשום את העדיפויות שמשויכות לכל כלל של חומת אש ב-VPC.
  3. חשוב לוודא שיש לכם את התפקידים וההרשאות הנדרשים ב-IAM כדי ליצור, לשייך, לשנות ולהציג כללי מדיניות גלובליים של חומת אש ברשת.
  4. חשוב לוודא שיש לכם את תפקידי ה-IAM וההרשאות הנדרשים כדי ליצור, לעדכן ולמחוק הגדרות של תגים מאובטחים.

    בטבלה הבאה מפורטים התפקידים השונים שנדרשים כדי ליצור ולנהל תגים:

    שם התפקיד משימות שבוצעו
    תפקיד Tag Administrator (roles/resourcemanager.tagAdmin) יצירה, עדכון ומחיקה של הגדרות תגים. מידע נוסף מופיע במאמר בנושא ניהול תגים.
    תפקיד Tag Viewer (roles/resourcemanager.tagViewer) צפייה בהגדרות של תגים ובתגים שמצורפים למשאבים.
    תפקיד המשתמש בתג (roles/resourcemanager.tagUser) להוסיף ולהסיר תגים שמצורפים למשאבים.

הצגת רשימה של תגי רשת וחשבונות שירות קיימים

בודקים אם כללי חומת האש של ה-VPC משתמשים בתגי רשת או בחשבונות שירות, ויוצרים קובץ JSON כדי לשמור את הפרטים של תגי הרשת וחשבונות השירות הקיימים.

כדי לייצא את תגי הרשת ואת חשבונות השירות ברשת שלכם לקובץ מיפוי JSON, משתמשים בפקודה compute firewall-rules migrate עם הדגל --export-tag-mapping.

gcloud beta compute firewall-rules migrate \
    --source-network=NETWORK_NAME \
    --export-tag-mapping \
    --tag-mapping-file=TAG_MAPPING_FILE

מחליפים את מה שכתוב בשדות הבאים:

  • NETWORK_NAME: השם של רשת ה-VPC שמכילה את כללי חומת האש של ה-VPC שרוצים להעביר.
  • TAG_MAPPING_FILE: השם של קובץ ה-JSON של המיפוי.

אם כללי חומת האש של ה-VPC מכילים רק חשבונות שירות, קובץ ה-JSON שנוצר מכיל רק חשבונות שירות. באופן דומה, אם כללי חומת האש של ה-VPC מכילים רק תגי רשת, קובץ ה-JSON שנוצר יכיל רק תגי רשת. חשבונות השירות מתחילים בקידומת sa, ולתגי רשת אין קידומת.

לדוגמה, קובץ ה-JSON הבא שנוצר מכיל תג רשת sql-server וחשבון שירות example@example.com.

{"sql-server": null, "sa:example@example.com": null}

יצירת תגים

על סמך תגי הרשת וחשבונות השירות של המקור שמפורטים בקובץ המיפוי, צריך ליצור את התגים המאובטחים המתאימים ברשת.

התגים המאובטחים החדשים מחליפים את תגי הרשת ואת חשבונות השירות, ושומרים על הגדרת הרשת המקורית אחרי ההעברה.

בתור חשבון משתמש עם התפקיד Tag Administrator, לכל תג רשת ולכל חשבון שירות, יוצרים את זוג הערכים של מפתח התג המאובטח המתאים.

gcloud resource-manager tags keys create TAG_KEY \
    --parent organizations/ORGANIZATION_ID \
    --purpose GCE_FIREWALL \
    --purpose-data network=PROJECT_ID/NETWORK_NAME

gcloud resource-manager tags values create TAG_VALUE \
    --parent ORGANIZATION_ID/TAG_KEY

מחליפים את מה שכתוב בשדות הבאים:

  • TAG_KEY: השם של מפתח התג.
  • ORGANIZATION_ID: מזהה הארגון.
  • PROJECT_ID: מזהה הפרויקט.
  • NETWORK_NAME: השם של רשת ה-VPC
  • TAG_VALUE: הערך שיוקצה למפתח התג.

לדוגמה, אם יש לכם כלל חומת אש של VPC עם תג רשת בשם sql-server, אתם צריכים ליצור צמד תג מאובטח של מפתח/ערך בשם sql-server:production.

gcloud resource-manager tags keys create sql-server \
    --parent organizations/123456 \
    --purpose GCE_FIREWALL \
    --purpose-data network=test-project/test-network

gcloud resource-manager tags values create production \
   --parent 123456/sql-server

מיפוי של תגי רשת וחשבונות שירות לתגים

אחרי שיוצרים תגי אבטחה שמנוהלים על ידי IAM לכל תג רשת ולכל חשבון שירות שמשמשים את כללי חומת האש של ה-VPC, צריך למפות את התגים לתגי הרשת ולחשבונות השירות התואמים בקובץ המיפוי JSON.

עורכים את קובץ ה-JSON כדי למפות את תגי הרשת ואת חשבונות השירות לתגים המאובטחים המתאימים.

{"sql-server": "tagValues/yyyyy", "sa:example@example.com": "tagValues/zzzzz"}

לדוגמה, בקובץ ה-JSON הבא, תג הרשת sql-server ממופה לערך התג של המפתח sql-server, וחשבון השירות example@example.com ממופה לערך התג של המפתח example@example.com:

{"sql-server": "tagValues/production", "sa:example@example.com": "tagValues/example"}

קישור תגים למכונות וירטואליות

על סמך קובץ ה-JSON של מיפוי התגים, מקשרים את התגים המאובטחים החדשים למכונות הווירטואליות שאליהן מצורפים תגי הרשת הקיימים:

  1. כישות מורשית עם תפקיד Tag Administrator, מבצעים את הפעולות הבאות:

    1. בודקים את ההרשאות שנדרשות כדי לצרף תגים מאובטחים למשאבי Google Cloud .
    2. מקצים את התפקיד Tag User (משתמש בתגים) לחשבון הראשי שמשתמש בתגים המאובטחים ומקשר את התגים למכונות הווירטואליות.
  2. כמשתמש עם התפקיד Tag User, משתמשים בפקודה compute firewall-rules migrate עם הדגל --bind-tags-to-instances:

    gcloud beta compute firewall-rules migrate \
       --source-network=NETWORK_NAME \
       --bind-tags-to-instances \
       --tag-mapping-file=TAG_MAPPING_FILE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • NETWORK_NAME: השם של רשת ה-VPC
    • TAG_MAPPING_FILE: השם של קובץ ה-JSON של המיפוי.

העברת כללי חומת אש של VPC למדיניות חומת אש בין רשתות גלובלית

העברת כללי חומת האש ב-VPC למדיניות חומת אש בין רשתות גלובלית. משתמשים בפקודה compute-firewall-rules migrate.

gcloud beta compute firewall-rules migrate \
    --source-network=NETWORK_NAME \
    --target-firewall-policy=POLICY_NAME \
    --tag-mapping-file=TAG_MAPPING_FILE

מחליפים את מה שכתוב בשדות הבאים:

  • NETWORK_NAME: השם של רשת ה-VPC שמכילה את כללי חומת האש של ה-VPC שרוצים להעביר.
  • POLICY_NAME: השם של מדיניות חומת האש הגלובלית ברשת שרוצים ליצור במהלך ההעברה.

החרגה של כללים לחומת האש מההעברה

כדי להחריג כללים ספציפיים של חומת האש מההעברה, משתמשים בפקודה gcloud beta compute firewall-rules migrate עם הדגל --exclusion-patterns-file:

gcloud beta compute firewall-rules migrate \
    --source-network=NETWORK_NAME \
    --target-firewall-policy=POLICY_NAME \
    --exclusion-patterns-file=EXCLUSION_PATTERNS_FILE

מחליפים את מה שכתוב בשדות הבאים:

  • NETWORK_NAME: השם של רשת ה-VPC שמכילה את כללי חומת האש של ה-VPC שרוצים להעביר.
  • POLICY_NAME: השם של מדיניות חומת האש הגלובלית ברשת שרוצים ליצור במהלך ההעברה.
  • EXCLUSION_PATTERNS_FILE: השם של הקובץ שמכיל ביטויים רגולריים שמגדירים תבניות של שמות חומות אש ב-VPC שצריך להחריג מההעברה. חשוב לציין את הנתיב המלא של הקובץ. כללי חומת אש שתואמים לתבניות שצוינו ייפסחו.

    כשמגדירים את דפוסי ההחרגה, חשוב לשים לב לדברים הבאים:

    • כל ביטוי רגולרי צריך להיות בשורה נפרדת ולייצג תבנית אחת של שמות חומות אש.
    • הביטויים הרגולריים לא מכילים רווחים לבנים בתחילתם או בסופם.

הצגת כללים מוחרגים של חומת האש

בהתאם לדפוסי השמות של כללי חומת האש שהוחרגו, כלי ההעברה לא מעביר כללי חומת אש מסוימים, כמו כללי חומת אש של Google Kubernetes Engine ‏ (GKE). כדי לייצא את רשימת דפוסי השמות של כללי חומת האש שהוחרגו, משתמשים בפקודה gcloud beta compute firewall-rules migrate עם הדגלים --export-exclusion-patterns ו---exclusion-patterns-file.

gcloud beta compute firewall-rules migrate \
    --source-network=NETWORK_NAME \
    --target-firewall-policy=POLICY_NAME \
    --exclusion-patterns-file=EXCLUSION_PATTERNS_FILE \
    --export-exclusion-patterns

מחליפים את מה שכתוב בשדות הבאים:

  • NETWORK_NAME: השם של רשת ה-VPC שמכילה את כללי חומת האש של ה-VPC שרוצים להעביר.
  • POLICY_NAME: השם של מדיניות חומת האש הגלובלית ברשת שרוצים ליצור במהלך ההעברה.
  • EXCLUSION_PATTERNS_FILE: הנתיב של הקובץ שאליו מיוצאים דפוסי השמות הבאים של כללי חומת האש שלא נכללים.

    gke-(.+)-ipv6-all
    gke-(.+)-(.+)-((master)|(vms)|(all)|(inkubelet)|(exkubelet)|(mcsd))
    k8s-fw-(l7-)?(.+)
    k8s-(.+)-((node)|(http)|(node-http))-hc
    (.+)-hc
    k8s2-(.+)-(.+)-(.+)-(.+)(-fw)?
    k8s2-(.+)-l4-shared-hc-fw
    gke((gw)|(mcg))1-l7-(.+)-(.+)
    

כדי להעביר כללי חומת אש מוחרגים שתואמים לתבנית ספציפית, מסירים את התבנית מהרשימה המיוצאת ומריצים את הפקודה gcloud beta compute firewall-rules migrate עם הדגל --exclusion-patterns-file.

העברה בכפייה תוך שמירה על סדר ההערכה

במהלך ההעברה, אם סדר ההערכה של כלל חומת אש שהוחרג נופל בין סדרי ההערכה של כללי חומת אש שהוגדרו על ידי המשתמש, ההעברה תיכשל.זה קורה כי כללי חומת האש שהוחרגו לא מועברים, וכלי ההעברה לא יכול לשמור על סדר ההערכה המקורי של כללים שהוגדרו על ידי המשתמש במדיניות חומת האש החדשה ברשת.

לדוגמה, אם לכללי חומת האש שלכם יש את העדיפויות הבאות, ההעברה תיכשל.

  • כלל שצוין על ידי המשתמש עם עדיפות 100
  • כלל מוחרג עם עדיפות 200
  • כלל שצוין על ידי המשתמש עם עדיפות 300

כדי להשתמש בכלי ההעברה כדי להעביר את הכללים שצוינו על ידי המשתמש תוך שמירה על סדר ההערכה המקורי שלהם והתעלמות מכללי חומת האש שהוחרגו, משתמשים בפקודה gcloud beta compute firewall-rules migrate עם הדגל --force.

gcloud beta compute firewall-rules migrate \
    --source-network=NETWORK_NAME \
    --target-firewall-policy=POLICY_NAME \
    --force

מחליפים את מה שכתוב בשדות הבאים:

  • NETWORK_NAME: השם של רשת ה-VPC שמכילה את כללי חומת האש של ה-VPC שרוצים להעביר.
  • POLICY_NAME: השם של מדיניות חומת האש הגלובלית ברשת שרוצים ליצור במהלך ההעברה.

בדיקת מדיניות חומת האש החדשה בין רשתות גלובליות

לפני שמקשרים את המדיניות החדשה לרשת VPC, מומלץ לבדוק את המדיניות כדי לוודא שתהליך ההעברה הושלם בצורה מדויקת.

עליך לוודא את הדברים הבאים:

  • ההגדרה של כללי מדיניות חומת האש נכונה, ורכיבי הכללים הבאים מועברים בצורה תקינה לכל כלל:

    • עדיפות יחסית
    • כיוון התנועה
    • פעולה במקרה של התאמה
    • הגדרות היומן
    • פרמטרים של יעד
    • פרמטרים של מקור (לכללים של תעבורת נתונים נכנסת)
    • פרמטרים של יעד (לכללי תעבורת נתונים יוצאת)
    • הגבלות על פרוטוקולים ועל יציאות
  • בודקים אם התגים המאובטחים מצורפים למכונה הווירטואלית הנכונה. משתמשים בפקודה resource-manager tags bindings list.

    gcloud resource-manager tags bindings list \
        --location=ZONE_ID \
        --parent //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE_ID/instances/INSTANCE_NAME \
        --effective
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ZONE_ID: האזור של המכונה הווירטואלית.
    • PROJECT_ID: מזהה הפרויקט.
    • INSTANCE_NAME: השם של ה-VM.

משימות אחרי ההעברה

כדי להפעיל את מדיניות חומת האש החדשה ברמת הרשת הגלובלית ולהשתמש בה, צריך להשלים את המשימות שאחרי ההעברה. מידע נוסף זמין במאמר בנושא משימות אחרי ההעברה.

המאמרים הבאים