הגדרת קישוריות פרטית להעברות ל-Snowflake

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

בקטעים הבאים מפורטים השלבים הנדרשים להגדרת קישוריות פרטית לפני שיוצרים העברה ב-Snowflake.

העברות פרטיות נתמכות במופעי Snowflake שמתארחים ב-Amazon Web Services ‏ (AWS), ב-Microsoft Azure וב- Cloud de Confiance by S3NS.

העברות נתונים פרטיות מחשבונות AWS או Azure או מחשבונות Snowflake שמתארחים ב- Cloud de Confianceאל BigQuery

יוצרים קישור פרטי שמקשר את חשבון Snowflake לספק שירותי הענן. למידע נוסף, בוחרים באחת מהאפשרויות הבאות:

AWS

מגדירים את AWS PrivateLink כדי לקשר את חשבון Snowflake לחשבון AWS. חשבון AWS שלכם צריך להכיל את קטגוריית הביניים של Amazon S3 שנדרשת להעברה ב-Snowflake.

Azure

מגדירים את Azure Private Link כדי לחבר את Azure Virtual Network ‏ (VNet) אל Snowflake VNet ב-Azure. חשבון Azure שלכם צריך לכלול את מאגר Blob staging שנדרש להעברה ב-Snowflake.

Cloud de Confiance

הגדרה של Cloud de Confiance by S3NS Private Service Connect כדי לחבר את רשת הענן הווירטואלי הפרטי (VPC) שלכם Cloud de Confiance by S3NS. ב-Cloud de Confiance by S3NS שלכם צריכה להיות קטגוריית אחסון זמני ב-Cloud Storage שנדרשת להעברה ל-Snowflake.

הגדרה של Cross-Cloud Interconnect או HA VPN

להגדיר Cross-Cloud Interconnect או HA VPN מ-AWS או מ-Azure. לא צריך לבצע את השלב הזה בחשבונות Snowflake שמארחים ב-Cloud de Confiance.

AWS

רשת VPN בזמינות גבוהה מאפשרת להעביר נתונים דרך מנהרת VPN מוצפנת. כדי להשתמש ב-HA VPN להעברה פרטית של Snowflake, אפשר לעיין במאמר בנושא יצירת חיבורי HA VPN בין Cloud de Confiance לבין AWS.

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

Azure

רשת VPN בזמינות גבוהה מאפשרת להעביר נתונים דרך מנהרת VPN מוצפנת. כדי להשתמש ב-HA VPN להעברה פרטית של Snowflake, אפשר לעיין במאמר בנושא יצירת חיבורי HA VPN בין Cloud de Confiance לבין Azure.

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

יצירת מכונה וירטואלית של שרת Proxy

כדי להשלים חיבור פרטי, נדרשת מכונה וירטואלית של שרת proxy כדי להשלים את החיבור בין מקורות הנתונים בלי שהנתונים יגיעו לאינטרנט הציבורי. השלב הזה נדרש למופעי Snowflake שמתארחים ב-AWS,‏ Azure או Cloud de Confiance.

כדי ליצור ולהגדיר מכונה וירטואלית (VM) של שרת proxy להעברה פרטית של Snowflake:

  1. יוצרים מכונה וירטואלית אחת או יותר של Compute Engine ברשת ה-VPC של הצרכן.
  2. מורידים תוכנת TCP Proxy, כמו HAProxy או Nginx, ומגדירים את הפרטים הבאים:
    1. מציינים יציאה. לדוגמה, 443.
    2. העברה של כל תנועת ה-TCP הנכנסת אל שם המארח הפרטי והיציאה במופע של Snowflake.
  3. מגדירים את המכונות הווירטואליות כך שיבצעו התאמה של שם המארח הפרטי של Snowflake באמצעות ה-DNS שהוגדר ברשת ה-VPC של הצרכן.
  4. כדי להגדיר מאזן עומסים פנימי להעברת סיגנל ללא שינוי:
    1. קיבוץ מכונות וירטואליות של שרת proxy לקבוצת מופעי מכונה מנוהלים (MIG).
    2. איך מגדירים מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי עם קבוצות של מכונות וירטואליות בתור בק-אנד

יצירת קובץ מצורף של שירות

שימוש ב-Private Service Connect כדי ליצור קובץ מצורף לרשת ולפרסם את השירות. השלב הזה נדרש למופעי Snowflake שמתארחים ב-AWS,‏ Azure או Cloud de Confiance.

ה-Service Attachment צריך להיות באותו אזור כמו מערך הנתונים ב-BigQuery.

אם השירות שלכם משתמש באישור מפורש (connection-preference מוגדר כ-ACCEPT_MANUAL), לחשבון השירות שמשמש להעברת נתונים פרטיים ב-Snowflake צריכות להיות הרשאות ה-IAM הבאות:

  • compute.serviceAttachments.get
  • compute.serviceAttachments.update
  • compute.regionOperations.get

אחרי שיוצרים את קובץ השירות, רושמים את ה-URI של קובץ השירות. תצטרכו את ה-URI הזה כשתיצרו את הגדרות ההעברה של Snowflake.

ליצור נקודות קצה

יוצרים נקודת קצה בחשבון AWS או Azure. לא צריך לבצע את השלב הזה בחשבונות Snowflake שמארחים ב-Cloud de Confiance.

AWS

ב-AWS, יוצרים נקודת קצה (endpoint) של VPC שמתחברת ל-Amazon S3. מידע נוסף זמין במאמר גישה לשירות AWS באמצעות נקודת קצה של ממשק VPC.

Azure

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

‫Storage Transfer Service דורש את נקודת הקצה *.blob.core.microsoft.net. אין תמיכה בנקודת הקצה *.dfs.core.microsoft.net.

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

יצירת מאזן עומסי רשת

הגדרת מאזן עומסי רשת (NLB) אזורי פנימי בשרת proxy עם קישוריות היברידית. אתם יכולים ליצור את מאזן העומסים כדי לנתב תנועה לנקודות הקצה של Amazon S3 VPC או לנקודות הקצה הפרטיות של Azure Storage שיצרתם בקטע הקודם. מידע נוסף זמין במאמר בנושא הגדרה של מאזן עומסי רשת אזורי פנימי לשרת proxy עם קישוריות היברידית.

רישום של NLB

אחרי שיוצרים את מאזן העומסים (NLB) של הרשת, רושמים אותו ב-Service Directory ב-Storage Transfer Service. מידע נוסף זמין במאמר בנושא רישום של NLB ב-Service Directory.

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

הכנת קטגוריית אחסון זמנית

כדי להשלים העברת נתונים מ-Snowflake, צריך ליצור bucket זמני ואז להגדיר אותו כך שתהיה ל-Snowflake גישת כתיבה אליו.

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

AWS

בחשבונות Snowflake שמארחים ב-AWS, צריך ליצור מאגר Amazon S3 כדי להכין את נתוני Snowflake לפני הטעינה שלהם ל-BigQuery.

  1. יוצרים קטגוריה ב-Amazon S3.

  2. יוצרים ומגדירים אובייקט של שילוב אחסון ב-Snowflake כדי לאפשר ל-Snowflake לכתוב נתונים בקטגוריה של Amazon S3 כשלב חיצוני.

כדי לאפשר גישת קריאה לקטגוריית Amazon S3, צריך גם לבצע את הפעולות הבאות:

  1. יוצרים משתמש ייעודי ב-Amazon IAM ומעניקים לו את מדיניות AmazonS3ReadOnlyAccess.

  2. יוצרים זוג מפתחות גישה לאמזון עבור משתמש IAM.

Azure

בחשבונות Snowflake שמארחים ב-Azure, צריך ליצור מאגר Azure Blob Storage כדי להכין את נתוני Snowflake לפני שהם נטענים ל-BigQuery.

  1. יוצרים חשבון אחסון ב-Azure ומאגר אחסון בתוכו.
  2. יוצרים ומגדירים אובייקט של שילוב אחסון ב-Snowflake כדי לאפשר ל-Snowflake לכתוב נתונים במאגר של Azure Storage כשלב חיצוני. אפשר לדלג על השלבים ליצירת שלב חיצוני, כי זה לא נדרש.

כדי לאפשר גישת קריאה למאגר Azure, צריך ליצור עבורו טוקן SAS.

Cloud de Confiance

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

  1. יצירת קטגוריה של Cloud Storage
  2. יוצרים ומגדירים אובייקט של שילוב אחסון ב-Snowflake כדי לאפשר ל-Snowflake לכתוב נתונים בקטגוריית Cloud Storage כשלב חיצוני.
  3. כדי לאפשר גישה לקטגוריית הביניים, צריך להקצות לסוכן השירות של DTS את התפקיד roles/storage.objectViewer באמצעות הפקודה הבאה:

    gcloud storage buckets add-iam-policy-binding gs://STAGING_BUCKET_NAME \
      --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com \
      --role=roles/storage.objectViewer

יצירת הגדרות העברה פרטיות ב-Snowflake

יוצרים את ההעברה ב-Snowflake. כשמגדירים את ההגדרות של ההעברה, מבצעים את הפעולות הבאות:

המסוף

  • בשדה Use Private Network (שימוש ברשת פרטית), בוחרים באפשרות True (נכון).
  • בשדה PSC Service Attachment (צירוף שירות PSC), מזינים את מזהה המשאבים האחיד (URI) של צירוף השירות. מידע על איתור ה-URI של קובץ השירות מצורף זמין במאמר הצגת פרטים של שירות שפורסם. מזהה ה-URI של קובץ השירות הוא בפורמט projects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT.
  • בשדה Private Network Service (שירות רשת פרטי), מזינים את הקישור העצמי של שירות NLB. הפורמט הוא projects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME.
  • ה-URI של קטגוריית הביניים שרוצים להשתמש בה להעברה:
  • בקטע Cloud Provider (ספק שירותי ענן), בוחרים באפשרות AWS,‏ AZURE או GCP בהתאם לספק שירותי הענן שמארח את חשבון Snowflake.

    AWS

    Azure

    Cloud de Confiance

    • בשדה GCS URI, מזינים את ה-URI של Cloud Storage שבו רוצים להשתמש כקטגוריית ביניים.

BQ

  • לפרמטר use_private_network, מגדירים את הערך TRUE.
  • בפרמטר service_attachment, מציינים את מזהה המשאבים האחיד (URI) של קובץ השירות. מידע על איתור ה-URI של קובץ השירות מצורף זמין במאמר הצגת פרטים של שירות שפורסם. מזהה ה-URI של קובץ השירות הוא בפורמט projects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT.
  • בפרמטר private_network_service, מציינים את הקישור העצמי של שירות NLB. הפורמט הוא projects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME.
  • cloud_provider: מזינים AWS או AZURE או GCP בהתאם לספק שירותי הענן שמארח את חשבון Snowflake.
  • staging_s3_uri: מזינים את ה-URI של קטגוריית S3 שבה רוצים להשתמש כקטגוריית ביניים. נדרש רק אם cloud_provider הוא AWS.
  • aws_access_key_id: מזינים את זוג מפתחות הגישה. נדרש רק אם cloud_provider הוא AWS.
  • aws_secret_access_key: מזינים את זוג מפתחות הגישה. נדרש רק אם cloud_provider הוא AWS.
  • azure_storage_account: מזינים את השם של חשבון האחסון שרוצים להשתמש בו כקטגוריית אחסון זמנית. נדרש רק אם cloud_provider הוא AZURE.
  • staging_azure_container: מזינים את המאגר ב-Azure Blob Storage שבו רוצים להשתמש כקטגוריית אחסון זמני. נדרש רק אם cloud_provider הוא AZURE.
  • azure_sas_token: מזינים את טוקן ה-SAS. נדרש רק אם cloud_provider הוא AZURE.
  • staging_gcs_uri : מזינים את ה-URI של Cloud Storage שבו רוצים להשתמש כקטגוריית אחסון זמני. נדרש רק אם cloud_provider הוא GCP.