Configuration de Snowflake pour utiliser Git¶
Lorsque vous connectez votre compte Snowflake à un référentiel Git distant, Snowflake crée un référentiel Git clone, en copiant la dernière version de tous les fichiers du référentiel (un clone superficiel) et en stockant des métadonnées sur l’emplacement du référentiel distant, des identifiants de connexion (si nécessaire) et des informations de configuration sur la manière dont Snowflake doit interagir avec l’API du référentiel Git.
Selon vos besoins, en configurant des composants pour l’authentification, l’interaction avec l’API Git et la communication via un lien privé entre Snowflake et votre fournisseur de services Cloud, vous pouvez configurer Snowflake de sorte qu’un référentiel Git distant fasse partie intégrante de votre workflow au sein de Snowflake.
Choisir un modèle de configuration¶
En fonction de vos exigences en matière de réseau et de workflow, vous pouvez configurer Snowflake pour l’accès à un référentiel Git distant de plusieurs manières. La liste suivante présente des exemples de cas d’utilisation, ainsi que les stratégies d’accès au référentiel que vous pouvez utiliser pour les prendre en charge.
Travaillez avec des fichiers sur un référentiel Git grâce à un workflow qui comprend le pull, le push et la création de fichiers.
Envisagez d’utiliser les espaces de travail Snowflake. Si vous utilisez un référentiel sur github.com, vous pouvez vous authentifier avec OAuth.
Référencez des fichiers sur un référentiel Git dans le cadre d’un pipeline de données ou d’un projet ML.
Si un processus scripté doit accéder au référentiel, envisagez de vous authentifier à l’aide d’un jeton.
Commencez par cloner un référentiel public (y compris Snowflake Labs) pour exécuter des scripts ou des fichiers de notebooks.
Vous pouvez utiliser les espaces de travail pour les fichiers
.sql
, les notebooks Snowflake pour les fichiers.ipynb
ou les espaces de travail Snowflake pour les fichiers.py
.
Ce qui suit décrit les options disponibles selon que vous souhaitez accéder via un réseau public ou un réseau privé :
Accès via un réseau public |
Accès via un réseau privé |
---|---|
L”accès via un réseau public vous permet de vous authentifier auprès de votre serveur de référentiel Git distant en utilisant la totalité de la plage IP de déploiement de votre fournisseur Cloud Snowflake (car Snowflake ne fournit pas de plage IP statique).
|
L”accès via un réseau privé vous évite d’autoriser l’accès au serveur Git pour la totalité de la plage IP de déploiement de votre fournisseur Cloud Snowflake. Vous pouvez configurer Snowflake pour établir une connectivité sortante via une connexion de lien privé sortante entre Snowflake et votre infrastructure Cloud. Snowflake achemine le trafic Git via cette connexion vers le serveur du référentiel Git.
|
Configurer Snowflake pour un accès via un réseau public¶
Vous pouvez configurer Snowflake pour accéder à votre référentiel Git via un réseau public. Vous pouvez demander à Snowflake de s’authentifier en utilisant l’une des méthodes suivantes :
-
Configurer une intégration API avec des informations sur le serveur de référentiel Git.
Authentifiez-vous avec un jeton, tel qu’un jeton d’accès personnel.
Configurez un secret contenant le nom d’utilisateur et le jeton à utiliser, puis configurez une intégration API qui permet à Snowflake d’utiliser le secret lors de l’authentification.
Authentifiez-vous par le biais d’un flux OAuth.
Configurer une intégration API pour autoriser l’un des types d’authentification suivants : OAuth2, un jeton d’accès personnel ou pas d’authentification.
Note
L’utilisation de OAuth pour travailler avec un référentiel Git n’est prise en charge qu’à partir d’espaces de travail et uniquement lorsque le référentiel est hébergé sur github.com. Pour plus d’informations, voir Créer un espace de travail Git.
Configurer pour aucune authentification¶

Pour configurer Snowflake afin d’utiliser un référentiel Git sans authentification, procédez comme suit :
Créer une intégration API qui prend en charge l’accès sans authentification, et indiquez les détails suivants :
git_https_api
comme valeur du paramètre API_PROVIDER.Les points de terminaison HTTPS vers lesquels les requêtes doivent être limitées en tant que valeurs du paramètre API_ALLOWED_PREFIXES
Pour plus d’informations, voir CREATE API INTEGRATION.
CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://example.com/my-account') ENABLED = TRUE;
Créez un référentiel Git clone comme décrit dans Créer un référentiel Git Snowflake clone.
Configurer pour l’authentification avec un jeton¶

Pour que Snowflake s’authentifie auprès du référentiel Git à l’aide d’un nom d’utilisateur et d’un jeton tel qu’un jeton d’accès personnel (PAT), procédez comme suit :
Fournissez des identifiants de connexion dans un secret d’authentification de base.
Pour fournir les identifiants de connexion que Snowflake utilise pour s’authentifier auprès du référentiel, créez un secret qui contient les éléments suivants :
Une valeur TYPE de
password
Un nom d’utilisateur et un jeton, comme un jeton d’accès personnel (PAT)
Si votre référentiel Git est hébergé sur Bitbucket, spécifiez
x-token-auth
comme valeur du nom d’utilisateur.Note
Pour plus d’informations sur la création d’un jeton d’accès personnel dans GitHub, voir Gestion de vos jetons d’accès personnels dans la documentation GitHub.
Pour plus d’informations sur la commande SQL pour créer un secret, voir CREATE SECRET.
Le code de l’exemple suivant crée un secret appelé
my_git_secret
avec un nom d’utilisateur et le jeton d’accès personnel de l’utilisateur à utiliser comme identifiants de connexion :CREATE OR REPLACE SECRET my_git_secret TYPE = password USERNAME = 'gladyskravitz' PASSWORD = 'ghp_token';
Créez une intégration API qui prend en charge l’authentification avec un jeton.
Pour créer une intégration API pour l’accès à un référentiel Git sans authentification, indiquez les détails suivants :
git_https_api
comme valeur du paramètre API_PROVIDER.Les points de terminaison HTTPS vers lesquels les requêtes doivent être limitées en tant que valeurs du paramètre API_ALLOWED_PREFIXES
Pour plus d’informations, voir CREATE API INTEGRATION.
CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://github.com/my-account') ALLOWED_AUTHENTICATION_SECRETS = (my_git_secret) ENABLED = TRUE;
Créez un référentiel Git clone comme décrit dans Créer un référentiel Git Snowflake clone.
Configurer pour l’authentification avec OAuth¶
Note
L’utilisation de OAuth pour travailler avec un référentiel Git n’est prise en charge qu’à partir d’espaces de travail et uniquement lorsque le référentiel est hébergé sur github.com. Pour plus d’informations, voir Créer un espace de travail Git.

Pour configurer Snowflake afin qu’il s’authentifie auprès du référentiel Git distant à l’aide d’un flux OAuth, procédez comme suit :
Créer une intégration API qui prend en charge l’authentification via OAuth.
Lorsque vous spécifiez l’authentification avec un flux OAuth2, créez une intégration API qui spécifie ce qui suit :
git_https_api
comme valeur du paramètre API_PROVIDER.Les points de terminaison HTTPS vers lesquels les requêtes doivent être limitées en tant que valeurs du paramètre API_ALLOWED_PREFIXES
Il doit s’agir d’un préfixe à
https://github.com
. L’authentification avec OAuth est prise en charge uniquement pour les référentiels hébergés sur github.com.Une API_USER_AUTHENTICATION dont la valeur est
(TYPE = SNOWFLAKE_GITHUB_APP)
Pour plus d’informations, voir CREATE API INTEGRATION.
Le code de l’exemple suivant crée une intégration d’API appelée
my_git_api_integration
:CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://github.com') API_USER_AUTHENTICATION = (TYPE = SNOWFLAKE_GITHUB_APP) ENABLED = TRUE;
Créez un espace de travail connecté à un référentiel Git comme décrit dans la section Créer un espace de travail Git.
Configurer Snowflake pour un accès via un réseau privé¶
Vous pouvez configurer Snowflake pour établir une connectivité sortante via une connexion de lien privé sortante entre Snowflake et votre infrastructure Cloud. Snowflake achemine le trafic Git via cette connexion vers le serveur du référentiel Git.
Avec une connexion via lien privé, vous évitez d’autoriser l’accès au serveur Git pour la totalité de la plage IP de déploiement de votre fournisseur Cloud Snowflake. Cette section décrit les étapes à un niveau élevé.
Configurez la connexion par lien privé.
Vous appliquerez les modifications de configuration à Snowflake et à votre infrastructure de services Cloud. Cette rubrique décrit les étapes à suivre du côté de Snowflake. Pour en savoir plus sur l’ensemble des étapes, notamment sur la configuration de votre fournisseur de services Cloud, consultez l’article de la base de connaissances Configuration de l’intégration Git avec Snowflake via Private Link.
Note
Snowflake ne prend en charge que les connexions au sein d’un même cloud et d’une même région. Par exemple, si votre déploiement Snowflake se trouve sur AWS dans la région us-west-2, vos autres composants doivent également se trouver dans cette région.
Configurer la connexion par lien privé¶
Avant de pouvoir configurer Snowflake pour l’accès au référentiel Git distant, vous devez configurer un lien privé entre Snowflake et votre fournisseur de services Cloud.
Pour appliquer les modifications de configuration à Snowflake et à votre infrastructure, procédez comme suit :
Dans votre fournisseur de services Cloud, créez un service lien privé pour recevoir des requêtes du service de point de terminaison privé Snowflake.
Pour en savoir plus, consultez l’article de la base de connaissances Configuration de l’intégration Git avec Snowflake via Private Link.
Dans Snowflake, fournissez un point de terminaison privé qui atteindra votre infrastructure via une adresse IP privée.
Pour fournir le point de terminaison, utilisez la fonction SYSTEM$PROVISION_PRIVATELINK_ENDPOINT avec les deux arguments suivants :
ID du service de lien privé de votre fournisseur Cloud
Nom de domaine de votre serveur Git
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( 'com.amazonaws.vpce.us-west-2.vpce-svc-xxx', // VPC Endpoint Service Name 'git_address.com' // Git server domain );
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '/subscriptions/9217bbdd-434e-4dbb-97c2-0825c627a277/resourceGroups/git-server_group/providers/Microsoft.Network/privateLinkServices/git-server-pl-service', // Private Service ID 'git_address.com' // Git server domain );
Dans votre fournisseur de services Cloud, acceptez la configuration du point de terminaison privé Snowflake pour terminer la configuration de la connexion par lien privé.
Pour vérifier l’état du provisionnement, appelez la fonction système SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO.
Configurer l’accès de Snowflake au référentiel Git distant¶
Après avoir configuré un lien privé entre Snowflake et votre fournisseur de services Cloud, vous pouvez configurer l’accès de Snowflake au référentiel Git distant.
Créez une intégration API qui prend en charge l’authentification avec un certificat.
Étant donné que Snowflake accédera à votre serveur Git à l’aide du protocole HTTPS, le nom de domaine doit disposer d’un certificat valide. La configuration que vous utilisez diffère selon que vous utilisez un certificat auto-signé ou un certificat signé par une autorité de certification.
Utiliser un certificat auto-signé :
Fournissez des identifiants de connexion dans un secret de chaîne générique.
Il doit s’agir d’une clé publique d’un domaine auto-signé pour établir une connexion HTTPS. Pour fournir à Snowflake les identifiants de connexion qu’il utilisera pour s’authentifier auprès du serveur, créez un secret contenant les informations suivantes :
Une valeur de paramètre TYPE de
GENERIC_STRING
Une chaîne de certificats publics comme valeur de paramètre SECRET_STRING
Pour la valeur du paramètre, spécifiez une chaîne secrète, telle qu’un organisme de certification public.
CREATE OR REPLACE SECRET my_public_certificate TYPE = GENERIC_STRING SECRET_STRING = '-----BEGIN CERTIFICATE----- <certificate_body> -----END CERTIFICATE-----';
Créez une intégration API pour intégrer l’API Git, et indiquez les détails suivants :
Un paramètre API_PROVIDER défini sur
git_https_api
Un paramètre API_ALLOWED_PREFIXES défini sur l’URL de base en fonction de laquelle l’accès est autorisé
Un paramètre USE_PRIVATELINK_ENDPOINT défini sur
TRUE
Un paramètre TLS_TRUSTED_CERTIFICATES défini sur le nom du secret que vous avez créé, qui contient le certificat
Pour plus d’informations, voir CREATE API INTEGRATION.
CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://example.com/my-account') ALLOWED_AUTHENTICATION_SECRETS = ALL USE_PRIVATELINK_ENDPOINT = TRUE TLS_TRUSTED_CERTIFICATES = (my_public_certificate) ENABLED = TRUE;
Utilisez un certificat signé par une autorité de certification :
Créez une intégration API pour intégrer l’API Git, et indiquez les détails suivants :
Un paramètre API_PROVIDER défini sur
git_https_api
Un paramètre API_ALLOWED_PREFIXES défini sur l’URL de base en fonction de laquelle l’accès est autorisé
Un paramètre USE_PRIVATELINK_ENDPOINT défini sur
TRUE
Un paramètre TLS_TRUSTED_CERTIFICATES défini sur le nom du secret que vous avez créé, qui contient le certificat
Pour plus d’informations, voir CREATE API INTEGRATION.
CREATE OR REPLACE API INTEGRATION my_git_api_integration API_PROVIDER = git_https_api API_ALLOWED_PREFIXES = ('https://example.com/my-account') ALLOWED_AUTHENTICATION_SECRETS = ALL USE_PRIVATELINK_ENDPOINT = TRUE ENABLED = TRUE;
Fournissez des identifiants de connexion dans un secret d’authentification de base.
Après vous être connecté avec succès au serveur Git via un lien privé, vous devez encore vous authentifier auprès du référentiel en créant un autre secret qui fournit des identifiants de connexion pour le référentiel.
Pour fournir les identifiants de connexion que Snowflake utilise pour s’authentifier auprès du référentiel, créez un secret qui contient les éléments suivants :
Une valeur TYPE de
password
Un nom d’utilisateur et un jeton, comme un jeton d’accès personnel (PAT)
Note
Pour plus d’informations sur la création d’un jeton d’accès personnel dans GitHub, voir Gestion de vos jetons d’accès personnels dans la documentation GitHub.
Pour plus d’informations sur la commande SQL pour créer un secret, voir CREATE SECRET.
Créez un référentiel Git clone comme décrit dans Créer un référentiel Git Snowflake clone.
Créer un référentiel Git Snowflake clone¶
Pour configurer Snowflake afin qu’il fonctionne avec un référentiel Git distant, créez un clone de référentiel Git dans Snowflake qui contiendra les fichiers récupérés du référentiel distant.
Note
Avant de commencer les étapes décrites dans cette section, pensez à d’abord configurer les composants dont vous pourriez avoir besoin, notamment un secret (si le référentiel distant nécessite une authentification), une intégration API et une connexion par lien privée entre Snowflake et votre fournisseur de services Cloud.
Note
Pour plus d’informations sur la création d’un espace de travail Git dans Snowsight, voir Créer un espace de travail Git.
Un référentiel Git clone dans Snowflake spécifie les détails suivants :
L’origine du référentiel distant
Dans Git, l”
origin
est l’URL du référentiel distant. Utilisez cette URL lorsque vous configurez Snowflake pour utiliser un référentiel Git distant. L’URL doit utiliser HTTPS. Par exemple, vous pouvez récupérer l’URL d’origine de la manière suivante :Dans l’interface utilisateur GitHub, pour obtenir l’URL d’origine à partir de la page d’accueil du référentiel, sélectionnez le bouton Code, puis copiez l’URL HTTPS dans la zone affichée sous le bouton.
À partir de la ligne de commande, utilisez la commande
git config
dans votre référentiel local, comme dans l’exemple suivant :$ git config --get remote.origin.url
La commande génère une sortie telle que la suivante :
https://github.com/my-account/snowflake-extensions.git
Pour obtenir des informations de référence sur
git config
, consultez la documentation git.
Les identifiants de connexion, si nécessaire, que Snowflake doit utiliser lors de l’authentification avec le référentiel
Pour le paramètre GIT_CREDENTIALS, spécifiez un secret Snowflake que vous avez créé.
Une intégration d’API spécifiant les détails de l’interaction de Snowflake avec l’API du référentiel
Vous pouvez créer un clone de référentiel Git en utilisant Snowsight ou SQL.
Note
Avant de créer un référentiel Git clone, vous devrez créer un secret (si le référentiel distant nécessite une authentification) et une intégration API.
Le code de l’exemple suivant crée un référentiel Git clone appelé snowflake_extensions
. Le clone spécifie l’intégration API my_git_api_integration
et le secret my_git_secret
avec les identifiants de connexion pour l’authentification.
USE ROLE ACCOUNTADMIN;
GRANT CREATE GIT REPOSITORY ON SCHEMA myco_db.integrations TO ROLE myco_git_admin;
USE ROLE myco_git_admin;
CREATE OR REPLACE GIT REPOSITORY snowflake_extensions
API_INTEGRATION = my_git_api_integration
GIT_CREDENTIALS = my_git_secret
ORIGIN = 'https://github.com/my-account/snowflake-extensions.git';
Note
Pour plus d’informations sur la création d’un espace de travail Git dans Snowsight, voir Créer un espace de travail Git.
Connectez-vous à Snowsight.
Dans le menu de navigation, sélectionnez Data » Databases.
Dans l’explorateur d’objets, sélectionnez la base de données et le schéma qui doivent contenir le clone du référentiel Git que vous êtes en train de créer.
Sélectionnez Create » Git Repository.
Dans la boîte de dialogue Create Git Repository, pour Repository Name, saisissez un nom qui identifiera de manière unique ce clone de référentiel dans le schéma.
Pour connaître les règles d’attribution des noms, voir Exigences relatives à l’identificateur.
Pour Origin, entrez l’URL d’origine du référentiel distant.
Dans le menu déroulant API Integration, sélectionnez l’intégration API à laquelle il faut faire référence lors de la création du clone du référentiel Git.
Si vous n’avez pas d’intégration d’API à utiliser, sélectionnez Create new API integration in Worksheets pour utiliser SQL afin d’en créer une. Pour plus d’informations, voir CREATE API INTEGRATION.
Facultatif : pour Comment, saisissez un texte décrivant cette intégration pour les autres.
Facultatif : Si le référentiel distant requiert une authentification, définissez l’option Authentication sur la position _on_.
Si vous avez activé le bouton bascule, dans le menu Secret, sélectionnez le secret qui doit être référencé par l’intégration Git pour s’authentifier auprès du référentiel distant.
Si vous n’avez pas de secret à utiliser, sélectionnez Create new secret in Worksheets pour utiliser SQL afin d’en créer un. Pour plus d’informations, voir CREATE SECRET.
Sélectionnez Create.
Lorsque vous avez réussi à créer l’intégration, le clone du référentiel Git apparaît sous le schéma, dans un répertoire Git Repositories. Vous verrez également une page qui dresse la liste des répertoires, des branches et des balises du référentiel.