אבטחת משימות cron באמצעות VPC Service Controls

VPC Service Controls הוא Google Cloud תכונה שמאפשרת להגדיר מתחם אבטחה היקפית כדי להגן מפני זליגת נתונים. במדריך הזה מוסבר איך לכלול עבודות של Cloud Scheduler בגבולות גזרה של VPC Service Controls.

מגבלות

ההגבלות הבאות חלות על התמיכה של VPC Service Controls ב-Cloud Scheduler.

פעולות שנאכפות

האכיפה של VPC Service Controls מתבצעת רק בפעולות הבאות:

  • יצירת משימה ב-Cloud Scheduler
  • עדכונים לגבי משימות ב-Cloud Scheduler

למה זה חשוב?

מכיוון ש-VPC Service Controls נאכף רק כשיוצרים משימות וכשמעדכנים אותן, הוא לא נאכף באופן אוטומטי על משימות שנוצרו לפני שהוספתם את Cloud Scheduler להיקף של VPC Service Controls. העבודות ממשיכות להתבצע גם אם יעדי העבודה לא נכללים בהיקף של VPC Service Controls או שהם לא יעדים נתמכים. כדי לאכוף את VPC Service Controls על כל המשימות ב-Cloud Scheduler:

יעדים נתמכים

השילוב של Cloud Scheduler עם VPC Service Controls תומך ביעדים הבאים. נקודות קצה של HTTP נתמכות אם הן מופיעות ברשימה, אבל לא נתמכות נקודות קצה שרירותיות של HTTP.

  • שירותי Cloud Run – בכתובת ה-URL‏ run.app.
  • פונקציות Cloud Run – בכתובת ה-URL‏ functions.net.
  • ‫Google Cloud APIs שתואמים ל-VPC Service Controls (בגרסת Preview או ב-GA) – יכולים להיות בפרויקט אחר Google Cloud מהמשימה של Cloud Scheduler.

    • במשימות ב-Cloud Run, הפורמט הנתמך של ה-URI הוא: https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME:run

      כדי להבין את ההבדל בין משאבי שירות ומשימות ב-Cloud Run, אפשר לעיין במאמר שירותים ומשימות: שתי דרכים להפעלת הקוד.

  • Pub/Sub

יעדים לא נתמכים

אם Cloud Scheduler הוא שירות מוגבל בגבולות הגזרה של VPC Service Controls, כל ניסיון ליצור או לעדכן משימה עם יעד לא נתמך ייכשל עם קוד השגיאה TARGET_TYPE_NOT_PERMITTED_FOR_VPC. הפעולה הזו לא יוצרת יומן הפרות כשמשתמשים במצב הרצה יבשה.

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

מחיקת משרות שלא עומדות בדרישות

מומלץ. מחיקת משימות של Cloud Scheduler עם יעדים שהם:

  • לא נתמך (ראו יעדים נתמכים)
  • מחוץ לגבולות הגזרה של VPC Service Controls שבהם אתם מתכננים להשתמש

הוראות למחיקת משרות זמינות במאמר מחיקת משרה.

אם לא תמחקו את המשימות האלה לפני שתוסיפו את Cloud Scheduler לגבולות הגזרה של VPC Service Controls, המשימות ימשיכו לפעול, אבל לא יחול עליהן VPC Service Controls. להסבר, ראו פעולות שנאכפות.

לדוגמה, אם יש לכם משימה ב-Cloud Scheduler שמכוונת ליעד לא נתמך (כמו דומיין מותאם אישית של Cloud Run), המשימה תמשיך לפעול אחרי שתוסיפו את Cloud Scheduler למתחם ההיקפי של VPC Service Controls, אבל היא לא תהיה מוגנת על ידי VPC Service Controls. הדבר נכון גם לגבי עבודות קיימות עם יעד מחוץ לגבולות הגזרה של VPC Service Controls.

הוספת תפקידי IAM נדרשים

חובה. כדי להשתמש ב-VPC Service Controls, לחשבון השירות של Cloud Scheduler צריך להיות תפקיד IAM של Cloud Scheduler Service Agent. חשבון השירות של Cloud Scheduler נוצר אוטומטית עבור הפרויקט. כדי לוודא שלסוכן השירות מוקצה תפקיד IAM של Cloud Scheduler, או כדי להקצות לו את התפקיד הזה, מבצעים את השלבים הבאים:

  1. במסוף Google Cloud , נכנסים אל IAM.

    כניסה לדף IAM

  2. מסמנים את התיבה Include Google-provided role grants.

  3. במסנן, מקלידים Cloud Scheduler Service Account ובוחרים את הגורם הזה.

  4. בודקים את העמודה תפקיד של החשבון הראשי Cloud Scheduler Service Account. אפשר להמשיך אם התפקיד הבא מופיע ברשימה:

    • סוכן שירות של Cloud Scheduler

    אם התפקיד של חשבון השירות של Cloud Scheduler לא מופיע, לוחצים על סמל העריכה ומעניקים את התפקיד Cloud Scheduler Service Agent לחשבון המשתמש של חשבון השירות של Cloud Scheduler.

ציון גבול גזרה של VPC Service Controls

חובה. אתם יכולים להשתמש בגבולות גזרה קיימים או ליצור גבולות גזרה חדשים כדי להגן על משימות Cloud Scheduler שיש להן יעדים נתמכים. בשתי הגישות יש אפשרות לציין שירותים להגבלה. מציינים את Cloud Scheduler API.

אכיפת VPC Service Controls על משימות קיימות

מומלץ. כדי לאכוף את VPC Service Controls על משימות Cloud Scheduler שיצרתם לפני שהוספתם את Cloud Scheduler לגבולות הגזרה של VPC Service Controls, מריצים update על המשימה. לא צריך לשנות את העבודה, אבל צריך להריץ את העדכון כדי ש-VPC Service Controls יחול על העבודה ועל ההרצות העתידיות שלה.

אפשר להריץ עדכון למשימה ממסוף Google Cloud (בוחרים את המשימה ומשתמשים בלחצן עריכה), באמצעות ה-API או באמצעות ה-CLI של gcloud.

כדי לאכוף את VPC Service Controls על עבודה קיימת באמצעות ה-CLI של gcloud, מריצים את הפקודה הבאה:

יעדי HTTP

gcloud scheduler jobs update http JOB_ID

מחליפים את JOB_ID במזהה המשימה.

יעדים של Pub/Sub

gcloud scheduler jobs update pubsub JOB_ID

מחליפים את JOB_ID במזהה המשימה.