Private Verbindung für Snowflake-Übertragungen konfigurieren

In dieser Anleitung erfahren Sie, wie Sie eine private Verbindung konfigurieren, um private Datenübertragungen von Snowflake zu BigQuery zu erstellen. Mit privaten Datenübertragungen können Sie Daten von einer Quelle in eine andere übertragen, ohne dass das öffentliche Internet genutzt wird. So lassen sich Sicherheitsrisiken bei der Datenübertragung über das öffentliche Internet verringern.

In den folgenden Abschnitten werden die erforderlichen Schritte zum Konfigurieren privater Verbindungen beschrieben, bevor Sie eine Snowflake-Übertragung erstellen können.

Private Übertragungen werden für Snowflake-Instanzen unterstützt, die auf Amazon Web Services (AWS), Microsoft Azure und Google Cloudgehostet werden.

Übertragung privater Daten von AWS- oder Azure- oder Google Cloud-gehosteten Snowflake-Konten zu BigQuery

Erstellen Sie einen Private Link, der Ihr Snowflake-Konto mit Ihrem Cloud-Anbieter verbindet. Weitere Informationen finden Sie unter einer der folgenden Optionen:

AWS

AWS PrivateLink konfigurieren, um Ihr Snowflake-Konto mit Ihrem AWS-Konto zu verbinden. Ihr AWS-Konto muss den für eine Snowflake-Übertragung erforderlichen Amazon S3-Staging-Bucket enthalten.

Azure

Konfigurieren Sie Azure Private Link, um Ihr virtuelles Azure-Netzwerk (VNet) mit dem Snowflake-VNet in Azure zu verbinden. Ihr Azure-Konto muss den für eine Snowflake-Übertragung erforderlichen Blob-Staging-Bucket enthalten.

Google Cloud

Konfigurieren Sie Google Cloud Private Service Connect, um das Subnetz Ihres VPC-Netzwerks (Virtual Private Cloud) mit Ihrem auf Google Cloudgehosteten Snowflake-Konto zu verbinden. Für IhreGoogle Cloud ist ein Cloud Storage-Staging-Bucket erforderlich, der für eine Snowflake-Übertragung verwendet wird.

Cross-Cloud Interconnect oder HA VPN einrichten

Richten Sie entweder Cross-Cloud Interconnect oder HA VPN von AWS oder Azure aus ein. Dieser Schritt ist fürGoogle Cloud-gehostete Snowflake-Konten nicht erforderlich.

AWS

Mit einem VPN mit Hochverfügbarkeit können Sie Daten über einen verschlüsselten VPN-Tunnel übertragen. Wenn Sie ein HA VPN für Ihre private Snowflake-Übertragung verwenden möchten, lesen Sie den Abschnitt HA VPN-Verbindungen zwischen Google Cloud und AWS erstellen.

Mit einer Cross-Cloud Interconnect-Verbindung wird eine dedizierte private Verbindung zwischen Cloud-Anbietern hergestellt, die sich für große Datenübertragungen mit Anforderungen an niedrige Latenz eignet. Wenn Sie Cross-Cloud Interconnect für die private Snowflake-Übertragung verwenden möchten, lesen Sie den Abschnitt Verbindung zu AWS herstellen.

Azure

Mit einem VPN mit Hochverfügbarkeit können Sie Daten über einen verschlüsselten VPN-Tunnel übertragen. Informationen zur Verwendung eines HA VPN für Ihren privaten Snowflake-Transfer finden Sie unter HA VPN-Verbindungen zwischen Google Cloud und Azure erstellen.

Mit einer Cross-Cloud Interconnect-Verbindung wird eine dedizierte private Verbindung zwischen Cloud-Anbietern hergestellt, die sich für große Datenübertragungen mit Anforderungen an niedrige Latenz eignet. Wenn Sie Cross-Cloud Interconnect für die private Snowflake-Übertragung verwenden möchten, lesen Sie den Abschnitt Verbindung zu Azure herstellen.

Proxy-VM erstellen

Für eine private Verbindung ist eine Proxy-VM erforderlich, um die Verbindung zwischen Ihren Datenquellen herzustellen, ohne dass Ihre Daten das öffentliche Internet erreichen. Dieser Schritt ist für Snowflake-Instanzen erforderlich, die auf AWS, Azure oder Google Cloudgehostet werden.

So erstellen und konfigurieren Sie eine Proxy-VM für eine private Snowflake-Übertragung:

  1. Erstellen Sie eine oder mehrere Compute Engine-VM-Instanzen im VPC-Netzwerk des Kunden.
  2. Laden Sie eine TCP-Proxy-Software wie HAProxy oder Nginx herunter und konfigurieren Sie Folgendes:
    1. Geben Sie einen Port an. Beispiel: 443.
    2. Leiten Sie den gesamten eingehenden TCP-Traffic an den privaten Hostnamen und Port der Snowflake-Instanz weiter.
  3. Konfigurieren Sie die VMs so, dass der private Snowflake-Hostname über den im VPC-Netzwerk konfigurierten DNS aufgelöst wird.
  4. So richten Sie einen internen Passthrough-Load-Balancer ein:
    1. Proxy-VMs in einer verwalteten Instanzgruppe (MIG) gruppieren
    2. Internen Passthrough-Network Load Balancer mit VM-Instanzgruppen-Back-Ends einrichten

Dienstanhang erstellen

Private Service Connect zum Erstellen eines Netzwerk-Anhangs und zum Veröffentlichen des Dienstes verwenden Dieser Schritt ist für Snowflake-Instanzen erforderlich, die auf AWS, Azure oder Google Cloudgehostet werden.

Ihr Dienstanhang muss sich in derselben Region wie Ihr BigQuery-Dataset befinden.

Wenn für Ihren Dienst die explizite Genehmigung verwendet wird (connection-preference ist auf ACCEPT_MANUAL festgelegt), muss das in Ihrem privaten Snowflake-Datenübertragungsvorgang verwendete Dienstkonto die folgenden IAM-Berechtigungen haben:

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

Nachdem Sie den Dienstanhang erstellt haben, notieren Sie sich den URI des Dienstanhangs. Sie benötigen diesen URI, wenn Sie Ihre Snowflake-Übertragungskonfiguration erstellen.

Endpunkt erstellen

Erstellen Sie einen Endpunkt in Ihrem AWS- oder Azure-Konto. Dieser Schritt ist fürGoogle Cloud-gehostete Snowflake-Konten nicht erforderlich.

AWS

Erstellen Sie in AWS einen VPC-Endpunkt, der eine Verbindung zu Amazon S3 herstellt. Weitere Informationen finden Sie unter Auf einen AWS-Dienst über einen Interface-VPC-Endpunkt zugreifen.

Azure

Konfigurieren Sie einen privaten Endpunkt für das Speicherkonto in Azure. Weitere Informationen finden Sie unter Private Endpunkte für Azure Storage verwenden.

Für den Storage Transfer Service ist der *.blob.core.microsoft.net-Endpunkt erforderlich. Der Endpunkt *.dfs.core.microsoft.net wird nicht unterstützt.

Notieren Sie sich nach dem Erstellen die IP-Adresse des Endpunkts. Sie müssen die IP-Adresse beim Erstellen des Load-Balancers im nächsten Abschnitt angeben.

Netzwerk-Load-Balancer erstellen

Regionalen internen Proxy-Network Load Balancer (NLB) mit Hybridkonnektivität einrichten. Sie können den Load Balancer erstellen, um Traffic an die Amazon S3-VPC-Endpunkte oder die privaten Azure Storage-Endpunkte weiterzuleiten, die Sie im vorherigen Abschnitt erstellt haben. Weitere Informationen finden Sie unter Regionalen internen Proxy-Network Load Balancer mit Hybridkonnektivität einrichten.

NLB registrieren

Nachdem Sie den NLB erstellt haben, registrieren Sie ihn im Service Directory im Storage Transfer Service. Weitere Informationen finden Sie unter NLB bei Service Directory registrieren.

Notieren Sie sich den Link zum Dienstverzeichnis. Sie benötigen den Self-Link zum Dienst, wenn Sie Ihre Snowflake-Übertragungskonfiguration erstellen.

Staging-Bucket vorbereiten

Um einen Snowflake-Datentransfer abzuschließen, müssen Sie einen Staging-Bucket erstellen und ihn so konfigurieren, dass Snowflake Schreibzugriff hat.

Wählen Sie eine der folgenden Optionen aus:

AWS

Erstellen Sie für AWS-gehostete Snowflake-Konten einen Amazon S3-Bucket, um die Snowflake-Daten zu stagen, bevor sie in BigQuery geladen werden.

  1. Amazon S3-Bucket erstellen

  2. Erstellen und konfigurieren Sie ein Snowflake-Speicherintegrationsobjekt, damit Snowflake Daten als externe Phase in den Amazon S3-Bucket schreiben kann.

Damit Lesezugriff auf Ihren Amazon S3-Bucket möglich ist, müssen Sie außerdem Folgendes tun:

  1. Erstellen Sie einen dedizierten Amazon IAM-Nutzer und gewähren Sie ihm die Richtlinie AmazonS3ReadOnlyAccess.

  2. Erstellen Sie ein Amazon-Zugriffsschlüsselpaar für den IAM-Nutzer.

Azure

Erstellen Sie für in Azure gehostete Snowflake-Konten einen Azure Blob Storage-Container, um die Snowflake-Daten bereitzustellen, bevor sie in BigQuery geladen werden.

  1. Erstellen Sie ein Azure-Speicherkonto und darin einen Speichercontainer.
  2. Speicherintegrationsobjekt für Snowflake erstellen und konfigurieren, damit Snowflake Daten als externe Phase in den Azure Storage-Container schreiben kann. Sie können die Schritte zum Erstellen einer externen Staging-Umgebung überspringen, da dies nicht erforderlich ist.

Wenn Sie Lesezugriff auf Ihren Azure-Container gewähren möchten, generieren Sie ein SAS-Token dafür.

Google Cloud

Erstellen Sie für Google Cloud-gehostete Snowflake-Konten einen Cloud Storage-Bucket, um die Snowflake-Daten bereitzustellen, bevor sie in BigQuery geladen werden.

  1. Cloud Storage-Bucket erstellen
  2. Erstellen und konfigurieren Sie ein Snowflake-Speicherintegrationsobjekt, damit Snowflake Daten als externe Phase in den Cloud Storage-Bucket schreiben kann.
  3. Um Zugriff auf den Staging-Bucket zu gewähren, weisen Sie dem DTS-Dienst-Agent mit dem folgenden Befehl die Rolle roles/storage.objectViewer zu:

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

Private Snowflake-Übertragungskonfiguration erstellen

Snowflake-Übertragung erstellen Gehen Sie beim Einrichten der Übertragungskonfiguration so vor:

Console

  • Wählen Sie für Privates Netzwerk verwenden die Option Wahr aus.
  • Geben Sie für PSC-Dienstanhang den URI des Dienstanhangs ein. Informationen zum Suchen des URI des Dienstanhangs finden Sie unter Details für einen veröffentlichten Dienst ansehen. Der URI des Dienstanhangs hat das Format projects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT.
  • Geben Sie für Private Network Service den Self-Link des NLB-Dienstes ein. Dazu wird das Format projects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME verwendet.
  • Der URI des Staging-Buckets, den Sie für die Übertragung verwenden möchten:
  • Wählen Sie für Cloud Provider (Cloud-Anbieter) je nachdem, welcher Cloud-Anbieter Ihr Snowflake-Konto hostet, AWS, AZURE oder GCP aus.

    AWS

    • Geben Sie im Feld Amazon S3 URI (Amazon S3-URI) den URI des Amazon S3-Buckets ein, der als Staging-Bucket verwendet werden soll.
    • Geben Sie bei Access key ID (Zugriffsschlüssel-ID) und Secret access key (Geheimer Zugriffsschlüssel) das Zugriffsschlüsselpaar ein.

    Azure

    Google Cloud

bq

  • Legen Sie für den Parameter use_private_network den Wert TRUE fest.
  • Geben Sie für den Parameter service_attachment den URI des Dienstanhangs an. Informationen zum Suchen des URI des Dienstanhangs finden Sie unter Details für einen veröffentlichten Dienst ansehen. Der URI des Dienstanhangs hat das Format projects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT.
  • Geben Sie für den Parameter private_network_service den Self-Link des NLB-Dienstes an. Dazu wird das Format projects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAME verwendet.
  • cloud_provider: Geben Sie AWS, AZURE oder GCP ein, je nachdem, welcher Cloud-Anbieter Ihr Snowflake-Konto hostet.
  • staging_s3_uri: Geben Sie den URI des S3-Buckets ein, der als Staging-Bucket verwendet werden soll. Nur erforderlich, wenn Ihr cloud_provider AWS ist.
  • aws_access_key_id: Geben Sie das Zugriffsschlüsselpaar ein. Nur erforderlich, wenn Ihr cloud_provider AWS ist.
  • aws_secret_access_key: Geben Sie das Zugriffsschlüsselpaar ein. Nur erforderlich, wenn Ihr cloud_provider AWS ist.
  • azure_storage_account: Geben Sie den Namen des Speicherkontos ein, das als Staging-Bucket verwendet werden soll. Nur erforderlich, wenn Ihr cloud_provider AZURE ist.
  • staging_azure_container: Geben Sie den Container in Azure Blob Storage ein, der als Staging-Bucket verwendet werden soll. Nur erforderlich, wenn Ihr cloud_provider AZURE ist.
  • azure_sas_token: Geben Sie das SAS-Token ein. Nur erforderlich, wenn Ihr cloud_provider AZURE ist.
  • staging_gcs_uri : Geben Sie den URI von Cloud Storage ein, der als Staging-Bucket verwendet werden soll. Nur erforderlich, wenn Ihr cloud_provider GCP ist.