כדי להפיק את המרב מהתוכן הזה, כדאי להכיר את המושגים הבאים:
- רישות בסיסי
- Google Cloud רשתות ענן וירטואלי פרטי (VPC)
כדי לאבטח את תנועה ברשת עבור השירותים והאפליקציות שלהן, הרבה ארגונים משתמשים ברשת פרטית ב- 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, צריך לבצע את השלבים הבאים:
מגדירים את משאב המקור לשימוש ביציאה ישירה מ-VPC או במחבר.
כדי לוודא שהתעבורה ל-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.
קבלת בקשות ממשאבים מקומיים או מעננים אחרים
יש כמה דרכים לקבל באופן פרטי בקשות ממשאבים מקומיים ומעננים אחרים.
- הגדרה בסיסית: כדי שבקשות ממשאבים מקומיים ומעננים אחרים יעברו ברשת הפרטית שלכם, צריך להגדיר גישה פרטית ל-Google למארחים מקומיים.
- הפיכת משאב Cloud Run לנגיש באמצעות כתובת IP פנימית: כדי לקרוא למשאבי Cloud Run באמצעות כתובת IP פנימית, צריך ליצור נקודת קצה (endpoint) של Private Service Connect כדי לגשת לממשקי Google API, להגדיר תחום DNS פרטי עבור
run.app, ולהגדיר את הרשת המקומית כדי לגשת לנקודת הקצה. בהגדרה הזו, מארחים מקומיים יכולים לגשת למשאבי Cloud Run בכתובת ה-URLrun.appשמוגדרת כברירת מחדל דרך כתובת ה-IP של נקודת הקצה (endpoint) של Private Service Connect. - עם יכולות איזון עומסים: אם אתם צריכים יכולות איזון עומסים ואמצעי בקרה, כדאי להשתמש במאזן עומסים פנימי של אפליקציות (ALB). מידע על גישה למאזן עומסים של אפליקציות (ALB) פנימי מרשתות מקומיות זמין במאמר שימוש ב-Cloud VPN וב-Cloud Interconnect.
- בגבולות אדמיניסטרטיביים: אם רוצים לחשוף את השירות ללקוחות פנימיים כשירות מנוהל, ולשלוט בפרויקטים שיכולים לגשת אליו, אפשר לפרסם את השירות באמצעות Private Service Connect (נדרש מאזן עומסים פנימי של אפליקציות). כדי לגשת לשירות ממארחים מקומיים, צריך ליצור נקודת קצה של Private Service Connect ולהגדיר את הרשת המקומית כך שתהיה לה גישה לנקודת הקצה. מידע נוסף זמין במאמר גישה לנקודות קצה מרשתות היברידיות. אפשר גם להשתמש בקצה עורפי מסוג Private Service Connect עם מאזן עומסים. למידע על גישה למאזני עומסים מרשתות מקומיות, אפשר לעיין במסמכי התיעוד של מאזן העומסים שבו אתם משתמשים. לדוגמה, למידע על מאזני עומסים פנימיים של אפליקציות, אפשר לעיין במאמר שימוש ב-Cloud VPN וב-Cloud Interconnect.
דרישה שהבקשות יגיעו מהרשת הפרטית שלכם
כדי למנוע תעבורה נכנסת (ingress) ממקורות חיצוניים, צריך לציין הגדרת תעבורה נכנסת מגבילה.
הגדרת הכניסה הכי מגבילה היא internal. אם הגדרתם את התעבורה הנכנסת ל-internal, השירות שלכם יאפשר רק בקשות מהפרויקט שלכם, מרשתות VPC משותפות שהפרויקט שלכם מצורף אליהן ומ-VPC Service Controls perimeter. יש כמה מגבלות להגדרה הזו, בהתאם למקור הבקשות. מידע על ההגבלות האלה ועל דרכים לעקוף אותן מופיע בקטע קבלת בקשות מהרשת הפרטית.
אתם יכולים לציין את הגדרת הכניסה לכל משאב של Cloud Run, או לאכוף את השימוש בהגדרת הכניסה המועדפת על כל משאבי Cloud Run בארגון.
- כדי לציין את הגדרת ה-Ingress לכל משאב Cloud Run: ראו הגדרת Ingress.
- כדי לאכוף הגדרת Ingress מסוימת על כל המשאבים של Cloud Run בפרויקט, בתיקייה או בארגון: מגדירים את ההגבלה של מדיניות הארגון
run.allowedIngress. איך מתאימים אישית את כללי המדיניות להגבלות על רשימות
שליחת בקשות לרשת הפרטית
אם למשאב 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 מחוץ לפרויקט:
- משתמשים ב-VPC משותף יכולים לעיין במאמר התחברות לרשת VPC משותפת.
- ברשתות 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
שליחת בקשות למשאבים מקומיים ולעננים אחרים
כדי לשלוח בקשות למשאבים מקומיים ולעננים אחרים דרך הרשת הפרטית, צריך לבצע את הפעולות הבאות:
- מוודאים שרשת ה-VPC מוגדרת לניתוב פרטי של התנועה ליעד, למשל דרך מנהרת VPN.
- מגדירים את השירות כך שישלח בקשות לרשת ה-VPC.
- לדרוש שכל הבקשות יעברו לרשת ה-VPC שלכם.
דרישה שכל הבקשות יועברו לרשת ה-VPC
כדי לדרוש שכל הבקשות ממשאב Cloud Run יועברו לרשת ה-VPC, צריך לציין את all-traffic הגדרת תעבורת הנתונים היוצאת (egress) של רשת ה-VPC .
אתם יכולים לציין את הגדרת תעבורת הנתונים היוצאת (egress) לכל משאב Cloud Run שמשתמש בתעבורת נתונים יוצאת (egress) מרשת VPC, או לאכוף את השימוש בהגדרת תעבורת הנתונים היוצאת (egress) המועדפת על כל משאבי Cloud Run בפרויקט, בתיקייה או בארגון.
האפשרות הזו שימושית במקרים הבאים:
- אתם רוצים להגדיר כתובת IP סטטית יוצאת למשאב Cloud Run.
- אתם רוצים להחיל כללי חומת אש על כל התעבורת נתונים היוצאת (egress) ממשאב Cloud Run.
- רוצים לשלוח בקשות למשאבים מקומיים ולעננים אחרים דרך הרשת הפרטית.
אם משאב Cloud Run שולח בקשות ליעדים סופיים מחוץ לרשת ה-VPC, הדרישה שכל הבקשות יעברו דרך רשת ה-VPC תגדיל את השימוש ברוחב הפס במחברי Serverless VPC Access שהוגדרו, ויכול להיות שהעלויות יגדלו בהתאם. המחברים מתרחבים אוטומטית כשיש יותר תנועה, אבל לא מצטמצמים אם התנועה פוחתת. כדאי לעיין בתמחור כדי להבין את העלויות.
- כדי לציין את הגדרת היציאה למשאבי Cloud Run ספציפיים, אפשר לעיין במאמר שליטה בתעבורת נתונים יוצאת משירות.
- כדי לאכוף הגדרת תעבורת נתונים יוצאת (egress) מסוימת על כל המשאבים של Cloud Run בפרויקט, בתיקייה או בארגון: מגדירים את ההגבלה של מדיניות הארגון
run.allowedVPCEgress. איך מתאימים אישית את כללי המדיניות להגבלות על רשימות
אמצעי בקרה נוספים
- אמצעי בקרה על המתחם ההיקפי: כדי לצמצם את הסיכון לזליגת נתונים מקבוצת משאבים, אפשר למקם אותם במתחם היקפי מודע-הקשר באמצעות VPC Service Controls.
- מידע נוסף על VPC Service Controls זמין במאמר סקירה כללית על VPC Service Controls.
- כדי להתחיל, אפשר לעיין במדריך Cloud Run בנושא שימוש ב-VPC Service Controls (VPC SC).
- כדי להבין את העלויות, כדאי לעיין בתמחור.
- אמצעי בקרה גרנולריים: כדי לשלוט בגישה לתעבורה ממשאב ספציפי ברשת הפרטית, כמו משאב ספציפי של Cloud Run או מכונה וירטואלית של Compute Engine, משתמשים בחשבונות שירות כדי לשלוט בהרשאות ובאימות.
- למידע נוסף על חשבונות שירות, אפשר לעיין במאמר מהם חשבונות שירות?
- כדי להתחיל, אפשר לעיין במדריכי האימות של Cloud Run.
המאמרים הבאים
מידע נוסף על אספקת זמן אחזור נמוך וקצב העברת נתונים גבוה באמצעות נתיב רשת ישיר זמין במאמר תעבורת נתונים יוצאת ישירה מ-VPC באמצעות רשת VPC.