‫VPC Service Controls ל-BigQuery

בדף הזה מוסבר איך לשפר את האבטחה של משאבי BigQuery באמצעות יצירת היקפים עם VPC Service Controls. ההיקפים האלה מגבילים את הגישה אל BigQuery וממנו, והם לא תלויים באמצעי הבקרה של ניהול הזהויות והרשאות הגישה (IAM). הם שימושיים בתרחישים הבאים:

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

מידע נוסף זמין בסקירה הכללית על VPC Service Controls.

לפני שמתחילים

יצירת ההיקף של VPC Service Controls

בדוגמה הבאה מוסבר איך ליצור היקף של VPC Service Controls שמגביל את טווח כתובות ה-IP החיצוניות שיכולות לגשת לפרויקט ב-BigQuery.

  1. יוצרים רמת גישה שמאפשרת גישה רק לטווח מסוים של כתובות IP, למשל, כתובות בתוך רשת ארגונית. כדי ליצור אותו, משתמשים בפקודה gcloud access-context-manager levels create:

    echo """
    - ipSubnetworks:
      - 162.222.181.0/24
      - 2001:db8::/48
    """ > level.yaml
    
    gcloud access-context-manager levels create ACCESS_LEVEL_NAME \
        --title="TITLE" --basic-level-spec=level.yaml
    

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

    • ‫ACCESS_LEVEL_NAME: המזהה של רמת הגישה
    • ‫TITLE: שם קריא לאנשים של גבולות הגזרה לשירות

    למידע נוסף על יצירת רמות גישה, ראו דוגמאות להטמעות.

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

    יצירת היקף

    כדי ליצור היקף חדש להגנה על הפרויקט ב-BigQuery, משתמשים בפקודה gcloud access-context-manager perimeters create:

    echo """
    - ingressFrom:
        identityType: ANY_IDENTITY
        sources:
        - accessLevel: accessPolicies/POLICY_NAME/accessLevels/ACCESS_LEVEL_NAME
      ingressTo:
        operations:
        - methodSelectors:
          - method: '*'
          serviceName: bigquery.googleapis.com
        resources:
        - '*'
    
    """ > ingress.yaml
    
    gcloud access-context-manager perimeters create BIGQUERY_PERIMETER --title="TITLE" \
        --resources=BIGQUERY_PROJECT_NUMBER \
        --restricted-services=bigquery.googleapis.com \
        --ingress-policies=ingress.yaml
        --policy=POLICY_NAME
    

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

    • ‫POLICY_NAME: מזהה מדיניות הגישה
    • ‫ACCESS_LEVEL_NAME: המזהה של רמת הגישה
    • ‫PERIMETER: מזהה ההיקף
    • ‫TITLE: השם הקצר והקריא לאנשים של גבולות הגזרה לשירות
    • ‫BIGQUERY_PROJECT_NUMBER: המזהה של הפרויקט ב-BigQuery
    • ‫POLICY_NAME: מזהה מדיניות הגישה

    עדכון היקף

    כדי לעדכן היקף קיים, משתמשים בפקודה gcloud access-context-manager perimeters update:

    gcloud access-context-manager perimeters update BIGQUERY_PERIMETER --set-ingress-policies=ingress.yaml
    

    מחליפים את BIGQUERY_PERIMETER במזהה של היקף ההגנה על המשאב ב-BigQuery.

בדיקת המתחם

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

תרחישים לדוגמה

בתרחישים לדוגמה הבאים מוסבר איך להגן על נתונים שנכנסים ל-BigQuery ויוצאים ממנו באמצעות VPC Service Controls.

שליחת שאילתה על נתונים בטבלה חיצונית מקטגוריה של Cloud Storage בפרויקט אחר

בדוגמאות הבאות מוסבר איך לאפשר באופן סלקטיבי תקשורת בין הפרויקטים של BigQuery ו-Cloud Storage כשהם מופרדים על ידי גבולות גזרה.

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

    echo """
    - egressFrom:
        identityType: ANY_IDENTITY
      egressTo:
        operations:
        - methodSelectors:
          - method: '*'
          serviceName: storage.googleapis.com
        resources:
        - projects/BIGQUERY_PROJECT_NUMBER
    """ > egress.yaml
    
    gcloud access-context-manager perimeters update CLOUD_STORAGE_PERIMETER --policy=POLICY_NAME --set-egress-policies=egress.yaml
    

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

    • ‫BIGQUERY_PROJECT_NUMBER: המזהה של הפרויקט ב-BigQuery
    • ‫CLOUD_STORAGE_PERIMETER: המזהה של היקף ההגנה על המשאבים ב-Cloud Storage
    • ‫POLICY_NAME: מזהה מדיניות בקרת הגישה
  2. כדי לאפשר לפרויקט ב-Cloud Storage לגשת לפרויקט ב-BigQuery, מעדכנים את כללי תעבורת הנתונים היוצאת של ההיקף סביב הפרויקט ב-BigQuery:

    echo """
    - egressFrom:
        identityType: ANY_IDENTITY
      egressTo:
        operations:
        - methodSelectors:
          - method: '*'
          serviceName: storage.googleapis.com
        resources:
        - projects/CLOUD_STORAGE_PROJECT_NUMBER
    """ > egress1.yaml
    
    gcloud access-context-manager perimeters update BIGQUERY_PERIMETER --policy=POLICY_NAME --set-egress-policies=egress1.yaml
    

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

    • ‫CLOUD_STORAGE_PROJECT_NUMBER: המזהה של הפרויקט ב-Cloud Storage
    • ‫PERIMETER: מזהה ההיקף
    • ‫POLICY_NAME: מזהה מדיניות הגישה
  3. אופציונלי: אם ההיקף שמגן על הפרויקט ב-BigQuery כולל את storage.googleapis.com כשירות מוגבל, צריך לעדכן את הכלל לתעבורת נתונים נכנסת:

    echo """
    - ingressFrom:
        identityType: ANY_IDENTITY
        sources:
        - accessLevel: accessPolicies/POLICY_NAME/accessLevels/ACCESS_LEVEL_NAME
      ingressTo:
        operations:
        - methodSelectors:
          - method: '*'
          serviceName: bigquery.googleapis.com
        - methodSelectors:
          - method: '*'
          serviceName: storage.googleapis.com
        resources:
        - '*'
    
    """ > ingress.yaml
    
    gcloud access-context-manager perimeters create BIGQUERY_PERIMETER --title="TITLE" \
        --resources=BIGQUERY_PROJECT_NUMBER \
        --restricted-services=bigquery.googleapis.com \
        --ingress-policies=ingress.yaml
        --policy=POLICY_NAME
    

ייבוא וייצוא של נתונים מ-BigQuery Omni

כדי להוסיף עוד שכבת הגנה, אתם יכולים להשתמש בהיקפי השירות של VPC Service Controls כדי להגביל את הגישה בין BigQuery Omni לבין שירות ענן חיצוני. מידע נוסף ודוגמאות מופיעים בהגדרות של VPC Service Controls כשיוצרים טבלת BigLake של Azure Blob Storage.

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