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 :
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.
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;
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;
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;
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.
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.
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>);
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¶
Pour une syntaxe détaillée, voir Aperçu de l’accès au 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.