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.

Private Verbindung zu Snowflake erstellen
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:
- Erstellen Sie eine oder mehrere Compute Engine-VM-Instanzen im VPC-Netzwerk des Kunden.
- Laden Sie eine TCP-Proxy-Software wie HAProxy oder Nginx herunter und konfigurieren Sie Folgendes:
- Geben Sie einen Port an. Beispiel:
443. - Leiten Sie den gesamten eingehenden TCP-Traffic an den privaten Hostnamen und Port der Snowflake-Instanz weiter.
- Geben Sie einen Port an. Beispiel:
- Konfigurieren Sie die VMs so, dass der private Snowflake-Hostname über den im VPC-Netzwerk konfigurierten DNS aufgelöst wird.
- So richten Sie einen internen Passthrough-Load-Balancer ein:
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.getcompute.serviceAttachments.updatecompute.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.
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:
Erstellen Sie einen dedizierten Amazon IAM-Nutzer und gewähren Sie ihm die Richtlinie
AmazonS3ReadOnlyAccess.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.
- Erstellen Sie ein Azure-Speicherkonto und darin einen Speichercontainer.
- 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.
- Cloud Storage-Bucket erstellen
- Erstellen und konfigurieren Sie ein Snowflake-Speicherintegrationsobjekt, damit Snowflake Daten als externe Phase in den Cloud Storage-Bucket schreiben kann.
Um Zugriff auf den Staging-Bucket zu gewähren, weisen Sie dem DTS-Dienst-Agent mit dem folgenden Befehl die Rolle
roles/storage.objectViewerzu: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_NAMEverwendet. - Der URI des Staging-Buckets, den Sie für die Übertragung verwenden möchten:
- Für ein in AWS gehostetes Snowflake-Konto ist neben den Anmeldedaten ein Amazon S3-Bucket-URI erforderlich.
- Für eine in Azure gehostete Snowflake-Instanz ist ein Azure Blob Storage-Konto und -Container erforderlich.
- Für einGoogle Cloud-gehostetes Snowflake-Konto ist ein Cloud Storage-Bucket-URI erforderlich.
Wählen Sie für Cloud Provider (Cloud-Anbieter) je nachdem, welcher Cloud-Anbieter Ihr Snowflake-Konto hostet,
AWS,AZUREoderGCPaus.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
- Geben Sie unter Storage-Kontoname und Der Container im Azure-Speicherkonto den Namen des Speicherkontos und des Containers des Azure Blob Storage ein, der als Staging-Bucket verwendet werden soll.
- Geben Sie unter SAS-Token das für den Container generierte SAS-Token ein.
Google Cloud
- Geben Sie als GCS-URI den URI des Cloud Storage ein, der als Staging-Bucket verwendet werden soll.
bq
- Legen Sie für den Parameter
use_private_networkden WertTRUEfest. - Geben Sie für den Parameter
service_attachmentden 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 Formatprojects/PROJECT_ID/regions/REGION/serviceAttachments/SERVICE_ATTACHMENT. - Geben Sie für den Parameter
private_network_serviceden Self-Link des NLB-Dienstes an. Dazu wird das Formatprojects/PROJECT_ID/locations/LOCATION/namespaces/NAMESPACE/services/SERVICE_NAMEverwendet. cloud_provider: Geben SieAWS,AZUREoderGCPein, 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 Ihrcloud_providerAWSist.aws_access_key_id: Geben Sie das Zugriffsschlüsselpaar ein. Nur erforderlich, wenn Ihrcloud_providerAWSist.aws_secret_access_key: Geben Sie das Zugriffsschlüsselpaar ein. Nur erforderlich, wenn Ihrcloud_providerAWSist.azure_storage_account: Geben Sie den Namen des Speicherkontos ein, das als Staging-Bucket verwendet werden soll. Nur erforderlich, wenn Ihrcloud_providerAZUREist.staging_azure_container: Geben Sie den Container in Azure Blob Storage ein, der als Staging-Bucket verwendet werden soll. Nur erforderlich, wenn Ihrcloud_providerAZUREist.azure_sas_token: Geben Sie das SAS-Token ein. Nur erforderlich, wenn Ihrcloud_providerAZUREist.staging_gcs_uri: Geben Sie den URI von Cloud Storage ein, der als Staging-Bucket verwendet werden soll. Nur erforderlich, wenn Ihrcloud_providerGCPist.