רשת פרטית ו-Cloud Run

בדף הזה מפורטות אפשרויות ההגדרה להכללת משאבי Cloud Run ברשת הפרטית.

כדי להפיק את המרב מהתוכן הזה, כדאי להכיר את המושגים הבאים:

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

  • ייתכן שיש לך מספר משאבים, כגון מכונות וירטואליות, היושבים על רשת VPC אחת או יותר.
  • יכול להיות שמכונות ה-VM האלה שייכות לפרויקטים שונים, והן יכולות להיות מחוברות זו לזו באמצעות VPC משותף.
  • ייתכן שיש לכם עומסי עבודה מקומיים או עומסי עבודה בעננים אחרים המחוברים לסביבה זו באמצעות Cloud VPN או Cloud Interconnect.
  • יכול להיות שהפעלתם מתחם היקפי של VPC Service Controls כדי לצמצם את הסיכון לזליגת נתונים.
  • ייתכן שיהיו לך מספר רשתות פרטיות, אחת לכל אחת מכמה סביבות שונות, כגון אחת לייצור, אחת לשלבי תהליכים ואחת לפיתוח.

בניגוד למכונות וירטואליות, משאבי Cloud Run אינם משויכים לרשת VPC מסוימת כברירת מחדל. בדף הזה מוסבר איך לשלב משאבי Cloud Run ברשת הפרטית שלכם.

תיאור של רשתות ללא שרת

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

נקודת ההתחלה הזו מציגה את התרחישים הבסיסיים והמתקדמים הבאים של Cloud Run:

  • פריסה בטוחה של אפליקציית Hello, World!‎ שמשתמשת בדומיין מותאם אישית
  • פיתוח אפליקציות ומיקרו-שירותים (microservices) לארגונים
  • גישה לבסיסי נתונים ומערכות קבצים באופן ציבורי או פרטי
  • יצירת קשר עם ספקי SaaS
  • החלת אמצעי בקרה לאבטחה

אפשר לעיין ברשימה של מודולים תואמים של Terraform.

קבלת בקשות מהרשת הפרטית

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

  • המקום שממנו מגיעה הבקשה.
  • האם משאב Cloud Run מאפשר רק בקשות מהרשת הפרטית שלכם.

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

קבלת בקשות ממשאבי Cloud Run אחרים או מ-App Engine

כשמשאב היעד ב-Cloud Run מקבל תנועה ממשאבים אחרים ב-Cloud Run או מ-App Engine, והוא משתמש בהגדרת תעבורת נתונים נכנסת (ingress) 'פנימית' או 'פנימית ואיזון עומסים', התנועה חייבת להשתמש ברשת VPC כדי להיחשב פנימית.

כדי לקבל בקשות ממשאבי Cloud Run אחרים או מ-App Engine, צריך לבצע את השלבים הבאים:

  1. מגדירים את משאב המקור לשימוש בתעבורת נתונים יוצאת (egress) ישירה של VPC או במחבר.

  2. כדי לוודא שהתעבורה אל Cloud Run מנותבת דרך רשת ה-VPC, אפשר להשתמש באחת מהאפשרויות הבאות:

    • הגדר את משאב ה-source כך ש-ניתוב כל התעבורה דרך רשת ה-VPC והפעל את Private Google Access בתת-הרשת המשויכת ליציאה ישירה מ-VPC או למחבר.
    • מגדירים Private Service Connect או מאזן עומסים פנימי של אפליקציות (ALB) כדי להפנות את משאב היעד של Cloud Run. בהגדרה הזו, הגישה ל-Cloud Run מתבצעת באמצעות כתובות IP פנימיות, כך שהבקשות מנותבות דרך רשת ה-VPC.
    • מפעילים גישה פרטית ל-Google ברשת המשנה שמשויכת למשאב המקור ומגדירים DNS כדי לפתור כתובות URL של run.app לטווחים של private.googleapis.com (199.36.153.8/30) או restricted.googleapis.com (199.36.153.4/30). הבקשות לטווחים האלה מנותבות דרך רשת ה-VPC.

קבלת בקשות מרשתות VPC

כברירת מחדל, רק למשאבים שיש להם כתובות IP חיצוניות או שמשתמשים ב-Cloud NAT יש גישה ישירה לאינטרנט ולשירותים שלGoogle Cloud כמו Pub/Sub ו-Cloud Run. לגבי משאבים אחרים, יש כמה אפשרויות להפעלת נתיב התנועה אל Cloud Run:

  • הדרך הכי ישירה היא להפעיל את הגישה הפרטית ל-Google ברשתות המשנה שמארחות את המשאבים. כאשר גישה פרטית ל-Google מופעלת, משאבים בתת-הרשתות יכולים לגשת למשאבי Cloud Run שלך בכתובת האתר המוגדרת כברירת מחדל של run.app. התעבורה מרשת ה-VPC אל Cloud Run נשארת ברשת של Google. במקרה כזה, טווח ה-IP עבור בקשות הנשלחות למשאב Cloud Run הוא 0.0.0.0/32. כלומר, בערכים של יומן הבקשות, המאפיין remoteIp של HttpRequest יהיה 0.0.0.0.
  • אם אתם צריכים שמשאב Cloud Run שלכם (יחד עם ממשקי API אחרים של גוגל) יהיה נגיש דרך כתובת IP פנימית ברשת ה-VPC שלכם, שקלו ליצור נקודת קצה של Private Service Connect ולהגדיר אזור DNS פרטי עבור run.app. בהגדרה הזו, משאבים ברשת ה-VPC יכולים לגשת למשאבי Cloud Run בכתובת ה-URL run.app שמוגדרת כברירת מחדל דרך כתובת ה-IP של נקודת הקצה של Private Service Connect.
  • אם אתם צריכים יכולות של איזון עומסים ואמצעי בקרה, כדאי להשתמש במאזן עומסים פנימי של אפליקציות (ALB). בגישה הזו, משאבים ברשת VPC ניגשים למשאבי Cloud Run באמצעות כתובת ה-URL שמשויכת למאזן העומסים הפנימי של אפליקציות (ALB).
  • אם אתם רוצים לחשוף את השירות ללקוחות פנימיים כשירות מנוהל ולשלוט בפרויקטים שיכולים לגשת אליו, אתם יכולים לארח אותו באמצעות מאזן עומסים של אפליקציות פנימי ולפרסם את השירות באמצעות Private Service Connect. פרויקטים שצריכים לצרוך את השירות יכולים לגשת אליו באמצעות נקודת קצה (endpoint) של Private Service Connect או בק-אנד של Private Service Connect.

התשובות מוחזרות באמצעות אותו נתיב שדרכו עברה הבקשה.

שיקולים מיוחדים לגבי VPC משותף

כשמשתמשים בהגדרה internal עם אמצעי הבקרה של תעבורת נתונים נכנסת (ingress) ב-Cloud Run כדי לאכוף את הדרישה שכל התעבורה תגיע מהרשת הפרטית, תעבורה של VPC משותף מזוהה כ'פנימית' רק במצבים הבאים:

  • המשאב של Cloud Run פועל בפרויקט המארח של ה-VPC המשותף.

  • תעבורת נתונים נכנסת (ingress) של VPC משותף: משאב Cloud Run מצורף לרשת VPC משותפת. בתרחיש הזה, חשוב לשים לב לנקודות הבאות:

    • רק גרסאות של שירותים או מכונות Cloud Run שמוגדרות עם תעבורת נתונים יוצאת (egress) ישירה של VPC או עם מחבר Serverless VPC Access כדי לשלוח תעבורה לרשת VPC משותפת, יקבלו גם תעבורה מאותה רשת VPC משותפת.

    • הבקשות משתמשות בנתיבים שונים בהתאם לכיוון התנועה. בקשות שנשלחות מ-Cloud Run לרשת VPC משותפת מנותבות באמצעות תעבורת נתונים יוצאת (egress) ישירה של VPC או באמצעות המחבר. עם זאת, בקשות שנשלחות מרשת VPC משותף אל Cloud Run משתמשות בנתיב הכניסה הרגיל.

    • כדי לנתק משאב Cloud Run מרשת ה-VPC המשותפת, צריך לפרוס מחדש בלי גישה לרשת ה-VPC, או כשהמשאב מוגדר לשליחת תעבורה לרשת VPC אחרת.

  • אתם משתמשים במאזן עומסים פנימי של אפליקציות (ALB) כדי להעביר תנועה דרך שרת proxy.

  • הצבת את מארח ה-VPC המשותף ואת כל פרויקטי השירות בתוך אותו היקף של בקרות שירות VPC. הוראות להגדרה של VPC Service Controls זמינות במאמר שימוש ב-VPC Service Controls (VPC SC).

שיקולים מיוחדים לגבי רשתות VPC אחרות מחוץ לפרויקט

כשמשתמשים בהגדרה internal עם אמצעי הבקרה על תעבורת נתונים נכנסת ב-Cloud Run כדי לאכוף את הדרישה שכל התעבורה תגיע מהרשת הפרטית, התעבורה מרשתות VPC אחרות מחוץ לפרויקט לא מזוהה כ'פנימית' אלא במקרים הבאים:

  • השירות VPC Service Controls מוגדר כך שהוא מאפשר את התעבורה עם run.googleapis.com כשירות מוגבל, והגישה הפרטית ל-Google מופעלת עבור רשת המשנה של המקור.
  • המשאב של Cloud Run מתפרסם כשירות מנוהל באמצעות Private Service Connect (נדרש Application Load Balancer פנימי), והגישה אליו מתבצעת מרשת ה-VPC השנייה.

קישור (peering) לרשת VPC שנמצאת מחוץ לפרויקט לא מאפשר לזהות את התנועה כ'פנימית'.

קבלת בקשות משירותים אחרים Google Cloud

בקשות ל-Cloud Run משירותים Google Cloud כמו Pub/Sub נשארות בתוך הרשת של Google.

אם הגדרתם את אמצעי הבקרה של Cloud Run ingress כך שיאפשרו רק תנועה 'פנימית', יש כמה שיקולים מיוחדים שכדאי להביא בחשבון:

  • בקשות מ-BigQuery,‏ Cloud Scheduler,‏ Cloud Tasks,‏ Dialogflow CX,‏ Eventarc,‏ Pub/Sub,‏ synthetic monitors (כולל בדיקות זמינות) ו-Workflows באותו פרויקט או באותו היקף של VPC Service Controls מזוהות כבקשות 'פנימיות'.
  • בקשות מ-Cloud Run או מ-App Engine שנשלחות מתוך אותו פרויקט או מתוך היקף של אמצעי בקרה של שירות VPC, דורשות כולן הגדרה נוספת לפני שהן מזוהות כבקשות 'פנימיות'. פרטים נוספים זמינים בקטע קבלת בקשות משירותים אחרים של Cloud Run או מ-App Engine.
  • אם השירות שבחרת Google Cloud אינו יכול לגשת למשאבי Cloud Run שהגדרתם ingress ל-internal, שימו לב ששירותים רבים תומכים באימות מול Cloud Run, כגוןPub/Sub (תומך בשניהםinternal ואימות),API Gateway , וDialogflow CX (תומך בשניהםinternal ואימות). בהתאם לצרכים שלכם בתחום האבטחה, יכול להיות שיהיה מספיק לדרוש אימות של משאב Cloud Run ביעד במקום כניסה 'פנימית'.
  • בקשות משירותים Google Cloud שלא הוזכרו קודם לא מזוהות כבקשות פנימיות, ולא ניתן לקבל אותן במשאבי Cloud Run שהגדרת הכניסה שלהם היא internal או internal-and-cloud-load-balancing.

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

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

דרישה שהבקשות יגיעו מהרשת הפרטית שלכם

כדי למנוע תעבורה נכנסת (ingress) ממקורות חיצוניים, עליך לציין הגדרת ingress מגבילה. הגדרת הכניסה הכי מגבילה היא internal. אם הגדרתם את התעבורה הנכנסת ל-internal, השירות שלכם יאפשר רק בקשות מהפרויקט שלכם, מרשתות VPC משותפות שהפרויקט שלכם מצורף אליהן ומ-VPC Service Controls perimeter. יש כמה מגבלות להגדרה הזו, בהתאם למקור הבקשות. כדי ללמוד על המגבלות הללו וכיצד להתמודד איתן, עיין בסעיף קבלת בקשות מהרשת הפרטית שלך.

באפשרותך לציין את הגדרת ה-ingress עבור כל משאב Cloud Run, או לאכוף את השימוש בהגדרת ה-ingress המועדפת עליך עבור כל משאבי Cloud Run בארגון שלך.

שליחת בקשות לרשת הפרטית

אם למשאב Cloud Run שלכם נדרשת גישה למשאב ברשת הפרטית, אתם צריכים להגדיר נתיב לבקשות פרטיות לרשת. התצורה תלויה ביעד הסופי של הבקשה.

שליחת בקשות לרשת ה-VPC

כדי לשלוח בקשות לרשת VPC, צריך להגדיר Direct VPC egress או מחבר של חיבור לרשת (VPC) מאפליקציית serverless. השוואה בין Direct VPC egress לבין מחברי VPC בדוק את התמחור כדי להבין את העלויות.

כשמגדירים יציאה ישירה מרשת ה-VPC או מחברים, כברירת מחדל חלים השיקולים הבאים:

  • כל שאילתות ה-DNS נשלחות לשרת ה-DNS שהוגדר עבור רשת ה-VPC שמשויכת להגדרת היציאה מרשת ה-VPC.

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

אם הבקשות מנותבות באמצעות יציאה ישירה מ-VPC או מחברים, התשובות מוחזרות באמצעות הנתיב שדרכו הבקשה עברה. בקשות מהרשת ה-VPC שלכם אל Cloud Run מופעלות באמצעות טכנולוגיות אחרות, ולא מנותבות דרך Direct VPC או מחברים, והתשובות לבקשות האלה מוחזרות באמצעות אותו נתיב. מידע נוסף על שליחת בקשות מרשת VPC ל-Cloud Run זמין במאמר קבלת בקשות מרשתות VPC.

שליחת בקשות לרשת VPC מחוץ לפרויקט

כדי לשלוח בקשות לרשת VPC מחוץ לפרויקט:

  1. משתמשים ב-VPC משותף יכולים לעיין במאמר התחברות לרשת VPC משותפת.
  2. עבור רשתות VPC אחרות, הגדר יציאה ישירה של VPC או מחבר כדי להתחבר ל-VPC בפרויקט שלך.
    • רשתות VPC מקושרות: כדי לשלוח לרשת VPC שמקושרת לרשת VPC שמשתמשת בתעבורת נתונים יוצאת (egress) של רשת VPC, לא נדרש שום שינוי בהגדרות. עם זאת, המכונות הווירטואליות ברשת המשנה שמארחת את היציאה מרשת ה-VPC צריכות להיות מסוגלות להגיע לרשת ה-VPC של היעד.
    • רשתות VPC אחרות: עבור רשתות VPC מחוץ לפרויקט שלך שאינן חלק מאותה סביבת VPC משותפת או מחוברות לרשת VPC של הפרויקט שלך, הגדר את Private Service Connect לאחר הגדרת יציאה מרשת VPC.

שלח בקשות למשאבי Cloud Run אחרים ו Google Cloud שירותים

בקשות ממשאב Cloud Run אחד לאחר או לאחרGoogle Cloud השירותים נשארים בתוך הרשת הפנימית של גוגל וכפופים לבקרות שירות VPC.

כדי לשלוח בקשות למשאבי Cloud Run עם הגדרות כניסה מגבילות, נדרשת הגדרה נוספת. ראו קבלת בקשות ממשאבים אחרים של Cloud Run או App Engine.

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

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

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

דרישה שכל הבקשות יועברו לרשת ה-VPC

כדי לדרוש שכל הבקשות ממשאב Cloud Run שלך יגיעו לרשת ה-VPC שלך, ציין אתall-traffic רשת VPCהגדרת יציאה. אתם יכולים לציין את הגדרת התעבורה היוצאת (egress) לכל משאב Cloud Run שמשתמש בתעבורה יוצאת של רשת VPC, או לאכוף את השימוש בהגדרת התעבורה היוצאת המועדפת על כל משאבי Cloud Run בפרויקט, בתיקייה או בארגון.

האפשרות הזו שימושית במקרים הבאים:

  1. אתם רוצים להגדיר כתובת IP יוצאת סטטית עבור משאב Cloud Run שלכם.
  2. אתם רוצים להחיל כללי חומת אש על כל התנועה היוצאת ממשאב Cloud Run.
  3. רוצים לשלוח בקשות למשאבים מקומיים ולעננים אחרים דרך הרשת הפרטית.

אם משאב Cloud Run שולח בקשות ליעדים סופיים מחוץ לרשת ה-VPC, הדרישה שכל הבקשות יעברו דרך רשת ה-VPC תגדיל את השימוש ברוחב הפס במחברי Serverless VPC Access שהוגדרו, ויכול להיות שהעלויות יגדלו בהתאם. מחברים מתרחבים אוטומטית כאשר התנועה עולה, אך אינם מתרחבים אם התנועה פוחתת. כדאי לעיין בתמחור כדי להבין את העלויות.

בקרות נוספות

  • בקרות היקפיות: כדי להפחית את הסיכון לחליפת נתונים עבור קבוצת משאבים, יש למקם אותם בתוך היקפי תודע הקשר באמצעות בקרות שירות VPC.
  • אמצעי בקרה גרנולריים: כדי לשלוט בגישה לתעבורה ממשאב ספציפי ברשת הפרטית, כמו משאב ספציפי של Cloud Run או מכונה וירטואלית של Compute Engine, משתמשים בחשבונות שירות כדי לשלוט בהרשאות ובאימות.

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

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