גישה לממשקי API ממכונות וירטואליות עם כתובות IP חיצוניות

מופע של מכונה וירטואלית (VM) עם כתובת IP חיצונית שהוקצתה לממשק הרשת שלה יכול להתחבר לשירותים ול-Google APIs אם מתקיימות דרישות הרשת שמתוארות בדף הזה. למרות שהחיבור מתבצע מכתובת ה-IP החיצונית של המכונה הווירטואלית, תעבורת הנתונים נשארת בתוך Google Cloud ולא נשלחת דרך האינטרנט הציבורי.

דרישות רשת

כדי לגשת לשירותים ולממשקי ה-API של Google ממכונה וירטואלית עם כתובת IP חיצונית, אתם צריכים לעמוד בדרישות הבאות:

  • במידת הצורך, מפעילים את ממשק ה-API לשירותים שרוצים לגשת אליהם:

    • אם אתם ניגשים לנקודת קצה של שירות Google API, אתם צריכים להפעיל את ה-API בשביל השירות הזה.

      לדוגמה, כדי ליצור קטגוריה של Cloud Storage באמצעות נקודת הקצה של שירות storage.googleapis.com API או ספריית לקוח, צריך להפעיל את Cloud Storage API.

    • אם אתם ניגשים לסוגים אחרים של משאבים, יכול להיות שלא תצטרכו להפעיל אף ממשק API.

      לדוגמה, כדי לגשת לקטגוריה של Cloud Storage בפרויקט אחר באמצעות כתובת ה-URL של האחסוןgoogleapis.com , לא צריך להפעיל את Cloud Storage API.

  • בהתאם להגדרה שבחרתם, יכול להיות שתצטרכו לעדכן את רשומות ה-DNS, המסלולים וכללי חומת האש. מידע נוסף זמין במאמר סיכום אפשרויות ההגדרה.

סיכום של אפשרויות ההגדרה

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

VPC Service Controls.
אפשרות דומיין הגדרת DNS הגדרת ניתוב הגדרת חומת אש
דומיינים שמוגדרים כברירת מחדל אתם ניגשים ל-Google APIs ולשירותים של Google דרך כתובות ה-IP הציבוריות שלהם, ולכן לא נדרשת הגדרת DNS מיוחדת.

מוודאים שברשת ה-VPC אפשר לנתב תנועה לטווחים של כתובות IP שמשמשים את Google APIs והשירותים של Google.

  • הגדרה בסיסית: מוודאים שיש לכם מסלולי ברירת מחדל עם קפיצה הבאה default-internet-gateway וטווח יעד של 0.0.0.0/0 (לתעבורת IPv4) ו-::/0 (לתעבורת IPv6, אם צריך). אם הם לא קיימים, צריך ליצור אותם.
  • הגדרה בהתאמה אישית: יצירת מסלולים לטווחים של כתובות IP שמשמשים את Google APIs והשירותים של Google.

מוודאים שכללי חומת האש מאפשרים יציאה לטווחים של כתובות ה-IP שמשמשים את שירותי Google ואת Google APIs.

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

private.googleapis.com

מגדירים רשומות DNS בשרת DNS פרטי כדי לשלוח בקשות לכתובות ה-IP הבאות:

לתנועת IPv4:

  • 199.36.153.8/30

לתנועת IPv6:

  • 2600:2d00:0002:2000::/56

מוודאים שלרשת ה-VPC יש מסלולים לטווחים הבאים של כתובות IP:

לתנועת IPv4:

  • 199.36.153.8/30
  • 34.126.0.0/18

לתנועת IPv6:

  • 2600:2d00:0002:2000::/56
  • 2001:4860:8040::/42

מוודאים שכללי חומת האש מאפשרים תעבורת נתונים יוצאת (egress) לטווחים הבאים של כתובות IP:

לתנועת IPv4:

  • 199.36.153.8/30
  • 34.126.0.0/18

לתנועת IPv6:

  • 2600:2d00:0002:2000::/56
  • 2001:4860:8040::/42
restricted.googleapis.com

מגדירים רשומות DNS לשליחת בקשות לכתובות ה-IP הבאות:

לתנועת IPv4:

  • 199.36.153.4/30

לתנועת IPv6:

  • 2600:2d00:0002:1000::/56

מוודאים שלרשת ה-VPC יש מסלולים לטווחים הבאים של כתובות IP:

לתנועת IPv4:

  • 199.36.153.4/30
  • 34.126.0.0/18

לתנועת IPv6:

  • 2600:2d00:0002:1000::/56
  • 2001:4860:8040::/42

מוודאים שכללי חומת האש מאפשרים תעבורת נתונים יוצאת (egress) לטווחים הבאים של כתובות IP:

לתנועת IPv4:

  • 199.36.153.4/30
  • 34.126.0.0/18

לתנועת IPv6:

  • 2600:2d00:0002:1000::/56
  • 2001:4860:8040::/42

הגדרת רשת

בקטע הזה מתוארות דרישות הרשת הבסיסיות שצריך לעמוד בהן כדי שמכונה וירטואלית ברשת ה-VPC תוכל לגשת לשירותים ולממשקי Google APIs.

אפשרויות דומיין

בוחרים את הדומיין שבו רוצים להשתמש כדי לגשת לממשקי API ולשירותים של Google.

כתובות ה-IP הווירטואליות (VIP) private.googleapis.com ו-restricted.googleapis.com תומכות רק בפרוטוקולים מבוססי-HTTP דרך TCP ‏ (HTTP,‏ HTTPS ו-HTTP/2). אין תמיכה בכל הפרוטוקולים האחרים, כולל MQTT ו-ICMP. אין תמיכה באתרים אינטראקטיביים ותכונות שמשתמשות באינטרנט – למשל, להפניות אוטומטיות או לאחזור תוכן.

דומיין וטווחי כתובות IP שירותים נתמכים דוגמאות לשימוש

דומיינים שמוגדרים כברירת מחדל.

כל שמות הדומיינים של ממשקי Google APIs והשירותים למעט private.googleapis.com ו-restricted.googleapis.com.

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

מאפשר גישת API לרוב ממשקי ה-API והשירותים של Google, בלי קשר לשאלה אם הם נתמכים על ידי VPC Service Controls. כולל גישה ל-API של מפות Google,‏ Google Ads ו- Google Cloud. כולל אפליקציות אינטרנט של Google Workspace כמו Gmail ו-Google Docs, ואפליקציות אינטרנט אחרות.

הדומיינים שמוגדרים כברירת מחדל משמשים כשלא מגדירים רשומות DNS עבור private.googleapis.com ו- restricted.googleapis.com.

private.googleapis.com

199.36.153.8/30

2600:2d00:0002:2000::/56

מאפשר גישת API לרוב ממשקי ה-API והשירותים של Google, בלי קשר לשאלה אם הם נתמכים על ידי VPC Service Controls. כולל גישה ל-API של מפות Google,‏ Google Ads,‏ Google Cloudורוב ממשקי ה-API האחרים של Google, כולל הרשימה הבאה. לא תומך באפליקציות אינטרנט של Google Workspace כמו Gmail ו-Google Docs.

שמות דומיין שתואמים:

  • accounts.google.com (תומך רק בנתיבים שנדרשים לאימות OAuth של חשבונות שירות; אימות של חשבונות משתמשים הוא אינטראקטיבי ולא נתמך)
  • *.aiplatform-notebook.cloud.google.com
  • *.aiplatform-notebook.googleusercontent.com
  • appengine.google.com
  • *.appspot.com
  • *.backupdr.cloud.google.com
  • backupdr.cloud.google.com
  • *.backupdr.googleusercontent.com
  • backupdr.googleusercontent.com
  • *.cloudfunctions.net
  • *.cloudproxy.app
  • *.composer.cloud.google.com
  • *.composer.googleusercontent.com
  • *.datafusion.cloud.google.com
  • *.datafusion.googleusercontent.com
  • *.dataproc.cloud.google.com
  • dataproc.cloud.google.com
  • *.dataproc.googleusercontent.com
  • dataproc.googleusercontent.com
  • *.developerconnect.dev
  • dl.google.com
  • gcr.io או *.gcr.io
  • *.googleapis.com
  • *.gke.goog
  • gstatic.com או *.gstatic.com
  • *.kernels.googleusercontent.com
  • *.ltsapis.goog
  • *.notebooks.byoid.googleusercontent.com
  • *.notebooks.cloud.google.com
  • notebooks.cloud.google.com
  • *.notebooks.googleusercontent.com
  • packages.cloud.google.com
  • pkg.dev או *.pkg.dev
  • pki.goog או *.pki.goog
  • *.run.app
  • source.developers.google.com
  • storage.cloud.google.com

אפשר להשתמש ב-private.googleapis.com כדי לגשת לשירותים ולממשקי Google API באמצעות קבוצה של כתובות IP שאפשר להפנות אליהן תעבורה רק מתוך Google Cloud.

בוחרים באפשרות private.googleapis.com במקרים הבאים:

  • אתם לא משתמשים ב-VPC Service Controls.
  • אתם משתמשים ב-VPC Service Controls, אבל אתם צריכים גם לגשת ל-Google APIs ולשירותים של Google שלא נתמכים על ידי VPC Service Controls.1

restricted.googleapis.com

199.36.153.4/30

2600:2d00:0002:1000::/56

מאפשר גישת API אל ממשקי API ושירותים של Google שנתמכים על ידי VPC Service Controls.

חסימת הגישה לממשקי Google API ולשירותים שלא תומכים ב-VPC Service Controls. אין תמיכה בממשקי API של Google Workspace או באפליקציות אינטרנט של Google Workspace, כמו Gmail ו-Google Docs.

אפשר להשתמש ב-restricted.googleapis.com כדי לגשת לשירותים ולממשקי Google API באמצעות קבוצה של כתובות IP שאפשר להפנות אליהן תעבורה רק מתוך Google Cloud.

בוחרים באפשרות restricted.googleapis.com כשרק צריך גישה לממשקי API ולשירותים של Google שנתמכים על ידי VPC Service Controls.

בדומיין restricted.googleapis.com אין אפשרות לגשת לממשקי API ולשירותים של Google שלא תומכים ב-VPC Service Controls.1

1 אם אתם צריכים להגביל את המשתמשים רק לשירותים ולממשקי Google API שתומכים ב-VPC Service Controls, כדאי להשתמש ב-restricted.googleapis.com, כי הוא מספק אמצעים נוספים לצמצום הסיכון לזליגת נתונים. השימוש ב-restricted.googleapis.com חוסם את הגישה לממשקי API ולשירותים של Google שלא נתמכים על ידי VPC Service Controls. פרטים נוספים זמינים במאמר הגדרת קישוריות פרטית במסמכי VPC Service Controls.

תמיכה ב-IPv6 ב-private.googleapis.com וב-restricted.googleapis.com

אפשר להשתמש בטווחי כתובות ה-IPv6 הבאים כדי להפנות תעבורה מלקוחות IPv6 אל ממשקי API ושירותים של Google:

  • private.googleapis.com: 2600:2d00:0002:2000::/56
  • restricted.googleapis.com: 2600:2d00:0002:1000::/56

כדאי להגדיר את כתובות ה-IPv6 אם רוצים להשתמש בדומיין private.googleapis.com או restricted.googleapis.com, ויש לכם לקוחות שמשתמשים בכתובות IPv6. לקוחות IPv6 שהוגדרו להם גם כתובות IPv4 יכולים לגשת לשירותים ולממשקי API של Google באמצעות כתובות ה-IPv4. לא כל השירותים מקבלים תנועה מלקוחות IPv6.

הגדרת DNS

כדי להתחבר לממשקי API ולשירותים של Google, אתם יכולים לבחור לשלוח חבילות לכתובות ה-IP שמשויכות ל-VIP של private.googleapis.com או של restricted.googleapis.com. כדי להשתמש ב-VIP, צריך להגדיר DNS כך שהמכונות הווירטואליות ברשת ה-VPC יוכלו לגשת לשירותים באמצעות כתובות ה-VIP במקום כתובות ה-IP הציבוריות.

בקטעים הבאים מוסבר איך להשתמש באזורי DNS כדי לשלוח מנות לכתובות ה-IP שמשויכות ל-VIP שבחרתם. פועלים לפי ההוראות לכל התרחישים הרלוונטיים:

כשמגדירים רשומות DNS לכתובות ה-VIP, צריך להשתמש רק בכתובות ה-IP שמתוארות בשלבים הבאים. אל תערבבו כתובות מה-VIP של private.googleapis.com ומה-VIP של restricted.googleapis.com. הדבר עלול לגרום לכשלים לסירוגין כי השירותים שמוצעים שונים בהתאם ליעד של החבילה.

הגדרת DNS עבור googleapis.com

יוצרים תחום DNS ורשומות עבור googleapis.com:

  1. יוצרים שרת DNS פרטי בשביל googleapis.com. כדאי ליצור תחום פרטי ב-Cloud DNS למטרה הזו.
  2. באזור googleapis.com, יוצרים את רשומות ה-DNS הפרטיות הבאות עבור אחת מהאפשרויות private.googleapis.com או restricted.googleapis.com, בהתאם לדומיין שבחרתם להשתמש בו.

    • עבור private.googleapis.com:

      1. יוצרים רשומת A עבור private.googleapis.com שמפנה לכתובות ה-IP הבאות: 199.36.153.8, ‏ 199.36.153.9, ‏ 199.36.153.10, ‏ 199.36.153.11.

      2. כדי להתחבר לממשקי API באמצעות כתובות IPv6, צריך גם להגדיר רשומת AAAA עבור private.googleapis.com שמפנה אל 2600:2d00:0002:2000::.

    • עבור restricted.googleapis.com:

      1. יוצרים רשומת A עבור restricted.googleapis.com שמפנה לכתובות ה-IP הבאות: 199.36.153.4, ‏ 199.36.153.5, ‏ 199.36.153.6, ‏ 199.36.153.7.

      2. כדי להתחבר לממשקי API באמצעות כתובות IPv6, צריך גם ליצור רשומת AAAA בשביל restricted.googleapis.com שמפנה אל 2600:2d00:0002:1000::.

    כדי ליצור רשומות DNS פרטיות ב-Cloud DNS, אפשר לעיין במאמר בנושא הוספת רשומה.

  3. באזור googleapis.com, יוצרים רשומת CNAME עבור *.googleapis.com שמצביעה על הדומיין שהגדרתם: private.googleapis.com או restricted.googleapis.com.

הגדרת DNS לדומיינים אחרים

חלק משירותי Google ומממשקי Google API מסופקים באמצעות שמות דומיין נוספים, כולל *.gcr.io,‏ *.gstatic.com,‏ *.pkg.dev,‏ pki.goog,‏ *.run.app ו-*.gke.goog. כדי לדעת אם אפשר לגשת לשירותים של הדומיין הנוסף באמצעות private.googleapis.com או restricted.googleapis.com, כדאי לעיין בטבלה של טווחי כתובות ה-IP והדומיינים בקטע אפשרויות לדומיין. לאחר מכן, לכל אחד מהדומיינים הנוספים:

  1. יוצרים תחום DNS עבור DOMAIN (לדוגמה, gcr.io). אם אתם משתמשים ב-Cloud DNS, ודאו שהתחום הזה נמצא באותו פרויקט כמו התחום הפרטי googleapis.com.

  2. בתחום ה-DNS הזה, יוצרים את רשומות ה-DNS הפרטיות הבאות עבור אחת מהאפשרויות: private.googleapis.com או restricted.googleapis.com, בהתאם לדומיין שבחרתם להשתמש בו.

    • עבור private.googleapis.com:

      1. יוצרים רשומת A עבור DOMAIN שמפנה לכתובות ה-IP הבאות: 199.36.153.8, ‏ 199.36.153.9, ‏ 199.36.153.10, ‏ 199.36.153.11.

      2. כדי להתחבר לממשקי API באמצעות כתובות IPv6, צריך גם ליצור רשומת AAAA ל-DOMAIN שמפנה אל 2600:2d00:0002:2000::.

    • עבור restricted.googleapis.com:

      1. יוצרים רשומת A עבור DOMAIN שמפנה לכתובות ה-IP הבאות: 199.36.153.4, ‏ 199.36.153.5, ‏ 199.36.153.6, ‏ 199.36.153.7.

      2. כדי להתחבר לממשקי API באמצעות כתובות IPv6, צריך גם ליצור רשומת AAAA בשביל DOMAIN שמפנה אל 2600:2d00:0002:1000::.

  3. בתחום DOMAIN, יוצרים רשומת CNAME בשביל *.DOMAIN שמצביעה אל DOMAIN. לדוגמה, יוצרים רשומת CNAME בשביל *.gcr.io שמצביעה אל gcr.io.

הגדרת DNS לשמות דומיינים מותאמים אישית ב-Cloud Storage

אם אתם משתמשים בקטגוריות של Cloud Storage ושולחים בקשות לשם דומיין מותאם אישית של Cloud Storage, הגדרת רשומות DNS לשם הדומיין המותאם אישית של Cloud Storage כך שיפנו לכתובות ה-IP של private.googleapis.com או restricted.googleapis.com לא מספיקה כדי לאפשר גישה לקטגוריות של Cloud Storage.

אם רוצים לשלוח בקשות לשם דומיין מותאם אישית ב-Cloud Storage, צריך גם להגדיר באופן מפורש את כותרת המארח של בקשת ה-HTTP ואת TLS SNI ל-storage.googleapis.com כתובות ה-IP של private.googleapis.com ו-restricted.googleapis.com לא תומכות בשמות מארחים מותאמים אישית של Cloud Storage בכותרות מארח של בקשות HTTP וב-TLS SNI.

אפשרויות ניתוב

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

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

  • ‫Google לא מפרסמת באינטרנט מסלולים לאף אחת מכתובות ה-IP שמשמשות את הדומיינים private.googleapis.com או restricted.googleapis.com. לכן, אפשר לגשת לדומיינים האלה רק ממכונות וירטואליות ברשת VPC או ממערכות מקומיות שמחוברות לרשת VPC.

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

אם החלפתם נתיב ברירת מחדל (יעד 0.0.0.0/0 או ::0/0) בנתיב מותאם אישית שה-next hop שלו לא הוא שער האינטרנט שמוגדר כברירת מחדל, אתם יכולים לעמוד בדרישות הניתוב של ממשקי ה-API והשירותים של Google באמצעות ניתוב מותאם אישית במקום זאת.

אם ברשת ה-VPC אין נתיב ברירת מחדל של IPv6, לא תהיה לכם קישוריות IPv6 לממשקי API ולשירותים של Google. מוסיפים נתיב ברירת מחדל של IPv6 כדי לאפשר קישוריות IPv6.

ניתוב עם נתיב ברירת מחדל

כל רשת VPC מכילה נתיב ברירת מחדל של IPv4 ‏ (0.0.0.0/0) כשהיא נוצרת. אם מפעילים כתובות IPv6 חיצוניות ברשת משנה, נתיב ברירת מחדל של IPv6 שנוצר על ידי המערכת (::/0) מתווסף לרשת ה-VPC.

מסלולי ברירת המחדל מספקים נתיב לכתובות ה-IP של היעדים הבאים:

  • דומייני ברירת המחדל.

  • private.googleapis.com: 199.36.153.8/30 וגם 2600:2d00:0002:2000::/56.

  • restricted.googleapis.com: 199.36.153.4/30 וגם 2600:2d00:0002:1000::/56.

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

המסוף

  1. נכנסים לדף Routes במסוף Google Cloud .

    לדף Routes

  2. מסננים את רשימת המסלולים כדי להציג רק את המסלולים של הרשת שרוצים לבדוק.

  3. מחפשים נתיב שהיעד שלו הוא 0.0.0.0/0 לתעבורת IPv4 או ::/0 לתעבורת IPv6, והקפיצה הבאה שלו היא שער האינטרנט שמוגדר כברירת מחדל.

gcloud

משתמשים בפקודה gcloud הבאה, ומחליפים את NETWORK_NAME בשם הרשת שרוצים לבדוק:

gcloud compute routes list \
    --filter="default-internet-gateway NETWORK_NAME"

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

אם אתם צריכים ליצור נתיב IPv6 חלופי שמוגדר כברירת מחדל, ראו הוספת נתיב IPv6 שמוגדר כברירת מחדל.

ניתוב בהתאמה אישית

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

בנוסף, מומלץ להוסיף נתיבים ל-34.126.0.0/18 ול-2001:4860:8040::/42. מידע נוסף מופיע בקטע סיכום אפשרויות ההגדרה.

כדי לבדוק את ההגדרה של מסלולים מותאמים אישית עבור Google APIs ושירותים של Google ברשת מסוימת, פועלים לפי ההוראות הבאות.

המסוף

  1. נכנסים לדף Routes במסוף Google Cloud .

    לדף Routes

  2. משתמשים בשדה הטקסט Filter table כדי לסנן את רשימת המסלולים לפי הקריטריונים הבאים, ומחליפים את NETWORK_NAME בשם של רשת ה-VPC.

    • רשת: NETWORK_NAME
    • סוג הצעד הבא: default internet gateway
  3. בודקים את העמודה Destination IP range (טווח כתובות ה-IP של היעד) בכל מסלול. אם בחרתם בדומיינים שמוגדרים כברירת מחדל, צריך לבדוק אם יש כמה מסלולים סטטיים מותאמים אישית, אחד לכל טווח כתובות IP שמשמש את הדומיין שמוגדר כברירת מחדל. אם בחרתם באפשרות private.googleapis.com או restricted.googleapis.com, חפשו את טווח כתובות ה-IP של הדומיין הזה.

gcloud

משתמשים בפקודה gcloud הבאה, ומחליפים את NETWORK_NAME בשם הרשת שרוצים לבדוק:

gcloud compute routes list \
    --filter="default-internet-gateway NETWORK_NAME"

המסלולים מפורטים בפורמט טבלה, אלא אם משתמשים בדגל --format כדי להתאים אישית את הפקודה. בודקים את העמודה DEST_RANGE כדי לראות את היעד של כל מסלול. אם בחרתם בדומיינים שמוגדרים כברירת מחדל, בדקו אם יש כמה מסלולים סטטיים מותאמים אישית, אחד לכל טווח כתובות IP שמשמש את הדומיין שמוגדר כברירת מחדל. אם בחרתם באפשרות private.googleapis.com או restricted.googleapis.com, חפשו את טווח כתובות ה-IP של הדומיין הזה.

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

הגדרת חומת אש

הגדרת חומת האש של רשת ה-VPC צריכה לאפשר גישה ממכונות וירטואליות לכתובות ה-IP שמשמשות את Google APIs ואת השירותים של Google. הכלל המשתמע allow egress עומד בדרישה הזו.

במקרים מסוימים, בהגדרות של חומת האש צריך ליצור כללים ספציפיים שמאפשרים יציאה. לדוגמה, נניח שיצרתם כלל שחוסם תנועה יוצאת לכל היעדים (0.0.0.0 ל-IPv4 או ::/0 ל-IPv6). במקרה כזה, צריך ליצור כלל אחד של חומת אש ליציאה שמאפשר גישה, עם עדיפות גבוהה יותר מהכלל שחוסם יציאה, לכל טווח כתובות IP שמשמש את הדומיין שבחרתם עבור שירותים ו-Google APIs.

בנוסף, מומלץ לכלול את 34.126.0.0/18 ואת 2001:4860:8040::/42 בכלל חומת האש ליציאה. מידע נוסף זמין במאמר סיכום אפשרויות ההגדרה.

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

כתובות IP לדומיינים שמוגדרים כברירת מחדל

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

אם יש לכם דרישות מחמירות לגבי תעבורת נתונים יוצאת (egress), אל תשתמשו בכתובות ה-IP של הדומיינים שמוגדרים כברירת מחדל. משתמשים בנקודת קצה של Private Service Connect או ב-VIP פרטי (private.googleapis.com ) או מוגבל (restricted.googleapis.com ). האפשרויות האלה דורשות הגדרת DNS נוספת, אבל לא דורשות תחזוקה של רשימת טווחי כתובות IP.

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

  • ‫Google מפרסמת רשימה של כתובות IP בבעלות Google בקובץ goog.json.

  • Google מפרסמת גם רשימה של טווחי כתובות IP חיצוניות גלובליות ואזוריות שזמינות למשאבי Google Cloud של לקוחות ב-cloud.json.

אם מסירים את כל הטווחים ב-cloud.json מאלה שב-goog.json, מקבלים קבוצה גדולה של כתובות IP שמשמשות את Google APIs הגלובליים ושירותים אחרים של Google, כולל מוצרים שפונים ללקוחות מחוץ ל- Google Cloud. הרשימות האלה מתעדכנות לעיתים קרובות.

אפשר להשתמש בסקריפט Python הבא כדי ליצור רשימה של טווחי כתובות IP שכוללים את אלה שמשמשים את הדומיינים שנבחרו כברירת מחדל עבור Google APIs והשירותים של Google.

מידע על הרצת הסקריפט מופיע במאמר איך מריצים סקריפט.

from __future__ import print_function

import json

try:
    from urllib import urlopen
except ImportError:
    from urllib.request import urlopen
    from urllib.error import HTTPError

import netaddr

IPRANGE_URLS = {
    "goog": "https://www.gstatic.com/ipranges/goog.json",
    "cloud": "https://www.gstatic.com/ipranges/cloud.json",
}


def read_url(url):
    try:
        return json.loads(urlopen(url).read())
    except (IOError, HTTPError):
        print("ERROR: Invalid HTTP response from %s" % url)
    except json.decoder.JSONDecodeError:
        print("ERROR: Could not parse HTTP response from %s" % url)


def get_data(link):
    data = read_url(link)
    if data:
        print("{} published: {}".format(link, data.get("creationTime")))
        cidrs = netaddr.IPSet()
        for e in data["prefixes"]:
            if "ipv4Prefix" in e:
                cidrs.add(e.get("ipv4Prefix"))
            if "ipv6Prefix" in e:
                cidrs.add(e.get("ipv6Prefix"))
        return cidrs


def main():
    cidrs = {group: get_data(link) for group, link in IPRANGE_URLS.items()}
    if len(cidrs) != 2:
        raise ValueError("ERROR: Could process data from Google")
    print("IP ranges for Google APIs and services default domains:")
    for ip in (cidrs["goog"] - cidrs["cloud"]).iter_cidrs():
        print(ip)


if __name__ == "__main__":
    main()