Utilisation des secrets dans les notebooks dans les espaces de travail¶
Prise en charge des secrets dans les notebooks dans les espaces de travail¶
Les notebooks Snowflake exécutés dans les espaces de travail peuvent utiliser des objets secrets, ainsi que des intégrations d’accès externes (EAIs), pour que les identifiants de connexion n’apparaissent jamais sous forme de littéraux dans le code des notebooks. Vous configurez les secrets et les EAIs en SQL (par exemple, dans une feuille de calcul) ; vous les joignez ensuite au service des notebooks, au planificateur, ou à l’appel EXECUTE NOTEBOOK PROJECT.
Conditions préalables : configuration des secrets et de l’accès externe¶
Avant de pouvoir utiliser des secrets dans un notebook Snowflake, configurez les objets de sécurité sous-jacents et les règles réseau. Ces étapes sont effectuées en dehors du notebook (par exemple, dans une feuille de calcul Snowflake).
Liens de documentation¶
Pour des options de configuration détaillées et des workflows de sécurité, consultez :
CREATE SECRET (types de secrets, syntaxe et exemples)
Vue d’ensemble de l’accès au réseau externe (intégrations d’accès externes et règles réseau)
SYSTEM$START_OAUTH_FLOW et:doc:
/sql-reference/functions/system_finish_oauth_flow(flux d’autorisation OAuth manuel)Exemples d’accès au réseau externe (exemples OAuth avec EAIs)
Configurer l’accès externe pour Snowflake Notebooks (modèles de notebooks pour les APIs externes , dont GitHub)
Configuration de base des secrets¶
Pour utiliser des secrets existants, exécutez SHOW SECRETS (par exemple, SHOW SECRETS IN ACCOUNT;). Pour créer un nouveau secret, utilisez CREATE SECRET.
Note
Remplacez SNOWPUBLIC et NOTEBOOKS dans les exemples par votre base de données et votre schéma.
Les autres types de secrets courants sont les suivants :
PASSWORD, qui nécessite à la foisUSERNAMEetPASSWORD.OAUTH2, utilisé pour les intégrations avec des fournisseurs externes (par exemple, GitHub).
Intégration d’accès externe (EAI)¶
Pour permettre à un notebook d’utiliser des secrets lorsqu’il appelle l’Internet public, connectez une règle réseau et une intégration d’accès externe.
Authentification avancée (OAuth)¶
Pour les fournisseurs basés sur OAuth, créez une :doc:` intégration de sécurité </sql-reference/sql/create-security-integration>` et complétez le flux OAuth manuel en utilisant:doc:SYSTEM$START_OAUTH_FLOW </sql-reference/functions/system_start_oauth_flow> (et SYSTEM$FINISH_OAUTH_FLOW dans la même session). Ce flux permet à Snowflake d’échanger des jetons avec le fournisseur externe. Pour des exemples de bout en bout, consultez Exemples d’accès au réseau externe et Configurer l’accès externe pour Snowflake Notebooks.
Intégration du service des notebooks avec des secrets¶
Vous pouvez sélectionner des secrets dans les boîtes de dialogue créer, modifier et planificateur des notebooks.
Dans le menu de navigation, sélectionnez Projects » Workspaces.
Ouvrez Notebooks, puis démarrez Create service (ou modifiez un service existant).
Dans Service settings, joignez une intégration d’accès externe et sélectionnez un ou plusieurs secrets dans le menu déroulant. Vous pouvez joindre plusieurs secrets.
Vérifiez que le service démarre avec succès, puis utilisez des cellules Python pour lire les secrets avec l’API de secrets Snowpark ou à partir des chemins de montage indiqués dans les exemples suivants.
Note
Si le nom du secret pleinement qualifié contient des caractères spéciaux (par exemple, SNOWPUBLIC.NOTEBOOKS."my secret 1"), Snowflake normalise le chemin d’accès utilisé en Python et dans le conteneur. Les traits d’union, les espaces et les caractères similaires dans le segment nom du secret deviennent des traits de soulignement. Les segments de base de données et de schéma sont insensibles à la casse.
Exemple : SNOWPUBLIC.NOTEBOOKS."my secret 1" est exposé aux aides Python en tant que snowpublic/notebooks/my_secret_1 (ajustez la base de données et le schéma pour les faire correspondre à l’emplacement où le secret est stocké).
Les fichiers secrets sont montés sous /secrets/ à l’intérieur du conteneur fourni par Snowflake. Par exemple, un secret de chaîne générique peut apparaître à l’adresse :
/secrets/snowpublic/notebooks/my_secret_1/secret_string
Remplacez snowpublic et notebooks par la base de données et le schéma qui possèdent vos secrets. La correspondance des noms de base de données, de schéma et de secret est insensible à la casse.
La bibliothèque Snowpark expose différentes aides pour chaque type de secret, comme montré ci-dessous.
Appel de secrets GENERIC_STRING depuis une cellule Python¶
Appel de secrets PASSWORD depuis une cellule Python¶
Appel de secrets OAUTH2 depuis une cellule Python¶
Remplacez _/_/github_secret par le chemin d’accès normalisé pour votre OAuth2 (base de données/schéma/nom), en suivant les mêmes règles que ci-dessus.
Planifier des notebooks avec des secrets¶
Lorsque vous planifiez un notebook à partir de Snowsight, ajoutez les EAIs et les secrets que la tâche planifiée doit utiliser dans la boîte de dialogue de planification, de sorte que l’exécution sans tête hérite du même accès externe et des mêmes identifiants de connexion que le développement interactif.
Exécutions non interactives avec EXECUTE NOTEBOOK PROJECT et secrets¶
Les exécutions sans tête doivent lister les EAIs et les secrets lorsque le notebook en dépend. Transmettez des intégrations avec EXTERNAL_ACCESS_INTEGRATIONS et transmettez des secrets avec SECRETS. Pour la syntaxe complète, consultez EXECUTE NOTEBOOK PROJECT.
Remplacez les espaces réservés par les intégrations et les secrets pleinement qualifiés dont votre notebook a besoin.