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.
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 ALTER NOTEBOOK … SET SECRETS :
ALTER NOTEBOOK <name>
SET SECRETS = ('<secret_variable_name>' = <secret_name>);
Pour récupérer un secret après l’avoir associé à un notebook, voir API Python pour l’accès aux secrets.
Activer des intégrations d’accès externes (EAI) existantes¶
Note
Cette opération doit être exécutée via le rôle ACCOUNTADMIN.
Connectez-vous à Snowsight.
Sélectionnez Projects » Notebooks.
Pour pouvoir accéder à la configuration d’accès externe, sélectionnez
dans le coin supérieur droit de votre notebook.
Sélectionnez Notebook settings , puis le volet External access.
Vous verrez apparaître une liste des intégrations d’accès externes à votre disposition. Vous pouvez sélectionner les bascules en regard de chaque intégration pour les activer ou les désactiver.
Provisionner une intégration d’accès externe¶
Les intégrations d’accès externes, ainsi que leurs règles réseau sous-jacentes, doivent être créées et provisionnées par un administrateur d’entreprise.
Créer une intégration d’accès externe¶
La création d’une intégration d’accès externe pour notebooks comporte deux étapes.
Créez une règle réseau pour définir un ensemble d’adresses IP ou de domaines via la commande CREATE NETWORK RULE.
Créez une intégration d’accès externe pour spécifier la liste autorisée de règles réseau via la commande CREATE EXTERNAL ACCESS INTEGRATION.
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;
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;
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;
Provisionner une intégration d’accès externe¶
Après avoir créé les EAIs, vous devez accorder le privilège USAGE sur l’intégration à un rôle de compte.
Vous pouvez accorder le privilège USAGE sur les intégrations via 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;
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¶
Après avoir créé et provisionné des EAIs, assurez-vous de redémarrer la session du notebook. Vous devriez maintenant voir les intégrations d’accès que vous avez créées dans le volet d’accès externe. Pour activer les nouvelles intégrations, voir Activer des intégrations d’accès externes (EAI) existantes.
Ressources supplémentaires¶
Pour une syntaxe détaillée, voir Accès réseau externe.
Pour des exemples supplémentaires d’EAIs, voir Exemples d’accès au réseau externe ou Configuration d’un accès externe pour Snowflake Notebooks sur Github.