Private Konnektivitätsendpunkte für Snowflake Open Catalog verwalten: Azure¶
Führen Sie diese Schritte aus, um ausgehende private Konnektivität für den ausgehenden Datenverkehr einzurichten, bei dem die Daten für Ihre Kataloge in einem Azure-Cloudspeicher gespeichert sind.
Voraussetzungen¶
Ihr Open Catalog-Konto und Ihr externer Cloudspeicher müssen beide auf Azure gehostet sein.
Sie benötigen die Berechtigung, die Firewall-Regeln für Ihre Azure Storage-Konten so einzurichten, dass Anforderungen zugelassen werden, die über bestimmte private Konnektivitätsendpunkte weitergeleitet werden.
Ihre Abfrage-Engine eines Drittanbieters oder Ihre Snowflake-Engine muss über Azure Private Link Zugriff auf Ihren Azure Storage haben. Hier sind die Optionen zur Gewährung dieses Zugriffs:
Verwenden privater Endpunkte für Azure Storage. Eine Anleitung dazu finden Sie unter Verwenden privater Endpunkte für Azure Storage in der Azure-Dokumentation.
Verwenden eines Azure Service-Endpunkts.
Ändern Sie die Firewall-Einstellungen, um die IP-Adresse des Rechners, auf dem die Abfrage-Engine ausgeführt wird, auf die Whitelist zu setzen.
Wenn Sie dagegen ausgehende private Konnektivität aktivieren, kann die Engine keine Tabellen lesen oder schreiben, die im Bucket gespeichert sind, und Open Catalog kann keine Metadaten lesen oder in den Bucket schreiben.
Schritt 1: Eine Snowflake-CLI-Verbindung für Open Catalog erstellen¶
Um private Konnektivität in Open Catalog einzurichten, benötigen Sie eine Snowflake-CLI-Verbindung für Open Catalog. Führen Sie die folgenden Schritte aus, um diese Verbindung herzustellen. Wenn die Snowflake-CLI noch nicht installiert ist, lesen Sie Installieren der Snowflake-CLI.
Bevor Sie beginnen¶
Um eine Snowflake-CLI-Verbindung für Open Catalog zu erstellen, benötigen Sie Ihren vollständigen Open Catalog-Kontobezeichner. Der Kontobezeichner enthält den Namen Ihrer Snowflake-Organisation und Ihres Open Catalog-Kontos, zum Beispiel <orgname>.<my-snowflake-open-catalog-account-name>
.
Informationen dazu, wie Sie den Namen Ihrer Snowflake-Organisation (
<orgname>
) finden, erhalten Sie unterSuchen von Organisations- und Kontonamen eines Kontos <https://docs.snowflake.com/en/user-guide/admin-account-identifier.html#label-account-name-find>
_.Informationen dazu, wie Sie den Namen Ihres Snowflake Open Catalog-Kontos (
<my-snowflake-open-catalog-account-name>
) finden, erhalten Sie unterKontonamen für ein Snowflake Open Catalog-Konto suchen <https://other-docs.snowflake.com/en/opencatalog/find-account-name>
_.
Wichtig
Um diese Verbindung zu erstellen, müssen Sie Open Catalog-Benutzer mit Service-Administrator-Berechtigungen sein. Informationen zu Berechtigungen für Service-Administratoren finden Sie unter Rolle des Service-Administrators.
Eine Snowflake-CLI-Verbindung für Snowflake Open Catalog hinzufügen¶
Fügen Sie eine Verbindung für das Snowflake Open Catalog-Konto hinzu, für das Sie private Konnektivität aktivieren möchten.
Fügen Sie eine Verbindung hinzu <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#add-a-connection>
_, indem Sie die folgenden Werte verwenden. Drücken Sie bei allen anderen Parametern die Eingabetaste, um die Angabe eines Werts für den Parameter zu überspringen.Konfigurationsparameter für die Verbindung
Wert
Name for this connection
Geben Sie einen Namen für die Verbindung an, z. B.
myopencatalogconnection
.Account name
Geben Sie den Namen Ihrer Snowflake-Organisation, gefolgt vom Namen Ihres Open Catalog-Kontos, in folgendem Format an:
<orgname>-<my-snowflake-open-catalog-account-name>
.Beispiel:
ABCDEFG-MYACCOUNT1
.Informationen dazu, wie Sie diese Namen finden, erhalten Sie unter
Bevor Sie beginnen
_.Username
Geben Sie Ihren Benutzernamen für Open Catalog an, z. B.
jsmith
.Password [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
.Role for the connection [optional]
Dieser Parameter ist nicht optional, wenn Sie eine Verbindung für Open Catalog erstellen.
Sie müssen
POLARIS_ACCOUNT_ADMIN
eingeben.
Snowflake-CLI-Verbindung testen¶
Um Ihre CLI-Verbindung zu testen, folgen Sie diesem Beispiel, bei dem die Verbindung für
myopencatalogconnection
getestet wird: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 | +------------------------------------------------------------------------------+
Ihre Snowflake-CLI-Verbindung für Snowflake Open Catalog als Standard festlegen¶
Um sicherzustellen, dass die von Ihnen verwendete Verbindung immer über die erforderliche POLARIS_ACCOUNT_ADMIN-Rolle verfügt, können Sie die Snowflake-CLI-Verbindung, die Sie für Open Catalog erstellt haben, als Standardverbindung festlegen. Weitere Informationen zur Standardverbindung finden Sie unter Standardverbindung festlegen <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#set-the-default-connection>
_.
Folgen Sie diesem Beispiel, bei dem die
myopencatalogconnection
-Verbindung als Standard festgelegt ist:snow connection set-default myopencatalogconnection
Um zu überprüfen, ob 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 CURRENT ROLE sollte POLARIS_ACCOUNT_ADMIN sein.
+----------------+ | CURRENT_USER() | |----------------| | JSMITH | +----------------+ select current_role(); +-----------------------+ | CURRENT_ROLE() | |-----------------------| | POLARIS_ACCOUNT_ADMIN | +-----------------------+
Schritt 2: Einen privaten Konnektivitätsendpunkt für ein Speicherkonto bereitstellen¶
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 für das Speicherkonto bereitzustellen, rufen Sie die Systemfunktion SYSTEM$PROVISION_PRIVATELINK_ENDPOINT auf.
Um zu überprüfen, ob der private Konnektivitätsendpunkt einsatzbereit ist, rufen Sie die Systemfunktion SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO auf.
Eine Anleitung dazu finden Sie unter Private Konnektivitätsendpunkte verwalten: Azure in der Snowflake-Dokumentation. Denken Sie daran, dass sich die Anleitung auf ein Snowflake-Konto und nicht auf ein Snowflake Open Catalog-Konto bezieht, der Prozess in Open Catalog ist aber derselbe.
Wichtig
Sie müssen die Rolle POLARIS_ACCOUNT_ADMIN anstelle der Rolle ACCOUNTADMIN verwenden, die in der Anleitung angegeben ist.
Wenn der standardmäßigen Snowflake-CLI-Verbindung, die Sie eingerichtet haben, nicht die Rolle POLARIS_ACCOUNT_ADMIN zugewiesen ist, müssen Sie in Ihren Befehl die folgende Anweisung aufnehmen:
USE ROLE POLARIS_ACCOUNT_ADMIN;
.Bei Ihrem Befehl müssen Sie zu Escape-Zwecken unmittelbar vor
$
einen Schrägstrich einfügen. Beispiel:snow sql -q "SELECT SYSTEM\$GET_PRIVATELINK_CONFIG();"
.
Beispiel: Private Konnektivitätsendpunkte für ein Data Lake Storage-Speicherkonto bereitstellen¶
Wenn Sie zum Speichern Ihrer Iceberg-Tabellen ein Data Lake Storage-Konto verwenden, müssen Sie zwei private Konnektivitätsendpunkte für das Konto bereitstellen. Weitere Informationen finden Sie unter Erstellen eines privaten Endpunkts in der Azure-Dokumentation.
Beispiel:
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'
);
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: Öffentlichen Netzwerkzugriff auf Ihr Speicherkonto konfigurieren¶
Navigieren Sie in Azure zu den Netzwerkeinstellungen in Ihrem Speicherkonto, und konfigurieren Sie öffentlichen Netzwerkzugriff darauf. Für die Konfiguration dieses Zugriffs haben Sie folgende Möglichkeiten:
Gesamten öffentlichen Netzwerkzugriff deaktivieren
Gesamten öffentlichen Netzwerkzugriff mit Ausnahme von Ihnen angegebener virtueller Netzwerke und IP-Adressen deaktivieren
Weitere Informationen finden Sie unter Azure Storage-Firewalls und virtuelle Netzwerke konfigurieren in der Azure-Dokumentation.
Schritt 4: Private Konnektivität für einen Katalog aktivieren¶
In diesem Schritt aktivieren Sie private Konnektivität für einen Katalog in Ihrem Open Catalog-Konto. Sie können private Konnektivität für einen neuen oder vorhandenen Katalog aktivieren:
Private Konnektivität für einen neuen Katalog aktivieren¶
Folgen Sie den Anweisungen unter Einen Katalog mit Azure-Speicher erstellen. Stellen Sie sicher, dass der Schalter Private Link für den Katalog aktiviert ist.
Private Konnektivität für einen vorhandenen Katalog aktivieren¶
Melden Sie sich an, um den Katalog zu öffnen.
Wählen Sie im Navigationsmenü die Option Catalogs.
Wählen Sie in der Liste der Kataloge den Katalog aus, für den Sie private Konnektivität aktivieren möchten.
Setzen Sie auf der Registerkarte „Catalog Details“ den Schalter PrivateLink auf aktiviert.
Schritt 5: Private Endpunktverbindung zu Ihrem Speicherkonto genehmigen¶
Um die Verbindung zu genehmigen, müssen Sie zunächst eine Tabelle in Ihrem Katalog erstellen oder in den Katalog laden. Wenn Sie eine dieser Aktionen ausführen, wird in Azure eine Genehmigungsanfrage für die Verbindung des privaten Endpunkts generiert.
Verwenden Sie Ihre Abfrage-Engine, um eine der folgenden Aktionen auszuführen:
Wenn in Ihrem Katalog keine Tabellen gespeichert sind, erstellen Sie eine Tabelle in Ihrem Open Catalog-Konto, indem Sie Ihre Abfrage-Engine verwenden und Daten darin einfügen.
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 beheben, 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.
Führen Sie in Azure die folgenden Schritte aus:
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 diese im Azure-Speicherkonto erstellt, sobald Sie die Anfrage genehmigen.
Problembehandlung¶
Dieser Abschnitt enthält Lösungen für Probleme mit der ausgehenden privaten Konnektivität für den Datenverkehr im Netzwerk.
Das Schema für eine Tabelle kann nicht in Open Catalog angezeigt werden.¶
Symptom
Sie wählen in Open Catalog eine Tabelle in Ihrem Katalog aus (z. B. catalog1
), erhalten aber die folgende Fehlermeldung: „No permissions to access this resource“.
Ursache
Sie haben in Azure erfolgreich die Netzwerkeinstellungen für Ihr Speicherkonto aktualisiert, um den Netzwerkdatenverkehr über Ihren zu VPC-Endpunkt zu leiten. Allerdings haben Sie in Open Catalog keine private Konnektivität für diesen Katalog aktiviert, sodass Open Catalog nicht auf Ihren Bucket zugreifen kann.
Lösung
Aktivieren Sie private Konnektivität für den Katalog (zum Beispiel „catalog1“). Einzelheiten finden Sie unter Private Konnektivität für einen Katalog aktivieren.
Fehlermeldung „Failed to get subscoped credentials“ in der Abfrage-Engine¶
Symptom
Sie versuchen, Daten mithilfe einer Abfrage-Engine zu lesen oder in eine Tabelle zu schreiben, erhalten jedoch die folgende Fehlermeldung: „Failed to get subscoped credentials“.
Ursache
Sie haben Ihr Speicherkonto gesperrt, aber keinen privaten Konnektivitätsendpunkt bereitgestellt oder die private Konnektivität in Ihrem Open Catalog-Konto aktiviert. Folglich kann Open Catalog die beschränkten Anmeldeinformationen nicht generieren und an die Abfrage-Engine zurückgeben, sodass 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 Einen privaten Konnektivitätsendpunkt für ein Speicherkonto bereitstellen.
Wenn Sie für den Katalog noch keine private Konnektivität aktiviert haben, aktivieren Sie private Konnektivität für den Katalog.
„Business Critical“-Fehler beim Ausführen des Befehls SYSTEM$PROVISION_PRIVATELINK_ENDPOINT¶
Symptom
Bei Ihrer Snowflake-CLI-Verbindung haben Sie den Befehl SYSTEM$PROVISION_PRIVATELINK_ENDPOINT
ausgeführt, der aber mit der folgenden Fehlermeldung fehlschlägt: „Business Critical or higher edition is required for this operation. Please upgrade to the valid edition and then retry.“
Ursache
Die Edition für Ihr Open Catalog-Konto ist nicht Business Critical.
Um private Konnektivität für den ausgehenden Netzwerkdatenverkehr zu aktivieren, was die Bereitstellung eines privaten Konnektivitätsendpunkts einschließt, muss die Edition für Ihr Snowflake Open Catalog-Konto „Business Critical“ sein.
Lösung
Wenden Sie sich an den Snowflake-Support, um Unterstützung beim Upgrade Ihres Open Catalog-Kontos auf Business Critical zu erhalten.