Configurer l’accès externe pour Snowflake Notebooks

Par défaut, Snowflake restreint les requêtes de trafic réseau provenant de points de terminaison externes. Pour accéder à des points de terminaison externes, vous devez créer une intégration d’accès réseau externe. Cette rubrique explique comment configurer un accès réseau externe pour votre notebook.

Les intégrations d’accès externes et leurs règles réseau sous-jacentes doivent être créées par un administrateur de l’organisation.

Créer des intégrations d’accès externes (EAI)

Pour créer une intégration d’accès externe pour les notebooks, procédez comme suit :

  1. Créez une règle réseau qui définit un ensemble d’adresses ou de domaines IP à l’aide de la commande CREATE NETWORK RULE.

  2. Créez une intégration d’accès externe qui spécifie la liste des règles réseau autorisées à l’aide de la commande CREATE EXTERNAL ACCESS INTEGRATION.

Note

Seul un ACCOUNTADMIN ou un rôle ayant le privilège de créer des EAIs peut les définir pour des points de terminaison externes spécifiques. Pour obtenir des informations sur les privilèges requis, voir Exigences en matière de contrôle d’accès.

Les exemples suivants montrent comment configurer un accès externe pour les sites de machine learning et de science des données courants.

Créez une intégration d’accès externe pour PyPI :

CREATE OR REPLACE NETWORK RULE pypi_network_rule
MODE = EGRESS
TYPE = HOST_PORT
VALUE_LIST = ('pypi.org', 'pypi.python.org', 'pythonhosted.org',  'files.pythonhosted.org');

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION pypi_access_integration
ALLOWED_NETWORK_RULES = (pypi_network_rule)
ENABLED = true;
Copy

Créez une intégration d’accès externe pour HuggingFace :

CREATE OR REPLACE NETWORK RULE hf_network_rule
MODE = EGRESS
TYPE = HOST_PORT
VALUE_LIST = ('huggingface.co', 'cdn-lfs.huggingface.co');

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION hf_access_integration
ALLOWED_NETWORK_RULES = (hf_network_rule)
ENABLED = true;
Copy

Autorisez tous les accès réseau avec une intégration d’accès externe :

CREATE OR REPLACE NETWORK RULE allow_all_rule
MODE= 'EGRESS'
TYPE = 'HOST_PORT'
VALUE_LIST = ('0.0.0.0:443','0.0.0.0:80');

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION allow_all_integration
ALLOWED_NETWORK_RULES = (allow_all_rule)
ENABLED = true;
Copy

Accorder les privilèges nécessaires à la création d’intégrations d’accès externes

Après avoir créé les EAIs, vous devez accorder le privilège USAGE sur l’intégration à un rôle de compte.

Le rôle utilisé pour créer un EAI en devient le propriétaire. En tant que propriétaire, le rôle a l’exigence d’accorder le privilège USAGE aux autres rôles. Pour accorder des privilèges USAGE sur les intégrations, utilisez les commandes suivantes :

GRANT USAGE ON INTEGRATION pypi_access_integration TO ROLE my_notebook_role;
GRANT USAGE ON INTEGRATION hf_access_integration TO ROLE my_notebook_role;
GRANT USAGE ON INTEGRATION allow_all_integration TO ROLE my_notebook_role;
Copy

Note

Il est important d’accorder le privilège USAGE sur l’intégration au rôle qui crée les notebooks. L’octroi du privilège USAGE au rôle PUBLIC ne fonctionnera pas. Pour une syntaxe détaillée, voir Accès réseau externe.

Activer les intégrations d’accès externes (EAI)

Après avoir créé et provisionné des EAIs, redémarrez la session du notebook afin de voir les intégrations d’accès que vous avez créées dans le volet d’accès externe.

  1. Connectez-vous à Snowsight.

  2. Sélectionnez Projects » Notebooks.

  3. Pour pouvoir accéder à la configuration d’accès externe, sélectionnez Plus d'actions pour la feuille de calcul dans le coin supérieur droit de votre notebook.

  4. Sélectionnez Notebook settings, puis le volet External access.

  5. Dans la liste des intégrations d’accès externes disponibles, sélectionnez les boutons à côté de chaque intégration pour les activer ou les désactiver.

Pour activer les nouvelles intégrations, voir Activer les intégrations d’accès externes (EAI).

Utiliser des secrets avec des intégrations d’accès externes

Dans la plupart des cas, les APIs requièrent une clé d’API. Pour autoriser un accès externe, utilisez SQL pour associer un secret (comme la clé d’API) à votre notebook. Pour associer manuellement un secret à un notebook, utilisez la commande ALTER NOTEBOOK. .. SET SECRETS :

ALTER NOTEBOOK <name>
 SET SECRETS = ('<secret_variable_name>' = <secret_name>);
Copy

Pour récupérer un secret après l’avoir associé à un notebook, voir API Python pour l’accès aux secrets.

Ressources supplémentaires