Azure Private Link und Snowflake¶
Unter diesem Thema wird beschrieben, wie Sie Azure Private Link so konfigurieren, dass Ihr virtuelles Azure-Netzwerk (VNet) mit dem Snowflake-VNet in Azure verbunden wird.
Beachten Sie, dass Azure Private Link kein von Snowflake bereitgestellter Service ist. Es handelt sich um einen Microsoft-Service, den Snowflake für die Verwendung mit Ihrem Snowflake-Konto aktiviert.
Unter diesem Thema:
Übersicht¶
Azure Private Link bietet private Konnektivität zu Snowflake, indem sichergestellt wird, dass der Zugriff auf Snowflake über eine private IP-Adresse erfolgt. Der Datenverkehr vom virtuellen Kundennetzwerk (VNet) zum Snowflake-VNet erfolgt ausschließlich über den Microsoft-Backbone und unter Umgehung des öffentlichen Internets. Dies vereinfacht die Netzwerkkonfiguration erheblich, indem Zugriffsregeln geheim bleiben und gleichzeitig eine sichere und private Kommunikation sichergestellt wird.
Die folgende Grafik fasst die Azure Private Link-Architektur in Bezug auf das Kunden-VNet und das Snowflake-VNet zusammen.
Von einer virtuellen Maschine (1) oder über Peering (2) können Sie eine Verbindung zum Azure Private Link-Endpunkt (3) in Ihrem virtuellen Netzwerk herstellen. Dieser Endpunkt stellt dann eine Verbindung zum Private Link Service (4) her und leitet den Datenverkehr weiter zu Snowflake.
Folgende allgemeine Schritte ermöglichen die Integration von Snowflake in Azure Private Link:
Erstellen Sie einen privaten Endpunkt.
Generieren Sie ein Zugriffstoken, und rufen Sie diesen über Ihr Azure-Abonnement ab.
Wenn Sie Azure Private Link verwenden möchten, um eine Verbindung zu einem internen Snowflake-Stagingbereich auf Azure herzustellen, müssen Sie beachten, dass Sie erst Ihr Abonnement beim Azure Storage-Ressourcenanbieter registrieren müssen, bevor Sie von einem privaten Endpunkt aus eine Verbindung zu dem internen Stagingbereich herstellen können.
Aktivieren Sie für Ihr Snowflake-Konto auf Azure die Verwendung von Azure Private Link.
Aktualisieren Sie Ihre Einstellungen für die ausgehende Firewall, um die Snowflake-Konto-URL und die OCSP-URL zuzulassen.
Aktualisieren Sie Ihren DNS-Server, um Ihre Konto-URL und die OCSP-URL in die IP-Adresse von Private Link aufzulösen. Sie können den DNS-Eintrag zu Ihrem lokalen DNS-Server oder zum privaten DNS Ihres VNet hinzufügen und die DNS-Weiterleitung verwenden, um an den Eintrag gerichtete Abfragen aus anderen Standorten, an denen Ihre Benutzer auf Snowflake zugreifen, weiterzuleiten.
Wenn der CONNECTION STATE-Wert für den privaten Endpunkt Approved ist, testen Sie die Verbindung zu Snowflake mit SnowCD (Connectivity Diagnostic Tool) und SYSTEM$ALLOWLIST_PRIVATELINK.
Stellen Sie eine Verbindung zu Snowflake mit der Konto-URL für private Konnektivität her.
Anforderungen und Einschränkungen¶
Bevor Sie versuchen, Azure Private Link so zu konfigurieren, dass Ihr Azure-VNet mit dem Snowflake-VNet auf Azure verbunden wird, müssen Sie Folgendes beachten:
Aktivieren Sie in Azure auf Subnetzebene optional eine Netzwerkrichtlinie für den privaten Endpunkt.
Überprüfen Sie, ob die TCP-Ports 443 und 80 den Datenverkehr zu
0.0.0.0
in der Netzwerksicherheitsgruppe der Netzwerkkarte des privaten Endpunkts zulassen.Wenn Sie Hilfe bei der Portkonfiguration benötigen, wenden Sie sich an Ihren internen Azure-Administrator.
Verwenden Sie ARM VNets.
Verwenden Sie nur IPv4-TCP-Datenverkehr.
Derzeit unterstützt der unter diesem Thema beschriebene Self-Service-Aktivierungsprozess nicht die Autorisierung eines verwalteten privaten Endpunkts von Azure Data Factory, Synapse oder anderen verwalteten Diensten.
Weitere Informationen zum Konfigurieren eines verwalteten privaten Endpunkts für diesen Anwendungsfall finden Sie in diesem Artikel (in der Snowflake-Community).
Weitere Informationen zu den Anforderungen und Einschränkungen von Microsoft Azure Private Link finden Sie in der Microsoft-Dokumentation zu Einschränkungen für private Endpunkte und Einschränkungen des Private Link-Dienstes.
Konfigurieren des Zugriffs auf Snowflake mit Azure Private Link¶
Achtung
In diesem Abschnitt werden nur die Snowflake-spezifischen Details zum Konfigurieren Ihrer VNet-Umgebung behandelt. Beachten Sie außerdem, dass Snowflake nicht für die Konfiguration der notwendigen Firewall-Anpassungen und die DNS-Einträge verantwortlich ist. Falls Sie Probleme bezüglich dieser Konfigurationsanforderungen haben, wenden Sie sich direkt an den Microsoft-Support.
In diesem Abschnitt wird beschrieben, wie Sie Azure VNet so konfigurieren, dass Sie mit Azure Private Link eine Verbindung zu Snowflake-VNet auf Azure herstellen können. Nach dem Herstellen der Verbindung zu Snowflake mittels Azure Private Link können Sie den Genehmigungsstatus der Verbindung im Azure-Portal ermitteln.
Hilfe zur Installation finden Sie in der Microsoft-Dokumentation zur Azure-CLI oder zu Azure PowerShell.
Führen Sie das Konfigurationsverfahren aus, um Ihr Microsoft Azure-VNet zu konfigurieren und die Azure Private Link-Verbindung zu Snowflake herzustellen.
Prozedur¶
Bei diesem Verfahren werden die erforderlichen Azure Private Link-Ressourcen manuell erstellt und initialisiert, damit Azure Private Link eine Verbindung zu Snowflake auf Azure herstellen kann. Beachten Sie, dass dieses Verfahren davon ausgeht, dass Ihr Anwendungsfall keine Verwendung von SSO mit Azure Private Link (unter diesem Thema) beinhaltet.
Führen Sie als repräsentatives Beispiel für die Verwendung von Azure CLI den Code
az account list --output table
aus. Notieren Sie sich die Ausgabewerte in den SpaltenName
,SubscriptionID
undCloudName
.Name CloudName SubscriptionId State IsDefault ------- ---------- ------------------------------------ ------- ---------- MyCloud AzureCloud 13c... Enabled True
Navigieren Sie zum Azure-Portal. Suchen Sie nach Private Link, und klicken Sie auf Private Link.
Klicken Sie auf Private endpoints und dann auf Add.
Füllen Sie im Abschnitt Basics die Felder Subscription, Resource group, Name und Region mit den Werten Ihrer Umgebung aus, und klicken Sie dann auf Next: Resource.
Füllen Sie im Abschnitt Resource die Felder Connection method und Resource ID or alias Field aus.
Wählen Sie für Connection Method die Option Connect to an Azure resource by resource ID or alias aus.
Führen Sie in Snowflake SYSTEM$GET_PRIVATELINK_CONFIG aus, und geben Sie den Wert für
privatelink-pls-id
in das Feld Resource ID or alias ein. Beachten Sie, dass der Screenshot in diesem Schritt den Aliaswert für die Regioneast-us-2
als repräsentatives Beispiel verwendet und dass Azure einen gültigen Aliaswert mit einem grünen Häkchen bestätigt.Wenn Sie eine Fehlermeldung bezüglich des Alias-Wertes erhalten, wenden Sie sich an den Snowflake-Support, um den Wert der Ressourcen-ID zu erhalten, und wiederholen Sie dann diesen Schritt mit dem Ressourcen-ID-Wert.
Kehren Sie zum Abschnitt Private endpoints zurück, und warten Sie einige Minuten. Liegt die Genehmigung vor, wird für privaten Endpunkt der CONNECTION STATE-Wert Pending angezeigt. Dieser Wert wird nach Abschluss der Autorisierung im nächsten Schritt auf Approved aktualisiert.
Aktivieren Sie für Ihr Snowflake-Konto auf Azure die Verwendung von Azure Private Link, indem Sie die folgenden Schritte ausführen.
Ermitteln Sie in Ihrer Befehlszeilenumgebung die Ressourcen-ID des privaten Endpunkts mit dem folgenden Azure-CLI-Netzwerk-Befehls:
az network private-endpoint show
Der private Endpunkt wurde in den vorangegangenen Schritten unter Verwendung der Vorlagendateien erstellt. Der Ressourcen-ID-Wert nimmt die folgende Form mit einem verkürzten Wert an:
/subscriptions/26d.../resourcegroups/sf-1/providers/microsoft.network/privateendpoints/test-self-service
Führen Sie in Ihrer Befehlszeilenumgebung den folgenden Azure-CLI-Konto-Befehl aus, und speichern Sie die Ausgabe. Die Ausgabe wird im nächsten Schritt als Wert für das Argument
federated_token
verwendet.az account get-access-token --subscription <SubscriptionID>
Extrahieren Sie den Wert des Zugriffstokens aus der Befehlsausgabe. Dieser Wert wird im nächsten Schritt als Wert für
federated_token
verwendet. Im folgenden Beispiel sind die Werte abgeschnitten, und der Wert des Zugriffstokens isteyJ...
:{ "accessToken": "eyJ...", "expiresOn": "2021-05-21 21:38:31.401332", "subscription": "0cc...", "tenant": "d47...", "tokenType": "Bearer" }
Wichtig
Der Benutzer, der das Azure-Zugriffstoken generiert, muss über Leseberechtigungen das Abonnement verfügen. Die Berechtigung mit den geringsten Rechten ist Microsoft.Subscription/subscriptions/acceptOwnershipStatus/read. Alternativ dazu erteilt die Standardrolle
Reader
gröbere Berechtigungen.Der Wert
accessToken
ist eine vertrauliche Information und sollte wie ein Kennwort behandelt werden: Geben Sie diesen Wert nicht weiter.Wenn es erforderlich ist, den Snowflake-Support zu kontaktieren, löschen Sie erst das Zugriffstoken aus allen Befehlen und URLs, bevor Sie ein Support-Ticket erstellen.
Rufen Sie in Snowflake die Funktion SYSTEM$AUTHORIZE_PRIVATELINK auf, und verwenden Sie den Wert
private-endpoint-resource-id
und den Wertfederated_token
als Argumente, die im folgenden Beispiel abgeschnitten sind:USE ROLE ACCOUNTADMIN; SELECT SYSTEM$AUTHORIZE_PRIVATELINK ( '/subscriptions/26d.../resourcegroups/sf-1/providers/microsoft.network/privateendpoints/test-self-service', 'eyJ...' );
Um Ihre autorisierte Konfiguration zu überprüfen, rufen Sie in Ihrem Snowflake-Konto auf Azure die Funktion SYSTEM$GET_PRIVATELINK auf. Snowflake gibt bei einer erfolgreichen Autorisierung den Wert
Account is authorized for PrivateLink.
zurück.Wenn es notwendig ist, Azure Private Link in Ihrem Snowflake-Konto zu deaktivieren, rufen Sie die Funktion SYSTEM$REVOKE_PRIVATELINK auf, wobei Sie die Argumentwerte für
private-endpoint-resource-id
undfederated_token
verwenden.DNS-Setup. Alle Anforderungen an Snowflake müssen über den privaten Endpunkt weitergeleitet werden. Daher muss der DNS angepasst werden, damit die URLs für Snowflake-Konto und OCSP mit der privaten IP-Adresse Ihres privaten Endpunkts aufgelöst werden.
Navigieren Sie zur Azure-Portalsuchleiste, und geben Sie den Namen des Endpunkts (d. h. den Wert für NAME aus Schritt 5) ein, um die IP-Adresse des Endpunkts abzurufen. Suchen Sie das Ergebnis der Netzwerkschnittstelle, und klicken Sie darauf.
Kopieren Sie den Wert für Private IP address (d. h.
10.0.27.5
).Konfigurieren Sie Ihren DNS so, dass die folgenden Endpunktwerte aus der Funktion SYSTEM$GET_PRIVATELINK_CONFIG in die private IP-Adresse aufgelöst werden.
Mit diesen Endpunktwerten können Sie auf Snowflake, Snowsight und Snowflake Marketplace zugreifen und gleichzeitig OCSP verwenden, um festzustellen, ob ein Zertifikat gesperrt wurde, wenn Snowflake-Clients versuchen, über HTTPS und Verbindungs-URLs eine Verbindung zu einem Endpunkt herzustellen.
Die zu erhaltenden Funktionswerte sind:
privatelink-account-url
privatelink-connection-ocsp-urls
privatelink-connection-urls
privatelink-ocsp-url
regionless-privatelink-account-url
regionless-snowsight-privatelink-url
snowsight-privatelink-url
Beachten Sie, dass die Werte für
regionless-snowsight-privatelink-url
undsnowsight-privatelink-url
den Zugang zu Snowsight und Snowflake Marketplace über private Konnektivität ermöglichen. Wenn Sie URL-Umleitungen aktivieren möchten, müssen Sie jedoch weitere Konfigurationen vornehmen.Weitere Informationen dazu finden Sie unter Snowsight und Private Konnektivität.
Bemerkung
Eine vollständige Erläuterung der DNS-Konfiguration würde den Rahmen dieses Verfahrens sprengen. Sie können beispielsweise eine Azure Private DNS-Zone in Ihre Umgebung integrieren. Wenden Sie sich an Ihre internen Azure- und Cloudinfrastrukturadministratoren, um die URLs ordnungsgemäß für den DNS zu konfigurieren und aufzulösen.
Nachdem Sie die Firewalleinstellungen für den ausgehenden Datenverkehr und die DNS-Datensätze hinsichtlich der integrierten URLs Ihres Azure Private Link-Kontos und OCSP überprüft haben, testen Sie die Verbindung zu Snowflake mit SnowCD (Connectivity Diagnostic Tool) und SYSTEM$ALLOWLIST_PRIVATELINK.
Stellen Sie eine Verbindung zu Snowflake mit der Konto-URL für private Konnektivität her.
Wenn Sie eine Verbindung zu Snowsight über Azure Private Link herstellen möchten, verwenden Sie die Anleitung in der Snowsight-Dokumentation.
Verwenden von SSO mit Azure Private Link¶
Snowflake unterstützt die Verwendung von SSO mit Azure Private Link. Weitere Informationen dazu finden Sie unter:
Verwenden der Clientumleitung mit Azure Private Link¶
Snowflake unterstützt die Verwendung der Clientumleitung mit Azure Private Link.
Weitere Informationen dazu finden Sie unter Umleiten von Clientverbindungen.
Verwenden von Replikation und Tri-Secret Secure mit privater Konnektivität¶
Snowflake unterstützt das Replizieren Ihrer Daten vom Quellkonto in ein Zielkonto, unabhängig davon, ob Sie Tri-Secret Secure oder dieses Feature im Zielkonto aktivieren.
Weitere Informationen dazu finden Sie unter Datenbankreplikation und -verschlüsselung.
Blockieren des öffentlichen Zugriffs – Optional¶
Nach dem Testen der Azure Private Link-Konnektivität mit Snowflake können Sie optional den öffentlichen Zugriff auf Snowflake mit Steuern des Netzwerkdatenverkehrs mit Netzwerkrichtlinien blockieren.
Konfigurieren Sie den CIDR-Blockierbereich so, dass der öffentliche Zugriff auf Snowflake anhand des IP-Adressbereichs Ihrer Organisation blockiert wird. Dieser Bereich kann innerhalb Ihres virtuellen Netzwerks liegen.
Sobald die CIDR-Blockierbereiche festgelegt sind, können nur IP-Adressen aus dem CIDR-Blockierbereich auf Snowflake zugreifen.
So blockieren Sie den öffentlichen Zugriff mithilfe einer Netzwerkrichtlinie:
Erstellen Sie eine neue Netzwerkrichtlinie, oder bearbeiten Sie eine vorhandene Netzwerkrichtlinie. Fügen Sie den CIDR-Blockierbereich für Ihre Organisation hinzu.
Aktivieren Sie die Netzwerkrichtlinie für Ihr Konto.