Verwalten Sie private Konnektivitäts-Endpunkte für Snowflake Open Catalog: Azure¶
Führen Sie die folgenden Schritte aus, um eine ausgehende private Konnektivität für den ausgehenden Datenverkehr im Netzwerk einzurichten, bei dem die Daten für Ihre Kataloge im Azure Cloud-Speicher gespeichert sind.
Voraussetzungen¶
Ihr Open Catalog-Konto und Ihr externer Cloud-Speicher müssen beide auf Azure gehostet sein.
Sie benötigen die Berechtigung, die Firewall-Regeln für Ihre Azure Storage-Konten so einzustellen, dass Anfragen, die über bestimmte private Konnektivitätsendpunkte geroutet werden, zugelassen werden.
Ihre Abfrage-Engine oder Snowflake-Engine eines Drittanbieters muss über Azure Private Link Zugriff auf Ihren Azure-Speicher haben. Hier finden Sie Optionen für die Gewährung dieses Zugriffs:
Verwenden Sie private Endpunkte für Azure Storage. Die Anleitung dazu finden Sie unter Verwendung privater Endpunkte für Azure Storage in der Azure-Dokumentation.
Verwenden Sie einen Azure Service-Endpunkt.
Ändern Sie die Firewall-Einstellungen, um die IP-Adresse für den Rechner, auf dem die Abfrage-Engine läuft, auf die Whitelist zu setzen.
Wenn Sie die ausgehende private Konnektivität aktivieren, kann die Engine sonst keine Tabellen lesen oder schreiben, die im Bucket gespeichert sind, und Open Catalog kann keine Metadaten im Bucket lesen oder schreiben.
Schritt 1: Erstellen Sie eine Snowflake CLI-Verbindung für Open Catalog¶
Um private Konnektivität in Open Catalog einzurichten, benötigen Sie eine Snowflake CLI-Verbindung für Open Catalog. Folgen Sie diesen Schritten, um diese Verbindung herzustellen. Wenn Sie Snowflake CLI noch nicht installiert haben, lesen Sie bitte den Abschnitt Installation von Snowflake CLI.
Bevor Sie beginnen¶
Um eine Snowflake CLI-Verbindung für Open Catalog zu erstellen, benötigen Sie Ihren vollständigen Bezeichner für das Open Catalog-Konto. Der Bezeichner des Kontos enthält den Namen Ihrer Snowflake-Organisation und den Namen Ihres Open Catalog-Kontos, zum Beispiel <orgname>.<my-snowflake-open-catalog-account-name>
.
Um Ihren Snowflake-Organisationsnamen (
<orgname>
) zu finden, sieheSuchen von Organisations- und Kontonamen eines Kontos <https://docs.snowflake.com/en/user-guide/admin-account-identifier.html#label-account-name-find>
_.Um Ihren Snowflake Open Catalog-Kontonamen zu finden (
<my-snowflake-open-catalog-account-name>
), sieheDen Kontonamen für ein Snowflake Open Catalog-Konto finden <https://other-docs.snowflake.com/en/opencatalog/find-account-name>
_ in der Dokumentation.
Wichtig
Um diese Verbindung herzustellen, müssen Sie ein Benutzer von Open Catalog sein, der über die Berechtigungen eines Service-Administrators verfügt. Informationen zu den Berechtigungen von Service-Administratoren finden Sie unter Rolle des Service-Administrators.
Hinzufügen einer Snowflake CLI-Verbindung für Snowflake Open Catalog¶
Fügen Sie eine Verbindung für das Snowflake Open Catalog-Konto hinzu, für das Sie die private Konnektivität aktivieren möchten.
Fügen Sie eine Verbindung <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#add-a-connection>
_ mit den folgenden Werten hinzu. Für alle anderen Parameter drücken Sie die Eingabetaste, um die Angabe eines Wertes für den Parameter zu überspringen.Parameter für die Konfiguration der Verbindung
Wert
Name für diese Verbindung
Geben Sie einen Namen für die Verbindung an, zum Beispiel
myopencatalogconnection
.Kontoname
Geben Sie den Namen Ihrer Snowflake-Organisation, gefolgt vom Namen Ihres Open Catalog-Kontos, in diesem Format an:
``
-<. Zum Beispiel
ABCDEFG-MYACCOUNT1
.Um diese Namen zu finden, siehe
Bevor Sie beginnen
_.Benutzername
Geben Sie Ihren Benutzernamen für Open Catalog an, zum Beispiel
jsmith
.Kennwort [optional]
Dieser Parameter ist nicht optional, wenn Sie eine Verbindung für Open Catalog erstellen.
Geben Sie Ihr Kennwort für Open Catalog ein, z. B.
MyPassword123456789
.Rolle für die Verbindung [optional]
Dieser Parameter ist nicht optional, wenn Sie eine Verbindung für Open Catalog erstellen.
Sie müssen
POLARIS_ACCOUNT_ADMIN
eingeben
Testen Sie die Snowflake CLI-Verbindung¶
Um Ihre CLI-Verbindung zu testen, folgen Sie diesem Beispiel, das die Verbindung für
myopencatalogconnection
testet:snow connection test -c myopencatalogconnection
Die Antwort sollte wie folgt aussehen:
+------------------------------------------------------------------------------+ | key | value | |----------------------------+-------------------------------------------------| | Connection name | myopencatalogconnection | | Status | OK | | Host | ABCDEFG-MYACCOUNT1.snowflakecomputing.com | | Account | ABCDEFG-MYACCOUNT1 | | User | jsmith | | Role | POLARIS_ACCOUNT_ADMIN | | Database | not set | | Warehouse | not set | +------------------------------------------------------------------------------+
Legen Sie Ihre Snowflake CLI-Verbindung für Snowflake Open Catalog als Standard fest¶
Um sicherzustellen, dass der von Ihnen verwendeten Verbindung immer die erforderliche Rolle POLARIS_ACCOUNT_ADMIN zugewiesen wird, können Sie die Snowflake CLI-Verbindung, die Sie für Open Catalog erstellt haben, als Standardverbindung festlegen. Weitere Informationen über die Standardverbindung finden Sie unter Legen Sie die Standardverbindung fest <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#set-the-default-connection>
_.
Folgen Sie diesem Beispiel, in dem die Verbindung
myopencatalogconnection
als Standard eingestellt ist:snow connection set-default myopencatalogconnection
Um sicherzustellen, dass Sie den richtigen Benutzer und die richtige Rolle verwenden, führen Sie Folgendes aus:
snow sql -q "Select current_user(); select current_role();"
Die Antwort sollte Ihren Open Catalog-Benutzernamen zurückgeben und die CURRENT ROLE sollte POLARIS_ACCOUNT_ADMIN lauten.
+----------------+ | CURRENT_USER() | |----------------| | JSMITH | +----------------+ select current_role(); +-----------------------+ | CURRENT_ROLE() | |-----------------------| | POLARIS_ACCOUNT_ADMIN | +-----------------------+
Schritt 2: Bereitstellen eines privaten Konnektivitätsendpunkts eines Speicherkontos¶
Sie müssen für jedes Speicherkonto, das Sie mit Ihrem Open Catalog-Konto verwenden möchten, einen privaten Konnektivitätsendpunkt bereitstellen.
Bemerkung
Wenn Sie einen privaten Konnektivitätsendpunkt für ein Data Lake Storage-Speicherkonto (nicht für ein Blob-Speicherkonto) bereitstellen, müssen Sie zwei private Konnektivitätsendpunkte bereitstellen. Einer dieser Endpunkte ist für den DFS-Endpunkt, der andere für den Blob-Endpunkt. Ein Beispiel finden Sie unter Bereitstellung privater Konnektivitätsendpunkte für ein Data Lake Storage-Speicherkonto.
Verwenden Sie Ihre Snowflake CLI-Verbindung für Open Catalog, um die folgenden Systemfunktionen aufzurufen:
Um einen privaten Konnektivitätsendpunkt des Kontos bereitzustellen, rufen Sie die Systemfunktion SYSTEM$PROVISION_PRIVATELINK_ENDPOINT auf.
Um zu bestätigen, dass der private Konnektivitätsendpunkt einsatzbereit ist, rufen Sie die Systemfunktion SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO auf.
Eine Anleitung finden Sie unter Private Konnektivitätsendpunkte verwalten: Azure in der Snowflake-Dokumentation. Beachten Sie, dass sich die Anweisungen auf ein Snowflake-Konto und nicht auf ein Snowflake Open Catalog-Konto beziehen, aber der Vorgang ist in Open Catalog derselbe.
Wichtig
Sie müssen die Rolle POLARIS_ACCOUNT_ADMIN anstelle der in der Anleitung genannten Rolle ACCOUNTADMIN verwenden.
Wenn die von Ihnen festgelegte standardmäßige Snowflake CLI-Verbindung nicht die Rolle POLARIS_ACCOUNT_ADMIN zugewiesen bekommen hat, müssen Sie die folgende Anweisung in Ihren Befehl aufnehmen:
USE ROLE POLARIS_ACCOUNT_ADMIN;
Bei Ihrem Befehl müssen Sie unmittelbar vor
$
einen Schrägstrich einfügen, um ihn zu umgehen. Zum Beispielsnow sql -q "SELECT SYSTEM\$GET_PRIVATELINK_CONFIG();"
.
Beispiel: Bereitstellung privater Konnektivitätsendpunkte für ein Data Lake Storage-Speicherkonto¶
Wenn Sie ein Data Lake Storage-Speicherkonto zum Speichern Ihrer Iceberg-Tabellen verwenden, müssen Sie zwei private Konnektivitätsendpunkte des Kontos bereitstellen. Weitere Informationen finden Sie unter Erstellen eines privaten Endpunkts in der Azure-Dokumentation.
Beispiel:
Einen privaten Endpunkt für den Blob-Endpunkt bereitstellen
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
'/subscriptions/mysubscriptionid/resourceGroups/mystorage/providers/Microsoft.Storage/storageAccounts/storagedemo',
'storagedemo.blob.core.windows.net',
'blob'
);
Einen privaten Endpunkt für den DFS-Endpunkt bereitstellen
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
'/subscriptions/mysubscriptionid/resourceGroups/mystorage/providers/Microsoft.Storage/storageAccounts/storagedemo',
'storagedemo.dfs.core.windows.net',
'dfs'
);
Schritt 3: Konfigurieren Sie den öffentlichen Netzwerkzugriff auf Ihr Speicherkonto¶
Navigieren Sie in Azure zu den Netzwerkeinstellungen Ihres Speicherkontos und konfigurieren Sie den Zugriff auf das öffentliche Netzwerk. Sie können diesen Zugang als einen der folgenden konfigurieren:
Deaktivieren Sie alle öffentlichen Netzwerkzugänge
Deaktivieren Sie den gesamten öffentlichen Netzwerkzugang mit Ausnahme der virtuellen Netzwerke und IP-Adressen, die Sie angeben
Weitere Informationen finden Sie unter Konfigurieren von Azure Storage Firewalls und virtuellen Netzwerken in der Azure-Dokumentation.
Schritt 4: Aktivieren Sie die private Konnektivität für einen Katalog¶
In diesem Schritt aktivieren Sie die private Konnektivität für einen Katalog in Ihrem Open Catalog-Konto. Sie können die private Konnektivität für einen neuen oder bestehenden Katalog aktivieren:
Aktivieren Sie die private Konnektivität für einen neuen Katalog¶
Folgen Sie den Anweisungen unter Einen Katalog mit Azure Storage erstellen. Vergewissern Sie sich, dass für den Katalog die Schaltfläche Private Link auf Aktiviert steht.
Private Konnektivität für einen bestehenden Katalog aktivieren¶
Melden Sie sich an, um den Katalog zu öffnen.
Wählen Sie im Navigationsmenü Kataloge.
Wählen Sie in der Liste der Kataloge den Katalog aus, für den Sie die private Konnektivität aktivieren möchten.
Setzen Sie auf der Registerkarte „Katalogdetails“ die Schaltfläche PrivateLink auf Aktiviert.
Schritt 5: Genehmigen Sie eine private Endpunkt-Verbindung zu Ihrem Speicherkonto¶
Um die Verbindung zu genehmigen, müssen Sie zunächst entweder eine Tabelle in Ihrem Katalog erstellen oder laden. Die Durchführung einer dieser Aktionen erzeugt eine Anfrage zur Genehmigung einer privaten Endpunktverbindung in Azure.
Verwenden Sie Ihr Abfrageprogramm, um eine der folgenden Aktionen auszuführen:
Wenn in Ihrem Katalog keine Tabellen gespeichert sind, erstellen Sie eine Tabelle in Ihrem Open Catalog-Konto, verwenden Sie Ihre Abfrage-Engine und fügen Sie Daten darin ein.
Wenn in Ihrem Katalog eine Tabelle gespeichert ist, versuchen Sie, die Tabelle zu laden.
Bemerkung
Wenn Sie keine Daten in die Tabelle einfügen können, haben Sie Azure Private Link möglicherweise nicht für die Abfrage-Engine konfiguriert. Wenn dies der Fall ist, ist Ihre Abfrage-Engine nicht über Azure Private Link mit dem Katalog verbunden. Um dieses Problem zu lösen, konfigurieren Sie Azure Private Link für die Abfrage-Engine. Weitere Informationen finden Sie unter Verwenden privater Endpunkte für Azure Storage und Tutorial: Herstellen einer Verbindung mit einem Speicherkonto mithilfe eines privaten Endpunkts in Azure in der Azure-Dokumentation.
Gehen Sie in Azure folgendermaßen vor:
Navigieren Sie zu den Netzwerkeinstellungen für Ihr Speicherkonto.
Genehmigen Sie die Verbindungsanfrage für die Verbindung des privaten Endpunkts. Wenn Sie eine Tabelle erstellt haben, wird sie in dem Azure Storage-Konto erstellt, wenn Sie die Anfrage genehmigen.
Problembehandlung¶
In diesem Abschnitt finden Sie Hinweise zur Fehlerbehebung bei Problemen mit der ausgehenden privaten Konnektivität für den Datenverkehr.
Kann das Schema für eine Tabelle in Open Catalog nicht anzeigen¶
Symptom
In Open Catalog wählen Sie eine Tabelle in Ihrem Katalog aus (z. B. catalog1
), erhalten aber die folgende Fehlermeldung: „No permissions to access this resource.“
Ursache
In Azure haben Sie die Netzwerkeinstellungen für Ihr Konto erfolgreich aktualisiert, um den Datenverkehr über Ihren VPC-Endpunkt zu routen. In Open Catalog haben Sie jedoch die private Konnektivität für diesen Katalog nicht aktiviert, so dass Open Catalog nicht auf Ihren Bucket zugreifen kann.
Lösung
Aktivieren Sie die private Konnektivität für den Katalog (z. B. catalog1). Einzelheiten finden Sie unter Private Konnektivität für einen Katalog aktivieren.
In der Abfrage-Engine wurde die Fehlermeldung „Failed to get subscoped credentials“ angezeigt¶
Symptom
Sie versuchen, mit einer Abfrage-Engine Daten in einer Tabelle zu lesen oder zu schreiben, erhalten aber die folgende Fehlermeldung: „Failed to get subscoped credentials.“
Ursache
Sie haben Ihr Speicherkonto gesperrt, aber den privaten Konnektivitätsendpunkt nicht eingerichtet oder die private Konnektivität in Ihrem Open Catalog-Konto nicht aktiviert. Infolgedessen kann Open Catalog die „subscoped credentials“ nicht generieren und an die Abfrage-Engine zurückgeben, so dass Ihre Abfrage-Engine nicht auf den Speicher zugreifen kann.
Lösung
Führen Sie die folgenden Schritte aus:
Wenn Sie den privaten Konnektivitätsendpunkt noch nicht bereitgestellt haben, lesen Sie Bereitstellung eines Endpunkts für die private Konnektivität für das Konto.
Wenn Sie die private Konnektivität für den Katalog noch nicht aktiviert haben, Private Konnektivität für den Katalog aktivieren.
Fehler „Business Critical“ bei der Ausführung des Befehls SYSTEM$PROVISION_PRIVATELINK_ENDPOINT¶
Symptom
In Ihrer Snowflake CLI-Verbindung haben Sie den Befehl SYSTEM$PROVISION_PRIVATELINK_ENDPOINT
ausgeführt, aber er schlägt mit der folgenden Fehlermeldung fehl: „Business Critical or higher edition is required for this operation.“ Bitte aktualisieren Sie auf die gültige Edition und versuchen Sie es dann erneut.“
Ursache
Die Edition für Ihr Open Catalog-Konto ist nicht Business Critical.
Um die private Konnektivität für den ausgehenden Datenverkehr zu aktivieren, wozu auch die Bereitstellung eines privaten Konnektivitätsendpunkts gehört, muss die Edition für Ihr Snowflake Open Catalog-Konto Business Critical sein.
Lösung
Wenden Sie sich an den Snowflake-Support, wenn Sie ein Upgrade Ihres Open Catalog-Kontos auf Business Critical wünschen.