Google Cloud Private Service Connect et Snowflake

Cette rubrique décrit les concepts et la manière de configurer Google Cloud Private Service Connect pour connecter votre sous-réseau de réseau Google Cloud Virtual Private Cloud (VPC) à votre compte Snowflake hébergé sur Google Cloud sans passer par l’Internet public.

Notez que Google Cloud Private Service Connect est et non un service fourni par Snowflake. Il s’agit d’un service Google que Snowflake permet d’utiliser avec votre compte Snowflake.

Vue d’ensemble

Google Cloud Private Service Connect fournit une connectivité privée à Snowflake en s’assurant que l’accès à Snowflake se fait via une adresse IP privée. Snowflake apparaît comme une ressource dans votre réseau (c’est-à-dire le réseau du client), mais le trafic circule à sens unique de votre VPC vers Snowflake VPC via le réseau principal Google. Cette configuration simplifie considérablement la configuration du réseau tout en assurant une communication sécurisée et privée.

Le diagramme suivant résume l’architecture de Google Cloud Private Service Connect en tenant compte du Google Cloud VPC du client et le service Snowflake.

Vue d'ensemble de l'architecture

Le Google Compute Engine (c’est-à-dire une machine virtuelle) se connecte à une adresse IP privée et virtuelle qui est dirigée vers une règle de transfert (1). La règle de transfert se connecte à la pièce jointe du service par le biais d’une connexion privée (2). La connexion est acheminée par un équilibreur de charge (3) qui redirige vers Snowflake (4).

Limitations

Autoriser Private Service Connect pour votre compte

Cette section décrit comment autoriser Snowflake à accepter le trafic réseau via Private Service Connect.

  1. Connectez-vous au compte Google Cloud qui a accès au projet que vous envisagez d’autoriser. Vous pouvez utiliser votre environnement Google Cloud CLI pour exécuter les opérations suivantes :

    gcloud auth login
    
    Copy

    Si vous souhaitez vérifier le compte courant, exécutez les opérations suivantes :

    gcloud auth list
    
    Copy
  2. Utilisez Google Cloud CLI pour créer un jeton d’accès en exécutant la commande suivante :

    gcloud auth print-access-token
    
    Copy

    Cette commande génère un jeton d’accès pour votre compte Google Cloud. Par défaut, le jeton expire au bout d’une heure. Si vous devez autoriser, vérifier ou révoquer l’autorisation pour Private Service Connect après l’expiration du jeton, vous devrez répéter cette étape pour générer un nouveau jeton.

    Si vous disposez d’un compte de service pour le projet Google Cloud, vous pouvez générer un jeton d’accès de courte durée à la place, mais assurez-vous que la durée de vie du jeton est suffisamment longue pour terminer ces étapes de configuration.

  3. En tant qu’administrateur de compte Snowflake (c’est-à-dire un utilisateur ayant le rôle système ACCOUNTADMIN), appelez la fonction SYSTEM$AUTHORIZE_PRIVATELINK pour autoriser (c’est-à-dire activer) Private Service Connect pour votre compte Snowflake. La syntaxe de cette fonction pour Private Service Connect est la suivante :

    SELECT SYSTEM$AUTHORIZE_PRIVATELINK ( '<gcp_project_id>' , '<access_token>' )
    
    Copy

    Où :

    • gcp_project_id est l’ID du projet Google Cloud à partir duquel vous planifiez de créer des points de terminaison et de vous connecter à Snowflake en toute sécurité.

    • access_token est le jeton d’accès que vous avez généré lors d’une étape précédente de cette procédure de configuration.

    Par exemple :

    USE ROLE ACCOUNTADMIN;
    
    SELECT SYSTEM$AUTHORIZE_PRIVATELINK (
     'my-gcp-project-id',
     'ya29.a0AcM612zT4pJaXdYfwgY8aiMoDE9W_xkqQ20coFTB1TJcImKDPo...'
    );
    
    Copy
  4. Appelez la fonction SYSTEM$GET_PRIVATELINK pour vérifier que Private Service Connect a été correctement autorisé pour votre compte Snowflake. Transmettez les mêmes arguments que ceux que vous avez utilisés pour l’autorisation. Par exemple :

    SELECT SYSTEM$GET_PRIVATELINK(
     'my-gcp-project-id',
     'ya29.a0AcM612zT4pJaXdYfwgY8aiMoDE9W_xkqQ20coFTB1TJcImKDPo...'
    );
    
    Copy

    Snowflake renvoie Account is authorized for PrivateLink si le compte est autorisé pour Private Service Connect.

Configurer votre environnement Google Cloud VPC

Cette section couvre les détails spécifiques à Snowflake pour la configuration de votre environnement Google Cloud VPC.

Important

Snowflake n’est pas responsable de la configuration de votre environnement Google Cloud. Cette procédure présente les bases de l’utilisation de Google Cloud CLI, mais ne constitue pas un guide définitif. Par exemple :

  • Vous pouvez utiliser Google Cloud console pour configurer votre environnement Google Cloud au lieu de Google Cloud CLI, choix qui changerait les étapes. Par exemple, lorsque vous utilisez Google Cloud console, vous créez un point de terminaison et non une règle de transfert.

  • Il ne vous montre pas comment configurer les mises à jour requises du pare-feu et les enregistrements DNS.

  • Il ne vous montre pas comment rendre un point de terminaison disponible dans d’autres régions (les points de terminaison de Private Service Connect sont des ressources régionales). Pour plus d’informations sur la mise à disposition d’un point de terminaison dans d’autres régions, consultez la documentation Google.

Pour obtenir de l’aide supplémentaire, contactez votre administrateur interne Google Cloud.

  1. En tant qu’administrateur de compte Snowflake (c’est-à-dire un utilisateur ayant le rôle système ACCOUNTADMIN), ouvrez une feuille de calcul et appelez la fonction SYSTEM$GET_PRIVATELINK_CONFIG. Vous devez enregistrer la sortie pour les étapes suivantes.

    Par exemple :

    USE ROLE ACCOUNTADMIN;
    
    SELECT key, value FROM TABLE(flatten(input=>parse_json(system$get_privatelink_config())));
    
    Copy
  2. Utilisez Google Cloud CLI pour mettre à jour la bibliothèque gcloud vers la dernière version :

    gcloud components update
    
    Copy
  3. Authentifiez auprès de Google Cloud à l’aide de la commande suivante :

    gcloud auth login
    
    Copy
  4. Dans votre Google Cloud VPC, définissez l’ID de projet dans lequel la règle de transfert doit se trouver.

    gcloud config set project <project_id>
    
    Copy

    Pour obtenir une liste d’IDs de projets, exécutez la commande suivante :

    gcloud projects list --sort-by=projectId
    
    Copy
  5. Dans votre Google Cloud VPC, créez une adresse IP virtuelle :

    gcloud compute addresses create <customer_vip_name> \
    --subnet=<subnet_name> \
    --addresses=<customer_vip_address>
    --region=<region>
    
    Copy

    Où :

    • customer_vip_name spécifie le nom de la règle IP virtuelle (par exemple, psc-vip-1).

    • subnet_name indique le nom du sous-réseau.

    • customer_vip_address spécifie une adresse IP qui résout toutes les URLs de connectivité privée. Spécifiez une adresse IP de votre réseau ou utilisez la notation CIDR pour spécifier une plage d’adresses IP.

    • region spécifie la région du Cloud où votre compte Snowflake est situé.

    Par exemple :

    gcloud compute addresses create psc-vip-1 \
    --subnet=psc-subnet \
    --addresses=192.168.3.3 \
    --region=us-central1
    
    Copy

    Sortie :

    Created [https://www.googleapis.com/compute/v1/projects/docstest-123456/regions/us-central1/addresses/psc-vip-1].
    
  6. Créez une règle de redirection pour que la route de votre sous-réseau soit dirigée vers le point de terminaison de Private Service Connect, puis vers le point de terminaison de service Snowflake.

    gcloud compute forwarding-rules create <name> \
    --region=<region> \
    --network=<network_name> \
    --address=<customer_vip_name> \
    --target-service-attachment=<privatelink-gcp-service-attachment>
    
    Copy

    Où :

    • name spécifie le nom de la règle de transfert.

    • region spécifie la région du Cloud où votre compte Snowflake est situé.

    • network_name spécifie le nom du réseau pour cette règle de transfert.

    • customer_vip_name spécifie la valeur du <nom> (c’est-à-dire psc-vip-1) de l’adresse IP virtuelle créée à l’étape précédente.

    • privatelink-gcp-service-attachment spécifie le point de terminaison du service Snowflake, que vous avez obtenu lors de l’exécution de la fonction SYSTEM$GET_PRIVATELINK_CONFIG dans une étape précédente.

    Par exemple :

    gcloud compute forwarding-rules create test-psc-rule \
    --region=us-central1 \
    --network=psc-vpc \
    --address=psc-vip-1 \
    --target-service-attachment=projects/us-central1-deployment1-c8cc/regions/us-central1/serviceAttachments/snowflake-us-central1-psc
    
    Copy

    Sortie :

    Created [https://www.googleapis.com/compute/projects/mdlearning-293607/regions/us-central1/forwardingRules/test-psc-rule].
    
  7. Utilisez la commande suivante pour vérifier que la règle de transfert a été créée avec succès :

    gcloud compute forwarding-rules list --regions=<region>
    
    Copy

    Où :

    • region est la région du Cloud où votre compte Snowflake est situé. Par exemple, si votre compte Snowflake est situé dans la région europe-west2 , remplacez <région> par europe-west2.

    Pour obtenir la liste des régions Google Cloud et leur formatage, voir Afficher la liste des régions disponibles.

  8. Mettez à jour vos paramètres DNS.

    Toutes les requêtes adressées à Snowflake doivent être routées via le point de terminaison Private Service Connect afin que les URLs renvoyées par la fonction SYSTEM$GET_PRIVATELINK_CONFIG corresponde à l’adresse VIP que vous avez créée (<customer_vip_address>).

    Les valeurs à obtenir à partir de la sortie de SYSTEM$GET_PRIVATELINK_CONFIG dépendent des fonctions de Snowflake auxquelles vous accédez via la connectivité privée. Pour une description des valeurs possibles, voir Valeurs de retour.

    Notez que les valeurs pour regionless-snowsight-privatelink-url et snowsight-privatelink-url permettent l’accès à Snowsight et Snowflake Marketplace en utilisant une connectivité privée. Cependant, il y a une configuration supplémentaire si vous voulez activer les redirections d’URL. Pour plus d’informations, consultez Snowsight & Connectivité privée.

    Note

    Une explication complète de la configuration de DNS dépasse le cadre de cette procédure. Par exemple, vous pouvez choisir d’intégrer une zone DNS privée dans votre environnement en utilisant Cloud DNS. Veuillez consulter vos administrateurs internes de Google Cloud et de l’infrastructure Cloud pour configurer et résoudre correctement les URLs dans DNS.

Se connecter à Snowflake

Avant de vous connecter à Snowflake, vous pouvez éventuellement utiliser SnowCD (outil de diagnostic de la connectivité Snowflake) pour évaluer la connexion réseau avec Snowflake et Private Service Connect. Pour plus d’informations, voir SnowCD et SYSTEM$ALLOWLIST_PRIVATELINK.

Pour vous connecter à Snowflake avec votre compte de connectivité privée, voir Connexion avec une URL.

Révoquer l’autorisation

S’il est nécessaire de désactiver Private Service Connect dans votre compte Snowflake, appelez la fonction SYSTEM$REVOKE_PRIVATELINK, en utilisant les mêmes valeurs d’argument que celles que vous avez utilisées pour autoriser le compte. Par exemple :

SELECT SYSTEM$REVOKE_PRIVATELINK(
 'my-gcp-project-id',
 'ya29.a0AcM612zT4pJaXdYfwgY8aiMoDE9W_xkqQ20coFTB1TJcImKDPo...'
);
Copy

Utilisation de SSO avec Google Private Service Connect

Snowflake prend en charge l’utilisation de SSO avec Google Cloud Private Service Connect. Pour plus d’informations, voir :

Utilisation de la redirection des clients avec Google Cloud Private Service Connect

Snowflake prend en charge l’utilisation de la redirection des clients avec Google Cloud Private Service Connect.

Pour plus d’informations, voir Redirection des connexions des clients.

Utilisation de la réplication et de Tri-Secret Secure avec une connectivité privée

Snowflake prend en charge la réplication de vos données du compte source vers le compte cible, que vous activiez ou non Tri-Secret Secure ou cette fonctionnalité dans le compte cible.