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, siehe Suchen 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>), siehe Den 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
    
    Copy

    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                                                   |
    +------------------------------------------------------------------------------+
    
    Copy

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>_.

  1. Folgen Sie diesem Beispiel, in dem die Verbindung myopencatalogconnection als Standard eingestellt ist:

    snow connection set-default myopencatalogconnection
    
    Copy
  2. 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();"
    
    Copy

    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 |
    +-----------------------+
    
    Copy

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:

  1. Um einen privaten Konnektivitätsendpunkt des Kontos bereitzustellen, rufen Sie die Systemfunktion SYSTEM$PROVISION_PRIVATELINK_ENDPOINT auf.

  2. 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 Beispiel snow 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'
);
Copy

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'
);
Copy

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

  1. Melden Sie sich an, um den Katalog zu öffnen.

  2. Wählen Sie im Navigationsmenü Kataloge.

  3. Wählen Sie in der Liste der Kataloge den Katalog aus, für den Sie die private Konnektivität aktivieren möchten.

  4. 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.

  1. 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.

  2. Gehen Sie in Azure folgendermaßen vor:

    1. Navigieren Sie zu den Netzwerkeinstellungen für Ihr Speicherkonto.

    2. 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: