Gérer les points de terminaison de la connectivité privée pour Snowflake Open Catalog : Azure

Suivez ces étapes pour configurer la connectivité privée sortante pour le trafic réseau sortant où les données de vos catalogues sont stockées dans le stockage Cloud Azure.

Conditions préalables

  • Votre compte Open Catalog et votre stockage Cloud externe doivent tous deux être hébergés sur Azure.

  • Vous avez besoin d’autorisations pour définir les règles de pare-feu de vos comptes de stockage Azure afin d’autoriser les demandes qui sont acheminées vers des points de terminaison de connectivité privée spécifiques.

  • Votre moteur de requête tiers ou votre moteur Snowflake doit avoir accès à votre stockage Azure via Azure Private Link. Voici les options permettant d’accorder cet accès :

    • Utiliser des points de terminaison privés pour le stockage Azure. Pour les instructions, voir Utiliser des points de terminaison privés pour le stockage Azure dans la documentation Azure.

    • Utiliser un point de terminaison de service Azure.

    • Modifier les paramètres du pare-feu pour ajouter l’adresse IP pour la machine sur laquelle le moteur de requête s’exécute.

    Sinon, lorsque vous activez la connectivité privée sortante, le moteur ne peut pas lire ou écrire dans les tables stockées dans le compartiment, et Open Catalog ne peut pas lire ou écrire de métadonnées dans le compartiment.

Étape 1 : Créer une connexion CLI Snowflake pour Open Catalog

Pour configurer une connectivité privée dans Open Catalog, vous avez besoin d’une connexion CLI Snowflake pour Open Catalog. Suivez les étapes suivantes pour créer cette connexion. Si la CLI Snowflake n’a pas encore été installée, voir installation de la CLI Snowflake.

Avant de commencer

Pour créer une connexion CLI Snowflake pour Open Catalog, vous avez besoin de votre identificateur de compte Open Catalog complet. L’identificateur du compte comprend le nom de votre organisation Snowflake et le nom de votre compte Open Catalog ; par exemple, <orgname>.<my-snowflake-open-catalog-account-name>.

  • Pour trouver le nom de votre organisation Snowflake (<orgname>), voir Recherche de l'organisation et du nom de compte pour un compte <https://docs.snowflake.com/en/user-guide/admin-account-identifier.html#label-account-name-find>_.

  • Pour trouver votre nom de compte Snowflake Open Catalog (<my-snowflake-open-catalog-account-name>), voir Rechercher le nom d’un compte Snowflake Open Catalog <https://other-docs.snowflake.com/en/opencatalog/find-account-name>_.

Important

Pour créer cette connexion, vous devez être un utilisateur Open Catalog disposant de privilèges d’administrateur de service. Pour plus d’informations sur les privilèges d’administrateur de service, voir Rôle d’administrateur de service.

Ajouter une connexion CLI Snowflake pour Snowflake Open Catalog

Ajoutez une connexion pour le compte Snowflake Open Catalog dans lequel vous souhaitez activer la connectivité privée.

  • Ajoutez une connexion <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#add-a-connection>_ avec les valeurs suivantes : Pour tous les autres paramètres, appuyez sur Entrée pour ne pas spécifier de valeur pour le paramètre.

    Paramètres de configuration de la connexion

    Valeur

    Nom de cette connexion

    Spécifiez un nom pour la connexion ; par exemple, myopencatalogconnection.

    Nom du compte

    Indiquez le nom de votre organisation Snowflake, suivi du nom de votre compte Open Catalog, au format :

    <orgname>-<my-snowflake-open-catalog-account-name>.

    Par exemple, ABCDEFG-MYACCOUNT1.

    Pour trouver ces noms, voir Avant de commencer_.

    Nom d’utilisateur

    Indiquez votre nom d’utilisateur pour Open Catalog ; par exemple, jsmith.

    Mot de passe [facultatif]

    Ce paramètre n’est pas facultatif lorsque vous créez une connexion pour Open Catalog.

    Saisissez votre mot de passe pour Open Catalog ; par exemple, MyPassword123456789.

    Rôle pour la connexion [facultatif]

    Ce paramètre n’est pas facultatif lorsque vous créez une connexion pour Open Catalog.

    Vous devez saisir POLARIS_ACCOUNT_ADMIN.

Test de la connexion CLI Snowflake

  • Pour tester votre connexion CLI, suivez cet exemple, qui teste la connexion pour myopencatalogconnection :

    snow connection test -c myopencatalogconnection
    
    Copy

    La réponse devrait ressembler à ceci :

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

Définir votre connexion CLI Snowflake pour Snowflake Open Catalog par défaut

Pour que la connexion que vous utilisez toujours dispose du rôle POLARIS_ACCOUNT_ADMIN qui lui a été accordé, vous pouvez définir la connexion CLI Snowflake que vous avez créée pour Open Catalog comme connexion par défaut. Pour plus d’informations sur la connexion par défaut, voir Définir la connexion par défaut <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#set-the-default-connection>_.

  1. Suivez cet exemple, qui définit la connexion myopencatalogconnection par défaut :

    snow connection set-default myopencatalogconnection
    
    Copy
  2. Pour confirmer que vous utilisez le bon utilisateur et le bon rôle, exécutez la commande suivante :

    snow sql -q "Select current_user(); select current_role();"
    
    Copy

    La réponse doit renvoyer votre nom d’utilisateur Open Catalog et le ROLE CURRENT devrait être POLARIS_ACCOUNT_ADMIN.

    +----------------+
    | CURRENT_USER() |
    |----------------|
    | JSMITH        |
    +----------------+
    select current_role();
    +-----------------------+
    | CURRENT_ROLE()        |
    |-----------------------|
    | POLARIS_ACCOUNT_ADMIN |
    +-----------------------+
    
    Copy

Étape 2 : Fournir un point de terminaison de connexion privée pour un compte de stockage

Vous devez fournir un point de terminaison de connexion privée pour chaque compte de stockage que vous souhaitez utiliser avec votre compte Open Catalog.

Note

Si vous fournissez un point de terminaison de connexion privée pour un compte de stockage Data Lake Storage (et non un compte de stockage blob), vous devez fournir deux points de terminaison de connexion privée. L’un de ces points de terminaison est pour le point de terminaison DFS, et l’autre pour le point de terminaison blob. Pour un exemple, voir Fourniture de points de terminaison de connexion privée pour un compte de stockage Data Lake Storage.

Utiliser votre connexion CLI Snowflake pour Open Catalog afin d’appeler les fonctions système suivantes :

  1. Pour fournir un point de terminaison de connexion privée pour le compte de stockage, appelez la fonction système SYSTEM$PROVISION_PRIVATELINK_ENDPOINT.

  2. Pour confirmer que le point de terminaison de connexion privée est prêt à être utilisé, appelez la fonction système SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO.

Pour obtenir des instructions, voir Gestion des points de terminaison de la connexion privée : Azure dans la documentation Snowflake. N’oubliez pas que les instructions font référence à un compte Snowflake au lieu d’un compte Snowflake Open Catalog, mais le processus est le même dans Open Catalog.

Important

  • Vous devez utiliser le rôle POLARIS_ACCOUNT_ADMIN au lieu du rôle ACCOUNTADMIN mentionné dans les instructions.

  • Si la connexion CLI Snowflake par défaut que vous avez définie n’a pas le rôle POLARIS_ACCOUNT_ADMIN accordé, vous devez inclure l’instruction suivante avec votre commande : USE ROLE POLARIS_ACCOUNT_ADMIN;.

  • Avec votre commande, vous devez insérer une barre oblique immédiatement avant $ pour l’échapper. Par exemple, snow sql -q "SELECT SYSTEM\$GET_PRIVATELINK_CONFIG();".

Exemple : Fournir des points de terminaison de connexion privée pour un compte de stockage Data Lake Storage

Si vous utilisez un compte de stockage Data Lake Storage pour stocker vos tables Iceberg, vous devez fournir deux points de terminaison de connexion privée pour le compte. Pour plus d’informations, voir Création d’un point de terminaison privé dans la documentation Azure .

Par exemple :

Fournir un point de terminaison privé pour le point de terminaison blob

SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
'/subscriptions/mysubscriptionid/resourceGroups/mystorage/providers/Microsoft.Storage/storageAccounts/storagedemo',
  'storagedemo.blob.core.windows.net',
  'blob'
);
Copy

Fournir un point de terminaison privé pour le point de terminaison DFS

SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
'/subscriptions/mysubscriptionid/resourceGroups/mystorage/providers/Microsoft.Storage/storageAccounts/storagedemo',
  'storagedemo.dfs.core.windows.net',
  'dfs'
);
Copy

Étape 3 : Configurer l’accès au réseau public de votre compte de stockage

Dans Azure, naviguez jusqu’aux paramètres réseau de votre compte de stockage et configurez l’accès au réseau public qui y est associé. Vous pouvez configurer cet accès comme l’un des éléments suivants :

  • Désactiver tous les accès au réseau public

  • Désactiver tous les accès au réseau public à l’exception des réseaux virtuels et des adresses IP que vous spécifiez

Pour plus d’informations, voir Configurer les pare-feu et les réseaux virtuels Azure Storage dans la documentation Azure.

Étape 4 : Activer la connexion privée pour un catalogue

Dans cette étape, vous activez la connexion privée pour un catalogue dans votre compte Open Catalog. Vous pouvez activer la connexion privée pour un catalogue nouveau ou existant :

Activer la connexion privée pour un nouveau catalogue

Suivez les instructions dans Création d’un catalogue à l’aide d’Azure Storage. Assurez-vous que, pour le catalogue, le bouton bascule Private Link est Activé.

Activer la connexion privée pour un catalogue existant

  1. Connectez-vous à Open Catalog.

  2. Dans le menu de navigation, sélectionnez Catalogs.

  3. Dans la liste des catalogues, sélectionnez le catalogue pour lequel vous souhaitez activer la connectivité privée.

  4. Dans l’onglet Détails du catalogue, définissez le bouton bascule PrivateLink sur Activé.

Étape 5 : Approuver une connexion de point de terminaison privé à votre compte de stockage

Pour approuver la connexion, vous devez commencer par créer ou charger une table dans votre catalogue. L’exécution de l’une de ces actions génère une demande d’approbation de connexion de point de terminaison privé dans Azure.

  1. Utilisez votre moteur de requête pour effectuer l’une des opérations suivantes :

    • Si aucune table n’est stockée dans votre catalogue, pour créer une table dans votre compte Open Catalog , utilisez votre moteur de requête et insérez-y des données.

    • Si une table est stockée dans votre catalogue, essayez de charger la table.

    Note

    Si vous ne pouvez pas insérer de données dans la table, vous n’avez peut-être pas configuré Azure Private Link pour le moteur de requête ; si c’est le cas, votre moteur de requête n’est pas connecté au catalogue via Azure Private Link. Pour résoudre ce problème, configurez Azure Private Link pour le moteur de requête. Pour plus d’informations, voir Utiliser des points de terminaison privés pour le stockage Azure et Tutoriel : Connectez-vous à un compte de stockage à l’aide d’un point de terminaison privé Azure dans la documentation Azure.

  2. Dans Azure, suivez les étapes suivantes :

    1. Naviguez jusqu’aux paramètres réseau de votre compte de stockage.

    2. Approuvez la demande de connexion pour le point de terminaison privé. Si vous avez créé une table, elle est créée dans le compte de stockage Azure lorsque vous approuvez la requête.

Résolution des problèmes

Cette section fournit des solutions de dépannage pour les problèmes liés à la connexion privée sortante pour le trafic réseau.

Impossible d’afficher le schéma d’une table dans Open Catalog

Symptôme

Dans Open Catalog, vous sélectionnez une table dans votre catalogue (par exemple, catalogue1) mais vous recevez le message d’erreur suivant : « Pas d’autorisations pour accéder à cette ressource ».

Cause

Dans Azure, vous avez réussi à mettre à jour les paramètres réseau de votre compte de stockage pour acheminer le trafic réseau via votre point de terminaison VPC. Cependant, dans Open Catalog, vous n’avez pas activé la connexion privée pour ce catalogue, donc Open Catalog ne peut pas accéder à votre compartiment.

Solution

Activez la connexion privée pour le catalogue (par exemple, catalogue1). Pour plus de détails, voir Activer la connexion privée pour un catalogue.

Réception d’un message d’erreur « Échec de l’obtention des identifiants de connexion attribués » dans le moteur de requête

Symptôme

Vous tentez de lire ou d’écrire des données dans une table en utilisant un moteur de requête, mais vous recevez le message d’erreur suivant : « Échec de l’obtention des identifiants de connexion attribués ».

Cause

Vous avez verrouillé votre compte de stockage, mais n’avez pas fourni le point de terminaison de connexion privée ou activé la connectivité privée dans votre compte Open Catalog. Par conséquent, Open Catalog ne peut pas générer les identifiants de connexion attribués et les renvoyer au moteur de requête, donc votre moteur de requête ne peut pas accéder au stockage.

Solution

Suivez les étapes suivantes :