Externes Volume für Azure konfigurieren¶
Gewähren Sie Snowflake eingeschränkten Zugriff auf Ihren eigenen Microsoft Azure Container über ein externes Volume. Snowflake unterstützt die folgenden Azure-Cloudspeicherdienste für externe Volumes:
Blob-Speicher
Data Lake Storage Gen2
General Purpose v1
General Purpose v2
Microsoft Fabric OneLake
Bemerkung
Um Ihre Sicherheitslage zu verbessern, können Sie ein externes Volume so konfigurieren, dass es für den Netzwerkdatenverkehr private Konnektivität und nicht das öffentliche Internet verwendet. Weitere Informationen dazu finden Sie unter Private Konnektivität zu externen Volumes für Microsoft Azure.
Verwenden Sie zum Konfigurieren eines externen Volumes für Azure :ref:` SQL <label-configure_external_volume_azure_create_sql>` oder :ref:` Snowsight <label-configure_external_volume_azure_create_snowsight>`.
Voraussetzungen¶
Bevor Sie ein externes Volume konfigurieren, benötigen Sie Folgendes:
Ein Azure-Speichercontainer.
Um das externe Volume für extern verwaltete Iceberg-Tabellen zu verwenden, müssen sich alle Ihre Tabellendaten und Metadatendateien in dem Container befinden.
Um die Datenwiederherstellung zu unterstützen, aktivieren Sie die Versionierung für Ihren externen Cloudspeicherort.
Berechtigungen in Azure zum Erstellen und Verwalten von IAM-Richtlinien und -Rollen. Wenn Sie kein Azure-Administrator sind, bitten Sie Ihren Azure-Administrator, diese Aufgaben auszuführen.
Wenn Sie eine Azure-Speicher-Firewall verwenden, um nicht autorisierten Datenverkehr zu Ihrem Speicherkonto zu blockieren, folgen Sie den Anweisungen unter Allow the VNet subnet IDs, um Snowflake explizit Zugriff auf Ihr Azure-Speicher-Konto zu gewähren.
Ein externes Volume mit SQL konfigurieren¶
Schritt 1: Externes Volume in Snowflake erstellen¶
Erstellen Sie mit dem Befehl CREATE EXTERNAL VOLUME ein externes Volume.
Bemerkung
Dieser SQL-Befehl kann nur von Kontoadministratoren (d. h. Benutzer mit der Rolle ACCOUNTADMIN) ausgeführt werden.
Im folgenden Beispiel wird ein externes Volume erstellt, das einen Azure-Speicherort mit Verschlüsselung definiert:
CREATE EXTERNAL VOLUME exvol
STORAGE_LOCATIONS =
(
(
NAME = 'my-azure-northeurope'
STORAGE_PROVIDER = 'AZURE'
STORAGE_BASE_URL = 'azure://exampleacct.blob.core.windows.net/my_container_northeurope/'
AZURE_TENANT_ID = 'a123b4c5-1234-123a-a12b-1a23b45678c9'
)
);
Bemerkung
Verwenden Sie bei der Angabe eines Wertes für STORAGE_BASE_URL das Präfix
azure://und nicht das Präfixhttps://.Informationen über die Angabe eines OneLake-Speicherorts (Vorschau-Feature) finden Sie auf der Referenzseite CREATE EXTERNAL VOLUME.
Wenn Sie einen regionalen Endpunkt für einen Microsoft Fabric OneLake-Speicherort nutzen, verwenden Sie die gleiche Region wie Ihre Microsoft Fabric-Kapazität. Dies muss auch die Region sein, in der sich Ihr Snowflake-Konto befindet.
Schritt 2: Snowflake Zugriff auf den Speicherort gewähren¶
Verwenden Sie den Befehl DESCRIBE EXTERNAL VOLUME, um eine URL abzurufen, die auf die Seite der Microsoft-Berechtigungsanforderung führt. Geben Sie den Namen des externen Volumes an, das Sie zuvor erstellt haben.
DESC EXTERNAL VOLUME exvol;
Notieren Sie sich die Werte der folgenden Eigenschaften:
Eigenschaft
Beschreibung
AZURE_CONSENT_URLURL der Microsoft-Berechtigungsanforderungsseite.
AZURE_MULTI_TENANT_APP_NAMEName der Snowflake-Clientanwendung, die für Ihr Konto erstellt wurde. In einem späteren Schritt in dieser Anleitung müssen Sie dieser Anwendung die Berechtigung erteilen, ein Zugriffstoken für Ihren zulässigen Speicherort zu erhalten.
Sie verwenden diese Werte in den folgenden Schritten.
Rufen Sie in einem Webbrowser die Seite der Microsoft-Berechtigungsanforderung auf (die
AZURE_CONSENT_URL).Wählen Sie Accept aus. Mit dieser Aktion kann der Azure-Dienstprinzipal, der für Ihr Snowflake-Konto erstellt wurde, ein Zugriffstoken für eine bestimmte Ressource in Ihrem Mandantenbereich erhalten. Das Abrufen eines Zugriffstokens ist nur erfolgreich, wenn Sie dem Dienstprinzipal die entsprechenden Berechtigungen auf Ebene des Speicherkontos erteilen (siehe nächster Schritt).
Die Microsoft-Berechtigungsanforderungsseite leitet auf die Snowflake-Firmenwebsite (snowflake.com) um.
Melden Sie sich beim Microsoft Azure-Portal an.
Rufen Sie Azure Services » Storage Accounts auf. Wählen Sie den Namen des Speicherkontos aus, auf das der Snowflake-Dienstprinzipal Zugriff benötigt.
Bemerkung
Sie müssen die IAM-Berechtigungen für ein externes Volume auf der Ebene des Speicherkontos festlegen, nicht auf der Ebene des Containers.
Wählen Sie Access Control (IAM) » Add role assignment aus.
Wählen Sie die Rolle
Storage Blob Data Contributoraus, um Lese- und Schreibzugriff auf den Snowflake-Dienstprinzipal zu gewähren.Bemerkung
Die Rolle
Storage Blob Data Contributorgewährt Schreibzugriff auf den Speicherort des externen Volumes. Um den Schreibzugriff vollständig zu konfigurieren, setzen Sie den ParameterALLOW_WRITESdes externen Volumes aufTRUE(den Standardwert).
Wählen Sie + Select members aus.
Suchen Sie nach dem Snowflake-Dienstprinzipal. Dies ist die Identität in der Eigenschaft AZURE_MULTI_TENANT_APP_NAME der Ausgabe von DESC EXTERNAL VOLUME (in Schritt 1). Suchen Sie in der Eigenschaft AZURE_MULTI_TENANT_APP_NAME nach der Zeichenfolge vor dem Unterstrich.
Wichtig
Es kann eine Stunde oder länger dauern, bis Azure den über die oben genannte Microsoft-Anforderungsseite angeforderten Snowflake-Dienstprinzipal erstellt hat. Wenn der Dienstprinzipal nicht sofort verfügbar ist, müssen Sie ein bis zwei Stunden warten und ihn dann erneut suchen.
Wenn Sie den Dienstprinzipal löschen, funktioniert das externe Volume nicht mehr.
Wählen Sie Review + assign aus.
Bemerkung
Beim Zuweisen einer Rolle kann es bis zu 10 Minuten dauern, bis die Änderungen wirksam werden. Weitere Informationen dazu finden Sie in der Microsoft Azure-Dokumentation unter Symptom: Änderungen bei der Rollenzuweisung werden nicht erkannt.
Schritt 3: Überprüfen des Speicherzugriffs¶
Um zu überprüfen, ob Snowflake sich erfolgreich bei Ihrem Speicheranbieter authentifizieren kann, rufen Sie die Funktion SYSTEM$VERIFY_EXTERNAL_VOLUME auf.
SELECT SYSTEM$VERIFY_EXTERNAL_VOLUME('my_external_volume');
Bemerkung
Wenn Sie den folgenden Fehler erhalten, muss Ihr Kontoadministrator AWS STS in der Snowflake-Bereitstellungsregion aktivieren. Eine Anleitung dazu finden Sie unter Verwalten von AWS STS in einer AWS-Region in der AWS-Dokumentation.
Error assuming AWS_ROLE:
STS is not activated in this region for account:<external volume id>. Your account administrator can activate STS in this region using the IAM Console.
Ein externes Volume in Snowsight konfigurieren¶
Melden Sie sich bei Snowsight an.
Wählen Sie links unten Ihren Namen » Switch role und dann ACCOUNTADMIN oder eine Rolle mit der Berechtigung CREATEEXTERNAL VOLUME aus.
Weitere Informationen dazu finden Sie unter Ihre Primärrolle wechseln.
Wählen Sie im Navigationsmenü die Option Catalog » External data aus.
Wählen Sie die Registerkarte External volumes aus.
Wählen Sie + Create aus.
Wählen Sie Microsoft Azure & OneLake und dann Next aus.
Geben Sie auf der Seite Prerequisites unter Azure tenant ID die ID des Azure-Mandanten an.
Informationen dazu, wie Sie die ID Ihres Azure-Mandanten erhalten, finden Sie unter How to find your Microsoft Entra tenant ID in der Dokumentation zu Microsoft Entra.
Wählen Sie Next aus.
Gehen Sie auf der Seite Grant storage access wie folgt vor, um Snowflake Zugriff auf den Speicherort zu gewähren:
Damit Snowflake die Zustimmung zum Herstellen einer Verbindung mit dem Azure-Speicher oder Microsoft OneLake erteilt, wählen Sie Provide consent aus.
Die Microsoft-Berechtigungsanforderungsseite wird auf einer neuen Browser-Registerkarte geöffnet.
Wählen Sie auf der Microsoft-Seite mit der Berechtigungsanforderung Accept aus. Mit dieser Aktion kann der Azure-Dienstprinzipal, der für Ihr Snowflake-Konto erstellt wurde, ein Zugriffstoken für eine bestimmte Ressource in Ihrem Mandantenbereich erhalten. Das Abrufen eines Zugriffstokens ist nur erfolgreich, wenn Sie dem Dienstprinzipal die entsprechenden Berechtigungen auf Ebene des Speicherkontos erteilen (siehe nächster Schritt).
Die Microsoft-Berechtigungsanforderungsseite leitet auf die Snowflake-Firmenwebsite (snowflake.com) um.
Kopieren Sie in Snowflake im Feld Multi-tenant app name den Namen der Snowflake-Clientanwendung für Ihr Konto in einen Texteditor. Im nächsten Schritt erteilen Sie dieser Anwendung die Berechtigung, ein Zugriffstoken für Ihren zulässigen Speicherort abzurufen.
Um Ihrer Anwendung die Berechtigung zu erteilen, ein Zugriffstoken für Ihren zulässigen Speicherort abzurufen, gehen Sie wie folgt vor:
Melden Sie sich beim Microsoft Azure-Portal an.
Rufen Sie Azure Services » Storage Accounts auf. Wählen Sie den Namen des Speicherkontos aus, auf das der Snowflake-Dienstprinzipal Zugriff benötigt.
Bemerkung
Sie müssen die IAM-Berechtigungen für ein externes Volume auf der Ebene des Speicherkontos festlegen, nicht auf der Ebene des Containers.
Wählen Sie Access Control (IAM) » Add role assignment aus.
Wählen Sie die Rolle
Storage Blob Data Contributoraus, um Lese- und Schreibzugriff auf den Snowflake-Dienstprinzipal zu gewähren.Bemerkung
Die Rolle
Storage Blob Data Contributorgewährt Schreibzugriff auf den Speicherort des externen Volumes. Um den Schreibzugriff vollständig zu konfigurieren, setzen Sie den ParameterALLOW_WRITESdes externen Volumes aufTRUE(den Standardwert).Wählen Sie + Select members aus.
Suchen Sie nach dem Snowflake-Dienstprinzipal.
Dies ist der Name der mehrmandantenfähigen App, den Sie im vorherigen Schritt von Snowflake kopiert haben.
Wichtig
Es kann eine Stunde oder länger dauern, bis Azure den über die oben genannte Microsoft-Anforderungsseite angeforderten Snowflake-Dienstprinzipal erstellt hat. Wenn der Dienstprinzipal nicht sofort verfügbar ist, müssen Sie ein bis zwei Stunden warten und ihn dann erneut suchen.
Wenn Sie den Dienstprinzipal löschen, funktioniert das externe Volume nicht mehr.
Wählen Sie Review + assign aus.
Bemerkung
Beim Zuweisen einer Rolle kann es bis zu 10 Minuten dauern, bis die Änderungen wirksam werden. Weitere Informationen dazu finden Sie in der Microsoft Azure-Dokumentation unter Symptom: Änderungen bei der Rollenzuweisung werden nicht erkannt.
Wählen Sie in Snowflake Next.
Füllen Sie in Snowflake zum Konfigurieren des externen Volumes auf der Seite Configure external volume die folgenden Felder aus:
Feld
Beschreibung
External volume name
Geben Sie einen Namen für Ihr externes Volume ein.
Storage base URL
Gibt die Basis-URL für Ihren Cloudspeicherort an.
Access scope
Gibt an, ob Schreiboperationen für das externe Volume erlaubt sind; muss bei den folgenden Tabellen auf Allow writes gesetzt werden:
Iceberg-Tabellen, die Snowflake als Katalog verwenden.
Iceberg-Tabellen, die einen externen Katalog verwenden und beschreibbar sind. Extern verwaltete Iceberg-Tabellen sind beschreibbar, wenn Sie über eine mit dem Katalog verknüpfte Datenbank auf sie zugreifen, bei der derALLOWED_WRITE_OPERATIONS-Parameter auf TRUE eingestellt ist.
Bei Iceberg-Tabellen, die aus Delta-Tabellendateien erstellt wurden, wird Snowflake durch Festlegen dieses Parameters auf Allow writes ermöglicht, Iceberg-Metadaten in Ihren externen Speicher zu schreiben. Weitere Informationen dazu finden Sie unter Delta-basierte Tabellen.
Der Wert dieses Parameters muss auch mit den Berechtigungen übereinstimmen, die Sie für das Cloudspeicherkonto für jeden angegebenen Speicherort festgelegt haben.
Bemerkung
Wenn Sie planen, das externe Volume für das Lesen von extern verwalteten Iceberg-Tabellen zu verwenden, können Sie diesen Parameter auf „Off“ festlegen. Snowflake schreibt keine Daten oder Iceberg-Metadaten-Dateien in Ihren Cloudspeicher, wenn Sie Tabellen in einem externen Iceberg-Katalog lesen.
Scope
Wählen Sie aus, wo dieses externe Volume zum Standardspeicherort für zukünftige Iceberg-Tabellen werden soll. Mögliche Werte sind:
Do not set a default: Legen Sie das externe Volume nirgendwo als Standard fest.
Account: Legen Sie das externe Volume als Standard für Iceberg-Tabellen fest, die unter dem gesamten Konto erstellt werden.
Specific database: Legen Sie das externe Volume als Standard für Iceberg-Tabellen fest, die unter der von Ihnen angegebenen Datenbank erstellt werden. Um diese Datenbank anzugeben, verwenden Sie das Dropdown-Menü Database, das angezeigt wird, wenn Sie Specific database auswählen.
Specific schema: Legen Sie das externe Volume als Standard für Iceberg-Tabellen fest, die unter dem von Ihnen angegebenen Schema erstellt werden. Um dieses Schema anzugeben, verwenden Sie das Dropdown-Menü Database, das angezeigt wird, um zuerst die übergeordnete Datenbank des Schemas und dann das Schema auszuwählen.
Comment (optional)
Gibt einen Kommentar für das externe Volume an.
Connectivity
Gibt an, ob Sie ausgehende private Konnektivität verwenden möchten, um Ihre Sicherheit zu verbessern. Allgemeine Informationen zur Verwendung der ausgehenden privaten Konnektivität finden Sie unter Private Konnektivität zu externen Volumes für Microsoft Azure. Mögliche Werte sind:
Public (default): Verwenden des öffentlichen Internets
Private (Azure Private Endpoint): Verwenden ausgehender privater Konnektivität
Wählen Sie Next aus.
Auf der Seite Verify connection & create volume verifiziert Snowflake Ihre Verbindung zu Azure und zeigt dann die Meldung „Successfully connected“ an.
Bemerkung
Wenn Snowflake Ihre Verbindung nicht verifizieren kann, überprüfen Sie Ihre Berechtigung oder die Konfiguration des externen Volumes, und wählen Sie dann Verify again aus.
Wählen Sie Create aus.
Nächste Schritte¶
Nachdem Sie ein externes Volume konfiguriert haben, können Sie eine Iceberg-Tabelle erstellen.
Weitere Informationen zum Erstellen einer schreibgeschützten Iceberg-Tabelle, die einen externen Katalog verwendet, finden Sie unter Eine Katalogintegration konfigurieren.
Um eine Iceberg-Tabelle mit voller Unterstützung der Snowflake-Plattform zu erstellen, lesen Sie Eine Snowflake-verwaltete Tabelle erstellen.