שיתוף כללים של VPC Service Controls

במסמך הזה מתוארים הכללים לתעבורת נתונים נכנסת (ingress) ויוצאת (egress) שצריך להגדיר כדי לאפשר למפרסמים ולמנויים ב-BigQuery sharing (לשעבר Analytics Hub) לגשת לנתונים מפרויקטים שיש להם היקפי VPC Service Controls. במסמך הזה אנחנו מניחים שאתם מכירים את המושגים הבאים: גבולות של VPC Service Controls, מערכי נתונים משותפים, מרכזי נתונים, כרטיסי מוצר ומערכי נתונים מקושרים.

פרויקט המפעיל הוא הפרויקט של הרשת או הלקוח Google Cloud שמפעיל את הבקשה, כמו שאילתת SQL או פקודה של Google Cloud CLI.

יצירת שיתוף נתונים

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

כלל VPC Service Controls כשיוצרים אוסף נתונים לשיתוף.

איור 1. כללים של VPC Service Controls ליצירת אוסף נתונים לשיתוף.

באיור 1, הרכיבים הבאים מסומנים:

  • הגורם המבצע: אדמין של שיתוף ב-BigQuery.
  • ‫Project R: הפרויקט שממנו מתבצעת הקריאה.
  • פרויקט E: מארח את אוסף הנתונים לשיתוף ואת כרטיסי המוצר.

אם אתם אדמינים של BigQuery sharing ויוצרים אוסף נתונים לשיתוף בפרויקט שונה מהפרויקט שממנו מתבצעת הקריאה, אתם צריכים להוסיף את הכללים הבאים לתעבורת נתונים נכנסת (ingress) ויוצאת (egress):

Project כלל
Project R כלל לתעבורת נתונים יוצאת (egress) בפרויקט E
פרויקט E (החלפת נתונים) כלל לתעבורת נתונים נכנסת (ingress) בפרויקט R

יצירת כרטיס מוצר

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

כלל VPC Service Controls כשיוצרים כרטיס מוצר.

איור 2. כללים של VPC Service Controls ליצירת כרטיס מוצר.

באיור 2, הרכיבים הבאים מסומנים:

  • הגורם המפעיל: אדמין או מפרסם של שיתוף ב-BigQuery.
  • ‫Project R: הפרויקט של שולח הקריאה.
  • פרויקט E: מארח את אוסף הנתונים לשיתוף ואת כרטיסי המוצר.
  • פרויקט S: מארח את מערך הנתונים המשותף.

כשיוצרים כרטיס מוצר באוסף נתונים לשיתוף שנמצא בפרויקט אחר ממערך הנתונים המשותף, צריך להוסיף את הכללים הבאים לתעבורת נתונים נכנסת (ingress) ויוצאת (egress) כדי לאפשר לבעלי תוכן שמשתפים ב-BigQuery sharing ליצור כרטיס מוצר:

Project כלל
Project R

כלל לתעבורת נתונים יוצאת (egress) בפרויקט E

כלל לתעבורת נתונים יוצאת (egress) בפרויקט S

פרויקט ה'החלפת נתונים'

כלל לתעבורת נתונים יוצאת (egress) בפרויקט S

כלל לתעבורת נתונים נכנסת (ingress) בפרויקט R

פרויקט S (מערך נתונים משותף)

כלל לתעבורת נתונים יוצאת (egress) בפרויקט E

כלל לתעבורת נתונים נכנסת (ingress) בפרויקט R

הרשמה לכרטיס מוצר

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

כלל VPC Service Controls כשנרשמים לכרטיס מוצר.

איור 3. כללי VPC Service Controls להרשמה לכרטיס מוצר.

באיור 3, הרכיבים הבאים מסומנים:

  • הגורם המפעיל: מנוי לשיתוף ב-BigQuery.
  • ‫Project R: הפרויקט ששולח את הקריאה.
  • פרויקט E: מארח את אוסף הנתונים לשיתוף ואת כרטיסי המוצר.
  • ‫Project L: מארח את מערך הנתונים המקושר.

אם אתם מנויים לשיתוף נתונים ב-BigQuery, ואתם נרשמים לכרטיס מוצר בבורסת נתונים שנמצאת בפרויקט אחר מהפרויקט שלכם, אתם צריכים להוסיף את כללי הכניסה והיציאה הבאים:

Project כלל
Project R

כלל לתעבורת נתונים יוצאת (egress) בפרויקט E

כלל לתעבורת נתונים יוצאת (egress) עבור פרויקט L

פרויקט ה'רשימה' (E)

כלל לתעבורת נתונים יוצאת (egress) עבור פרויקט L

כלל לתעבורת נתונים נכנסת (ingress) בפרויקט R

פרויקט L (קבוצת נתונים מקושרת)

כלל לתעבורת נתונים יוצאת (egress) בפרויקט E

כלל לתעבורת נתונים נכנסת (ingress) בפרויקט R

עדכון כרטיס מידע

כשמעדכנים כרטיס מוצר – למשל, כדי לשנות את מדיניות הייצוא המוגבלת שלו – BigQuery sharing משתמש בתהליך רקע כדי להפיץ את השינויים האלה למערכי הנתונים המקושרים המשויכים. אם Google Cloud הפרויקט מוגן על ידי service perimeter של VPC Service Controls עם הגבלות מבוססות-IP, יכול להיות שהעובד ברקע שמקורו בתשתית של Google ייחסם, ולכן לא תתבצע סנכרון מוצלח של מערך הנתונים המקושר.

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

כדי לשנות את מדיניות הכניסה בהיקף של פרויקט המנוי, מוסיפים כלל כניסה שמאפשר לחשבון המשתמש שקורא לגשת לשירות bigquery.googleapis.com מכל כתובת IP של מקור (*):

ingressFrom:
  sources:
    - accessLevel: "*"
  identities:
    - "user:CALLING_USER_EMAIL"
    - "serviceAccount:AUTOMATION_SA_EMAIL"
ingressTo:
  resources:
    - "projects/SUBSCRIBER_PROJECT_NUMBER"
  operations:
    - serviceName: "bigquery.googleapis.com"
      methodSelectors:
        - method: "*"

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

egressFrom:
  identities:
    - "user:CALLING_USER_EMAIL"
    - "serviceAccount:AUTOMATION_SA_EMAIL"
egressTo:
  resources:
    - "projects/SUBSCRIBER_PROJECT_NUMBER"
  operations:
    - serviceName: "bigquery.googleapis.com"
      methodSelectors:
        - method: "*"

מחליפים את מה שכתוב בשדות הבאים:

  • ‫CALLING_USER_EMAIL: כתובת האימייל של המשתמש שמריץ את קריאת ה-API כדי לעדכן את כרטיס המוצר. צריך לכלול את הזהות הזו אם המשתמש שמעדכן הוא אדם.
  • ‫AUTOMATION_SA_EMAIL: כתובת האימייל של חשבון השירות שמריץ את קריאה ל-API לעדכון כרטיס המוצר. צריך לכלול את הזהות הזו אם תהליך אוטומטי או סקריפט מבצעים את העדכון.
  • ‫SUBSCRIBER_PROJECT_NUMBER: מספר הפרויקט של פרויקט המנוי שמכיל את מערך הנתונים המקושר.

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

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

כלל VPC Service Controls כשמבצעים שאילתה בטבלה במערך הנתונים המקושר.

איור 4. כללים של VPC Service Controls לשליחת שאילתות למערך נתונים מקושר.

באיור 4, הרכיבים הבאים מתויגים:

  • הגורם הקורא: מנוי לשיתוף ב-BigQuery או כל משתמש במשימה ב-BigQuery של מערך הנתונים המקושר.
  • ‫Project R: הפרויקט שממנו מתבצעת הקריאה.
  • ‫Project L: מארח את מערך הנתונים המקושר.
  • פרויקט V: מארח את מערך הנתונים המשותף שמכיל את הטבלה.

כשאתם, כמנויים לשיתוף ב-BigQuery, שולחים שאילתה לטבלה במערך הנתונים המקושר, אתם צריכים להוסיף את כללי הכניסה והיציאה הבאים:

Project כלל
Project R כלל לתעבורת נתונים יוצאת (egress) עבור פרויקט L
פרויקט L (קבוצת נתונים מקושרת) כלל לתעבורת נתונים נכנסת (ingress) בפרויקט R

שאילתת תצוגות בקבוצת נתונים מקושרת

בקטע הזה מתוארים הכללים הנדרשים של VPC Service Controls לשאילתת תצוגה במערך נתונים מקושר. הכללים משתנים בהתאם לשאלה אם התצוגה וטבלאות הבסיס שלה נמצאות באותו פרויקט או בפרויקטים נפרדים.

תרחיש 1

בתרשים הבא, הפרויקטים שמכילים את מערך הנתונים המקושר ואת טבלאות הבסיס שמשויכות לתצוגה נמצאים בהיקפי שירות שונים. התצוגה (Project S) ומסד הנתונים הטבלאי שמשויך לתצוגה (Project V) נמצאים בפרויקטים שונים:

טבלאות התצוגה והבסיס נמצאות בפרויקטים שונים.

איור 5. כללים של VPC Service Controls לשאילתת תצוגה במערך נתונים מקושר.

באיור 5, הרכיבים הבאים מסומנים בתוויות:

  • הגורם הקורא: מנוי לשיתוף ב-BigQuery או כל משתמש במשימה ב-BigQuery של מערך הנתונים המקושר.
  • ‫Project R: הפרויקט שממנו מתבצעת הקריאה.
  • ‫Project L: מארח את מערך הנתונים המקושר.
  • פרויקט S: מארח את מערך הנתונים המשותף.
  • פרויקט V: מארח את מערך הנתונים שמכיל את טבלאות הבסיס שמשויכות לתצוגה.

כשאתם, כמנויים לשיתוף ב-BigQuery, שולחים שאילתה לתצוגה במערך נתונים מקושר, אתם צריכים להוסיף את הכללים הבאים לתעבורת נתונים נכנסת (ingress) ויוצאת (egress):

Project כלל
Project R

כלל לתעבורת נתונים יוצאת (egress) עבור פרויקט L

כלל לתעבורת נתונים יוצאת (egress) בפרויקט V

פרויקט L (קבוצת נתונים מקושרת)

כלל לתעבורת נתונים נכנסת (ingress) בפרויקט R

כלל לתעבורת נתונים יוצאת (egress) בפרויקט V

Project V

כלל לתעבורת נתונים יוצאת (egress) עבור פרויקט L

כלל לתעבורת נתונים נכנסת (ingress) בפרויקט R

תרחיש 2

בדיאגרמה הבאה, התצוגה (Project V) ומסד הנתונים הטבלאי שמשויך לתצוגה (Project V) נמצאים באותו פרויקט:

התצוגה והטבלאות הבסיסיות נמצאות באותו פרויקט.

איור 6. כללים של VPC Service Controls לשאילתת תצוגה במערך נתונים מקושר.

באיור 6, הרכיבים הבאים מסומנים:

  • הגורם הקורא: מנוי לשיתוף ב-BigQuery או כל משתמש במשימה ב-BigQuery של מערך הנתונים המקושר.
  • ‫Project R: הפרויקט שממנו מתבצעת הקריאה.
  • ‫Project L: מארח את מערך הנתונים המקושר.
  • ‫Project V: מארח גם את התצוגה וגם את טבלאות הבסיס שמשויכות לתצוגה.

כשאתם, כמנויים לשיתוף ב-BigQuery, שולחים שאילתה לתצוגה במערך נתונים מקושר, אתם צריכים להוסיף את הכללים הבאים לתעבורת נתונים נכנסת (ingress) ויוצאת (egress):

Project כלל
Project R

כלל לתעבורת נתונים יוצאת (egress) עבור פרויקט L

פרויקט L (קבוצת נתונים מקושרת)

כלל לתעבורת נתונים נכנסת (ingress) בפרויקט R

הרצת שאילתות על תצוגות מורשות בקבוצת נתונים מקושרת

בתרשים הבא, התצוגה המורשית וטבלת הבסיס שמשויכת לתצוגה המורשית (פרויקט V) נמצאות באותו פרויקט:

התצוגה המורשית וטבלאות הבסיס נמצאות באותו פרויקט.

איור 7. כללים של VPC Service Controls לשאילתת תצוגה במערך נתונים מקושר.

באיור 7, הרכיבים הבאים מתויגים:

  • הגורם הקורא: מנוי לשיתוף ב-BigQuery או כל משתמש במשימה ב-BigQuery של מערך הנתונים המקושר.
  • ‫Project R: הפרויקט שממנו מתבצעת הקריאה.
  • ‫Project L: מארח את מערך הנתונים המקושר.
  • ‫Project V: מארח גם את התצוגה המורשית וגם את טבלאות הבסיס שמשויכות לתצוגה.

כשאתם, כמנויים לשיתוף ב-BigQuery, שולחים שאילתה לתצוגה במערך נתונים מקושר, אתם צריכים להוסיף את הכללים הבאים לתעבורת נתונים נכנסת (ingress) ויוצאת (egress):

Project כלל
Project R

כלל לתעבורת נתונים יוצאת (egress) עבור פרויקט L

פרויקט L (קבוצת נתונים מקושרת)

כלל לתעבורת נתונים נכנסת (ingress) בפרויקט R

מגבלות

שיתוף ב-BigQuery לא תומך בכללים מבוססי-שיטה. כדי להפעיל כללים שמבוססים על שיטות, צריך לאפשר את כל השיטות. לדוגמה:

          ingressTo:
            operations:
            - methodSelectors:
              - method: '*'
              serviceName: analyticshub.googleapis.com
            resources:
            - projects/PROJECT_ID

אם משאבי BigQuery מוגנים גם על ידי היקפי שירות, צריך לאפשר כללים לתעבורת נתונים נכנסת (ingress) ויוצאת (egress) עבור שירות BigQuery. כשיוצרים חילופי נתונים, לא צריך לאפשר כללי כניסה ויציאה. כללי הכניסה והיציאה של BigQuery דומים לאלה של BigQuery sharing. לדוגמה:

          ingressTo:
            operations:
            - methodSelectors:
              - method: '*'
              serviceName: bigquery.googleapis.com
            resources:
            - projects/PROJECT_ID

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