Private Azure-Endpunkte für von Snowflake verwaltete Speichervolumes¶
Unter diesem Thema werden Konzepte und detaillierte Anweisungen für die Verbindung zu von Snowflake verwalteten Speichervolumes über private Microsoft Azure-Endpunkte bereitgestellt. Von Snowflake verwaltete Speichervolumes sind die Speicherorte für Apache Iceberg-Tabellen, die Snowflake als Katalog verwenden.
Übersicht¶
Wenn Sie eine externe Abfrage-Engine wie Apache Spark oder Databricks verwenden, um aus einer Iceberg-Tabelle zu lesen oder zu schreiben, die einen von Snowflake verwalteten Speicher verwendet, kommuniziert die Abfrage-Engine direkt mit dem auf Azure Storage gehosteten nativen Iceberg-Volume. Standardmäßig kann dieser Datenverkehr das öffentliche Internet durchlaufen.
Private Azure-Endpunkte und Azure Private Link können kombiniert werden, um eine sichere Konnektivität zu von Snowflake verwalteten Speichervolumes bereitzustellen. Diese Einrichtung stellt sicher, dass Lese- und Schreiboperationen von Ihrer externen Abfrage-Engine auf das native Iceberg-Volume das interne Azure-Netzwerk anstelle des öffentlichen Internets verwenden.
Vorteile¶
Die Implementierung von privaten Endpunkten für den Zugriff auf von Snowflake verwaltete Speichervolumes bietet die folgenden Vorteile:
Daten werden nicht über das öffentliche Internet übertragen, wenn externe Abfrage-Engines vom nativen Iceberg-Volume lesen oder darauf schreiben.
Admins können konsistente Sicherheit und Überwachung hinsichtlich der Art und Weise implementieren, wie sich Abfrage-Engines mit Speicherkonten verbinden.
Admins müssen keine Änderung an den Firewall-Einstellungen vornehmen, um auf die Daten im Speichervolume zugreifen zu können.
Einschränkungen¶
Microsoft Azure definiert, wie ein privater Endpunkt mit Snowflake interagieren kann:
Ein einzelner privater Endpunkt kann mit einem einzelnen Snowflake-Dienstendpunkt kommunizieren. Sie können mehrere 1:1-Konfigurationen haben, die mit demselben von Snowflake verwalteten Speichervolume verbunden sind.
Die maximale Anzahl der privaten Endpunkte in Ihrem Speicherkonto, die eine Verbindung zu einem von Snowflake verwalteten Speichervolume herstellen können, ist fest definiert. Weitere Informationen dazu finden Sie unter Begrenzungen beim Standard-Speicherkonto.
Konfigurieren von privaten Endpunkten für den Zugriff auf von Snowflake verwaltete Speichervolumes¶
Um private Endpunkte für den Zugriff auf von Snowflake verwaltete Speichervolumes zu konfigurieren, ist die Unterstützung der folgenden drei Rollen in Ihrer Organisation erforderlich:
Snowflake-Kontoadministrator (d. h. ein Benutzer mit der Snowflake-Systemrolle ACCOUNTADMIN).
Microsoft Azure-Administrator
Netzwerkadministrator
Abhängig von der Organisation kann es notwendig sein, den Konfigurationsaufwand mit mehr als einer Person oder einem Team zu koordinieren, um die folgenden Konfigurationsschritte zu implementieren.
Führen Sie die folgenden Schritte aus, um den sicheren Zugriff auf von Snowflake verwaltete Speichervolumes über private Azure-Endpunkte zu konfigurieren und zu implementieren:
Überprüfen Sie, ob Ihr Azure-Abonnement beim Azure Storage-Ressourcenmanager registriert ist. Mit diesem Schritt können Sie von einem privaten Endpunkt aus eine Verbindung zum verwalteten Speichervolume herstellen.
Führen Sie als Snowflake-Kontoadmin die folgenden Befehle in Ihrem Snowflake-Konto aus. Notieren Sie sich die Ressourcen-ID des Speicherkontos Ihres nicht ausfallsicheren bzw. ausfallsicheren Snowflake-verwalteten Speichervolumes, das durch die Schlüssel
privatelink-snowflake-managed-storage-volume-nfsundprivatelink-snowflake-managed-storage-volume-fsdefiniert ist. Weitere Informationen dazu finden Sie unter ENABLE_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PRIVATELINK und SYSTEM$GET_PRIVATELINK_CONFIG.Erstellen Sie als Azure-Admin über das Azure-Portal einen privaten Endpunkt zu jedem Ihrer von Snowflake verwalteten Speichervolumes.
Zeigen Sie die Eigenschaften des privaten Endpunkts an, und notieren Sie sich den ID-Wert der Ressource. Sie geben diesen Wert als
privateEndpointResourceID-Funktionsargument im nächsten Schritt an.Weitere Informationen dazu finden Sie in der Dokumentation zu Microsoft Azure Private Link.
Wichtig
Bevor Sie mit dem nächsten Schritt fortfahren, um den privaten Endpunkt zu autorisieren, sollten Sie sich des Microsoft Azure DNS-Verhaltens bewusst sein, wenn ein privater Endpunkt zum ersten Mal für einen Speicherort autorisiert wird.
Wenn der erste private Endpunkt verbunden und autorisiert ist, erstellt Azure automatisch einen CNAME-Datensatz in seinem öffentlichen DNS.
Unter normalen Umständen hat diese DNS-Aktualisierung keine Auswirkungen auf die bestehende öffentliche Konnektivität zu dem Speicherkonto. Wenn Ihre Umgebung jedoch bereits über konfigurierte private DNS-Zonen verfügt, kann diese DNS-Aktualisierung zu unbeabsichtigtem Verhalten führen.
Um dieses Problem zu vermeiden, empfiehlt Microsoft, die Option Fallback to Internet in der privaten DNS-Zonenkonfiguration vor der Autorisierung des ersten privaten Endpunkts zu aktivieren.
Rufen Sie als Snowflake-Administrator die Funktion SYSTEM$AUTHORIZE_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PRIVATELINK_ACCESS auf, und verwenden Sie dabei den
privateEndpointResourceID-Wert als Funktionsargument. Durch diesen Schritt wird der Zugriff auf das von Snowflake verwaltete Speichervolume über den privaten Endpunkt autorisiert.Führen Sie bei Bedarf diese Schritte aus, um den Zugriff auf das von Snowflake verwaltete Speichervolume zu widerrufen.
Beziehen Sie Ihren Netzwerkadministrator ein, um die DNS-Einstellungen in einer privaten DNS-Zone zu aktualisieren. Die Einstellungen müssen die PrivateLink-URL zu den privaten IP-Adressen des privaten Azure-Endpunkts auflösen, der eine Verbindung zum Speicherkonto Ihres von Snowflake verwalteten Speichervolumes herstellt.
Weitere Informationen dazu finden Sie unter DNS-Konfiguration für private Azure-Endpunkte.
Tipp
Verwenden Sie zum Testen des Features ein separates Snowflake-Konto, und konfigurieren Sie eine private DNS-Zone in einer Test-VNet, damit die Tests isoliert sind und sich nicht auf Ihre anderen Workloads auswirken.
Wenn die Verwendung eines separaten Snowflake-Kontos nicht möglich ist, verwenden Sie einen Testbenutzenden für den Zugriff auf Snowflake von einer VNet aus, in der die DNS-Änderungen vorgenommen werden.
Um von lokalen Anwendungen aus zu testen, verwenden Sie die DNS-Weiterleitung, um Anforderung an das private Azure-DNS in VNet weiterzuleiten, in dem die DNS-Einstellungen vorgenommen werden.
Sperren des öffentlichen Zugriffs¶
Nachdem Sie private Endpunkte für den Zugriff auf das verwaltete Speichervolume über Azure Private Link konfiguriert haben, können Sie optional Anforderungen von öffentlichen IP-Adressen an das verwaltete Speichervolume blockieren. Nachdem der öffentliche Zugriff blockiert ist, muss der gesamte Datenverkehr über den privaten Endpunkt verlaufen.
Wichtig
Stellen Sie sicher, dass der Datenverkehr über private Konnektivität das verwaltete Speichervolume erreicht, bevor Sie den öffentlichen Zugriff blockieren. Das Blockieren des öffentlichen Zugriffs ohne Konfiguration der privaten Konnektivität kann zu unbeabsichtigten Unterbrechungen führen.
Um den gesamten Datenverkehr von öffentlichen IP-Adressen an das verwaltete Speichervolume zu blockieren, rufen Sie die folgende Funktion auf:
Es kann einige Minuten dauern, bis diese Funktion ausgeführt wurde.
Blockieren des öffentlichen Zugriffs mit Ausnahmen der IP-Zulassungsliste¶
Mit der Funktion SYSTEM$BLOCK_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PUBLIC_ACCESS_WITH_EXCEPTION können Sie den öffentlichen Zugriff blockieren und gleichzeitig eine Zulassungsliste von IP-Adressen oder CIDR-Blöcken pflegen, die das verwaltete Speichervolume erreichen dürfen.
Blockieren des öffentlichen Zugriffs, während bestimmte IP-Adressen und CIDR-Blöcke zugelassen werden:
Sicherstellen der Blockierung des öffentlichen Zugriffs¶
Um festzustellen, ob öffentliche IP-Adressen auf ein von Snowflake verwaltetes Speichervolumes zugreifen können, rufen Sie die Funktion SYSTEM$SNOWFLAKE_MANAGED_STORAGE_VOLUME_PUBLIC_ACCESS_STATUS auf.
Aufheben der Blockierung des öffentlichen Zugriffs¶
Um den öffentlichen Zugriff auf ein von Snowflake verwaltetes Speichervolumes zu ermöglichen, das zuvor blockiert war, rufen Sie die Funktion SYSTEM$UNBLOCK_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PUBLIC_ACCESS auf.
Widerrufen des Zugriffs auf von Snowflake verwaltete Speichervolumes über private Endpunkte¶
Führen Sie die folgenden Schritte aus, um den Zugriff auf von Snowflake verwaltete Speichervolumes über private Microsoft Azure-Endpunkte zu widerrufen:
Bestätigen Sie als Snowflake-Administrator, dass der ENABLE_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PRIVATELINK-Parameter auf
TRUEgesetzt ist. Beispiel:Rufen Sie als Snowflake-Admin die Funktion SYSTEM$REVOKE_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PRIVATELINK_ACCESS auf, um den Zugriff über den privaten Endpunkt zu widerrufen, wobei Sie denselben
privateEndpointResourceID-Wert verwenden, mit dem Sie ursprünglich den Zugriff autorisiert haben.Als Azure-Administrator löschen Sie den privaten Endpunkt über das Azure-Portal.
Entfernen Sie als Netzwerkadministrator die DNS- und Alias-Datensätze, die zum Auflösen der Speicherkonto-URLs verwendet wurden.