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

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

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

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

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

בניגוד למכונות וירטואליות, משאבי 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. מגדירים את משאב המקור לשימוש ביציאה ישירה מ-VPC או במחבר.

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

    • מגדירים את משאב המקור כך שכל התעבורה תנותב דרך רשת ה-VPC, ומפעילים את הגישה הפרטית ל-Google ברשת המשנה שמשויכת לתעבורת נתונים יוצאת ישירה מ-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 יש גישה ישירה לאינטרנט ולשירותים כמו Pub/Sub ו-Cloud Run.Google Cloud לגבי משאבים אחרים, יש כמה אפשרויות להפעלת נתיב התנועה אל Cloud Run:

  • הדרך הכי ישירה היא להפעיל את הגישה הפרטית ל-Google ברשתות המשנה שמארחות את המשאבים. כשמפעילים גישה פרטית ל-Google, משאבים ברשתות המשנה יכולים לגשת למשאבים של Cloud Run בכתובת ה-URL שמוגדרת כברירת מחדל run.app. התעבורה מרשת ה-VPC אל Cloud Run נשארת ברשת של Google. במקרה כזה, טווח כתובות ה-IP של הבקשות שנשלחות למשאב Cloud Run הוא 0.0.0.0/32. כלומר, בערכים של יומן הבקשות, המאפיין remoteIp של HttpRequest יהיה 0.0.0.0.
  • אם אתם צריכים שיהיה אפשר לגשת למשאב Cloud Run (יחד עם Google APIs אחרים) דרך כתובת 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. פרויקטים שצריכים לצרוך את השירות יכולים לגשת אליו באמצעות נקודת קצה מסוג Private Service Connect או קצה עורפי מסוג Private Service Connect.

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

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

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

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

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

    • רק גרסאות שירות שהוגדר בהן יציאה ישירה מ-VPC או שהוגדר בהן מחבר חיבור לרשת (VPC) מאפליקציית serverless כדי לשלוח תעבורה לרשת VPC משותפת, יקבלו גם תעבורה מאותה רשת VPC משותפת.

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

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

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

  • מיקמתם את המארח של ה-VPC המשותף ואת כל פרויקטי השירות בתוך אותו היקף של VPC Service Controls. הוראות להגדרה של 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 משירותים כמו Pub/Sub נשארות בתוך הרשת של Google. Google Cloud

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

אמצעי בקרה נוספים

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

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

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