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 על עבודות קיימות במסמך הזה.
יעדים נתמכים
השילוב של Cloud Scheduler עם VPC Service Controls תומך ביעדים הבאים. נקודות קצה של HTTP נתמכות אם הן מופיעות ברשימה, אבל לא נתמכות נקודות קצה שרירותיות של HTTP.
- שירותי Cloud Run – חייבים להשתמש בדומיין
run.appשמוגדר כברירת מחדל. אין תמיכה בדומיינים מותאמים אישית וב-DNS מותאם אישית, והם יגרמו לכך שיצירת המשימה תיכשל. - פונקציות Cloud Run – צריך להשתמש בדומיין הקנוני
cloudfunctions.netאו בדומייןrun.appשמוגדר כברירת מחדל. אין תמיכה בדומיינים מותאמים אישית וב-DNS מותאם אישית, והם יגרמו לכך שיצירת המשימה תיכשל. Google Cloud ממשקי API שתואמים ל-VPC Service Controls (בגרסת Preview או ב-GA) יכולים להיות בפרויקט אחר Google Cloud מזה של משימת Cloud Scheduler.
- חובה להשתמש בפורמט של נקודת קצה גלובלית (
https://SERVICE.googleapis.com). נקודות קצה אזוריות – כמו*.rep.googleapis.com,LOCATION.SERVICE.googleapis.comו-REGION-SERVICE.googleapis.com– ונקודות קצה של mTLS (*.mtls.googleapis.com) נדחות. במשימות ב-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. הפעולה הזו לא יוצרת יומן הפרות כשמשתמשים במצב הרצה יבשה.
דומיינים בהתאמה אישית (כמו מאזני עומסים חיצוניים של אפליקציות או DNS בהתאמה אישית) לנקודות קצה ללא שרתים לא נתמכים כיעדים. הפעלה בזמן ריצה של דומיינים מותאמים אישית נחסמת על ידי שירות היעד בגלל שחסרים פרטי כניסה בתוך גבולות הגזרה, גם במקרים של משימות קיימות שנוצרו לפני ההרשמה לגבולות הגזרה.
כדי למנוע חסימה לא צפויה של עומסי העבודה, צריך למחוק את כל המשימות עם יעדים לא נתמכים או עם יעדים מחוץ לגבולות הגזרה של VPC Service Controls שמתכננים להשתמש בהם, לפני שמעבירים את גבולות הגזרה למצב אכיפה.
מחיקת משרות שלא עומדות בדרישות
מומלץ. מחיקת משימות של Cloud Scheduler עם יעדים שהם:
- לא נתמך (ראו יעדים נתמכים)
- מחוץ לגבולות הגזרה של VPC Service Controls שבהם אתם מתכננים להשתמש
הוראות למחיקת משרות זמינות במאמר מחיקת משרה.
אם לא תמחקו את המשימות האלה לפני שתוסיפו את Cloud Scheduler לגבולות הגזרה של VPC Service Controls, המשימות ימשיכו לפעול, אבל לא יחול עליהן VPC Service Controls. להסבר, ראו פעולות שנאכפות.
לדוגמה, אם יש לכם משימה ב-Cloud Scheduler שמכוונת ליעד לא נתמך (כמו נקודת קצה שרירותית של HTTP), המשימה תמשיך לפעול אחרי שתוסיפו את 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, או כדי להקצות לו את התפקיד הזה, מבצעים את השלבים הבאים:
במסוף Google Cloud , נכנסים אל IAM.
מסמנים את התיבה Include Google-provided role grants.
במסנן, מקלידים Cloud Scheduler Service Account ובוחרים את הגורם הזה.
בודקים את העמודה תפקיד של החשבון הראשי 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 כך שיכלול את Cloud Scheduler, פועלים לפי השלבים לעדכון גבול גזרה לשירות.
גבולות גזרה חדשים: כדי ליצור גבול גזרה חדש ל-Cloud Scheduler, פועלים לפי השלבים ליצירת גבול גזרה לשירות.
אכיפת 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 במזהה המשימה.