VPC Service Controls ל-Cloud Service Mesh (מנוהל)

‫Cloud Service Mesh (מנוהל) תומך ב-VPC Service Controls כתכונה שזמינה לכלל המשתמשים (GA) למישורי בקרה חדשים.

כדי לבדוק אם מישור הבקרה שלכם תומך ב-VPC Service Controls GA, בודקים את מצב התכונה mesh של החברות שלכם בתנאי VPCSC_GA_SUPPORTED.

gcloud container fleet mesh describe --project FLEET_PROJECT_ID

הפלט אמור להיראות כך:

(...)
membershipStates:
  projects/FLEET_PROJECT_NUMBER/locations/MEMBERSHIP_LOCATION/memberships/MEMBERSHIP_ID:
    servicemesh:
      conditions:
      - code: VPCSC_GA_SUPPORTED
        details: This control plane supports VPC Service Controls GA.
        documentationLink: http://cloud.google.com/service-mesh/docs/managed/VPC Service Controls
        severity: INFO
(...)

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

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

מדיניות הארגון וגבולות גזרה לשירות של VPC Service Controls מוגדרים ברמת הארגון. מוודאים שהוקצו לכם התפקידים המתאימים לניהול VPC Service Controls.

הגדרת גבולות גזרה לשירות ב-VPC Service Controls

יוצרים או מעדכנים את גבולות הגזרה לשירות:

  1. מוסיפים את הפרויקטים של האשכולות ואת פרויקט ה-Fleet לגבולות גזרה לשירות. אין תמיכה בפריסת service mesh על פני מספר מתחמי אבטחה של VPC Service Controls.

  2. מוסיפים שירותים מוגבלים לגבולות גזרה לשירות.

    כדי שלקלאסטר Cloud Service Mesh תהיה גישה לשירותים מסוימים, צריך להוסיף אותם לרשימות השירותים המותרים והמוגבלים בגבולות הגזרה לשירות. הגישה לשירותים האלה מוגבלת גם ברשת הענן הווירטואלי הפרטי (VPC) של האשכול.

    אם לא מוסיפים את השירותים האלה, יכול להיות שההתקנה של Cloud Service Mesh תיכשל או שהשירות לא יפעל כמו שצריך. לדוגמה, אם לא מוסיפים את Mesh Configuration API לגבולות גזרה לשירות, ההתקנה תיכשל ועומסי העבודה לא יקבלו את הגדרת Envoy ממישור הבקרה המנוהל.

    המסוף

    1. כדי לערוך את גבולות הגזרה לשירות, פועלים לפי השלבים שבקטע עדכון של גבולות גזרה לשירות.
    2. לוחצים על הדף Edit VPC Service Perimeter (עריכת גבולות גזרה לשירות ב-VPC).
    3. בקטע שירותים מוגבלים, שירותים להגנה, לוחצים על הוספת שירותים.
    4. בתיבת הדו-שיח Specify services to restrict (הגדרת השירותים שרוצים להגביל), לוחצים על Filter services (סינון שירותים) ומזינים Mesh Configuration API (Mesh Configuration API).
    5. מסמנים את התיבה של השירות.
    6. לוחצים על Add Mesh Configuration API (הוספת API להגדרת רשת).
    7. חוזרים על שלבים ג עד ו כדי להוסיף:
      • Cloud Service Mesh Certificate Authority API
      • GKE Hub API
      • Cloud IAM API
      • Cloud Monitoring API
      • Cloud Trace API
      • Cloud Monitoring API
      • Google Cloud Resource Manager API
      • Google Compute Engine API
      • Google Container Registry API
      • Artifact Registry API
      • Google Cloud Storage API
      • Cloud Logging API
      • Security Token Service API
    8. לוחצים על Save.

    gcloud

    כדי לעדכן את רשימת השירותים המוגבלים, משתמשים בפקודה update ומציינים את השירותים שרוצים להוסיף כרשימה מופרדת בפסיקים:

    gcloud access-context-manager perimeters update PERIMETER_NAME \
      --add-restricted-services=meshconfig.googleapis.com,meshca.googleapis.com,gkehub.googleapis.com,iam.googleapis.com,monitoring.googleapis.com,cloudtrace.googleapis.com,monitoring.googleapis.com,cloudresourcemanager.googleapis.com,compute.googleapis.com,containerregistry.googleapis.com,artifactregistry.googleapis.com,storage.googleapis.com,logging.googleapis.com,sts.googleapis.com \
      --policy=POLICY_NAME

    כאשר:

    • PERIMETER_NAME הוא השם של גבולות גזרה לשירות שרוצים לעדכן.

    • POLICY_NAME הוא השם המספרי של מדיניות הגישה של הארגון. לדוגמה, 330193482019.

  3. לוחצים על VPC Accessible services (שירותים שניתן לגשת אליהם מ-VPC) ומגדירים את האפשרות All restricted services (כל השירותים המוגבלים), כדי שעדיין תהיה גישה לשירותים שהוגבלו בשלב הקודם מתוך גבולות הגזרה של VPC Service Controls.

  4. אלא אם אתם מתקינים את Cloud Service Mesh מרשת שנמצאת בתוך גבולות הגזרה, הוסיפו כלל תעבורת נתונים נכנסת (ingress) כדי לאפשר לזהות שמריצה את הפקודה asmcli גישה לגבולות גזרה לשירות.

    מידע נוסף זמין במאמר בנושא עדכון של גבולות גזרה לשירות.

התקנת Cloud Service Mesh מנוהל במתחם היקפי של VPC Service Controls

פועלים לפי השלבים במאמר הגדרת Cloud Service Mesh מנוהל. לאחר מכן, מוודאים שמישור הבקרה הוקצה בהצלחה ושאין שגיאות שקשורות ל-VPC Service Controls.

פתרון בעיות

אי אפשר ליצור אשכול עם התמונה העדכנית של GKE 1.22

יש בעיה ידועה שמונעת יצירה של אשכול עם התמונה העדכנית 1.22 בסביבה מוגבלת של VPC Service Controls. הפתרון העקיף הוא ליצור את האשכול הזה קודם עם תמונת הערוץ של GKE שמוגדרת כברירת מחדל, ואז לשדרג את התמונה:

gcloud container clusters create CLUSTER \
  --region REGION \
  --release-channel=rapid \
  --workload-pool=PROJECT_ID.svc.id.goog \
  --project PROJECT_ID
gcloud container clusters upgrade CLUSTER \
  --region REGION \
  --master --cluster-version 1.22 \
  --project PROJECT_ID

אין אפשרות להוריד תמונות מהקונטיינרים.

זה יכול לקרות אם התמונות ממוקמות מחוץ לגבולות גזרה לשירות. אפשר להעביר את התמונות למאגר שנמצא בתוך ההיקף, או לעדכן את ההיקף כדי להוסיף כלל יציאה. בדרך כלל, כלל היציאה עשוי לאפשר לישויות נבחרות לגשת אל Container Registry API,‏ Artifact Registry API ו-Cloud Storage API.

בשדה Status של ControlPlaneRevision CRD מוצגות שגיאות של VPC Service Controls

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

gcloud logging read --project=PROJECT_ID \
'protoPayload.metadata.@type=type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata'

כאשר:

  • PROJECT_ID הוא מזהה הפרויקט שבו מתרחשות שגיאות.