Points de terminaison d’interface AWS VPC pour les zones de préparation internes

Cette rubrique fournit des concepts ainsi que des instructions détaillées pour se connecter aux zones de préparation internes de Snowflake par le biais de points de terminaison d’interface AWS VPC.

Dans ce chapitre :

Vue d’ensemble

Les points de terminaison d’interface AWS VPC et AWS PrivateLink pour Amazon S3 peuvent être combinés pour fournir une connectivité sécurisée aux zones de préparation internes de Snowflake. Cette configuration garantit que les opérations de chargement et de déchargement des données vers des zones de préparation internes Snowflake utilisent le réseau interne AWS et non l’Internet public.

Avant la prise en charge des points de terminaison d’interface VPC par AWS pour accéder aux zones de préparation internes, il était nécessaire de créer une ferme de proxy dans l’AWS VPC pour faciliter l’accès sécurisé aux zones de préparation internes Snowflake. Avec la prise en charge des points de terminaison d’interface VPC pour les zones de préparation internes Snowflake, les utilisateurs et les applications client peuvent désormais y accéder par le biais du réseau AWS privé. Le diagramme suivant résume cette nouvelle prise en charge :

Connect to internal stage using AWS PrivateLink for S3

Remarques concernant les chiffres dans le diagramme BEFORE :

  • Les utilisateurs ont deux options pour se connecter à une zone de préparation interne Snowflake :

    • L’option A permet une connexion sur site directe à la zone de préparation interne, comme illustré par le chiffre 1.

    • L’option B permet une connexion à la zone de préparation interne par le biais d’une ferme de proxy, comme illustré par les chiffres 2 et 3.

  • En choisissant une ferme de proxy, les utilisateurs peuvent également se connecter directement à Snowflake comme illustré par le chiffre 4.

Remarques concernant les chiffres dans le diagramme AFTER :

  • Les mises à jour de cette fonctionnalité suppriment la nécessité de se connecter à Snowflake ou à une zone de préparation interne Snowflake par le biais d’une ferme de proxy.

  • Un utilisateur sur site peut se connecter directement à Snowflake comme illustré au point n°5.

  • Pour se connecter à une zone de préparation interne Snowflake, les utilisateurs sur site se connectent à un point de terminaison d’interface, point n°6, et utilise ensuite AWS PrivateLink pour que Amazon S3 se connecte à la zone de préparation interne Snowflake comme illustré au point n 7.

Il y a un seul compartiment Amazon S3 par déploiement de zone de préparation interne. Un préfixe dans le compartiment Amazon S3 de zone de préparation interne est utilisé pour organiser les données dans chaque compte Snowflake. Les URLs des points de terminaison du compartiment Amazon S3 sont différents selon que la connexion au compartiment utilise une connectivité privée (c’est-à-dire AWS PrivateLink pour S3).

URL du point de terminaison global Amazon S3 public

<nom_compartiment>.s3.region.amazonaws.com/prefix

URL du point de terminaison Amazon S3 privé

<vpceID>.s3.<région>.vpce.amazonaws.com/prefix

Avantages

L’implémentation de points de terminaison d’interface VPC pour accéder à des zones de préparation internes Snowflake apporte les avantages suivants :

  • Les données de la zone de préparation interne ne transitent pas par l’Internet public.

  • Les applications client et SaaS, par exemple Microsoft PowerBI, exécutées en dehors d’AWS VPC peuvent se connecter à Snowflake de manière sécurisée.

  • Les administrateurs n’ont pas besoin de modifier les paramètres de pare-feu pour accéder aux données de la zone de préparation interne.

  • Les administrateurs peuvent assurer une sécurité et une surveillance cohérentes concernant la connexion des utilisateurs aux comptes de stockage.

Limites

  • AWS Gov Cloud (US) n’est pas pris en charge avec AWS PrivateLink pour S3.

  • Pour des limitations supplémentaires, voir la documentation AWS.

Configuration d’un point de terminaison d’interface VPC pour accéder à des zones de préparation internes de Snowflake

Pour configurer des points de terminaison d’interface VPC pour accéder à des zones de préparation internes Snowflake, il est nécessaire d’être assisté par les trois rôles suivants dans votre organisation :

  1. L’administrateur de compte Snowflake (par exemple un utilisateur avec le rôle système ACCOUNTADMIN).

  2. L’administrateur AWS.

  3. L’administrateur réseau.

Selon l’organisation, il peut être nécessaire de coordonner les efforts de configuration avec plus d’une personne ou équipe pour implémenter les étapes de configuration suivantes.

Conditions préalables

  • AWS PrivateLink pour S3.

    Important

    AWS PrivateLink pour S3 est un service AWS qui doit être activé dans votre environnement Cloud.

    Pour obtenir de l’aide sur la configuration et la mise en œuvre de ce service, contactez votre administrateur AWS interne.

  • Mettez à jour la liste des autorisations du pare-feu comme suit :

  • Pour les clients us-east-1 seulement : si vous utilisez l’un des clients Snowflake suivants pour vous connecter à Snowflake, veuillez effectuer une mise à niveau vers la version du client comme suit :

    • Pilote JDBC 3.13.3 (ou supérieur)

    • ilote ODBC 2.23.2 (ou supérieur)

    • Connecteur Python pour Snowflake : 2.5.1 (ou supérieur)

    • SnowSQL : 1.2.17 (ou supérieur)

      • Mettez à niveau SnowSQL avant d’utiliser cette fonction. Pour plus d’informations, voir Installation de SnowSQL.

      • Notez que si vous utilisez l’option SnowSQL --noup, la mise à niveau automatique SnowSQL est désactivée et une nouvelle version SnowSQL ne peut être téléchargée. Pour la mise à niveau, désactivez l’option --noup et réactivez-la une fois la mise à niveau terminée.

Procédure

Exécutez les étapes suivantes pour configurer et implémenter l’accès sécurisé aux zones de préparation internes Snowflake par le biais de points de terminaison VPC :

  1. En tant qu’administrateur de compte Snowflake, exécutez les instructions suivantes dans votre compte Snowflake et enregistrez la valeur définie par la clé privatelink_internal_stage. Notez que le nom du compartiment Amazon S3 est défini dans le premier segment de l’URL lorsqu’il est lu de gauche à droite. Pour plus d’informations, voir ENABLE_INTERNAL_STAGES_PRIVATELINK et SYSTEM$GET_PRIVATELINK_CONFIG.

    use role accountadmin;
    alter account set ENABLE_INTERNAL_STAGES_PRIVATELINK = true;
    select key, value from table(flatten(input=>parse_json(system$get_privatelink_config())));
    
    Copy
  2. En tant qu’administrateur AWS, créez un point de terminaison VPC pour AWS PrivateLink pour S3 en utilisant la console AWS. Enregistrez le nom DNS VPCE à utiliser à l’étape suivante ; n’enregistrez pas de noms de zones DNS VPCE.

    Le nom DNS VPCE peut être trouvé en décrivant un point de terminaison d’interface une fois le point de terminaison créé.

    Dans cet exemple, un caractère générique (c’est-à-dire *) est répertorié comme le caractère de tête du nom DNS VPCE. Remplacez le caractère générique de tête par le nom du compartiment Amazon S3 de l’étape précédente. Par exemple :

    Remplacer

    *.vpce-000000000000a12-abc00ef0.s3.us-west-2.vpce.amazonaws.com

    Avec

    <nom_compartiment>.vpce-000000000000a12-abc00ef0.s3.us-west-2.vpce.amazonaws.com

  3. En tant qu’administrateur réseau, mettez à jour les paramètres DNS pour résoudre l’URL suivante :

    <nom_compartiment>.s3.<région>.amazonaws.com au nom DNS VPCE après que le caractère générique de tête soit remplacé par le nom du compartiment Amazon S3.

    Dans cet exemple, résolvez <nom_du_compartiment>.s3.<région>.amazonaws.com en <nom_du_compartiment>.vpce-000000000000a12-abc00ef0.s3.us-west-2.vpce.amazonaws.com.

    Astuce

    • N’utilisez pas de caractères de remplacement (c’est-à-dire *) avec le mappage DNS en raison de l’impact possible de l’accès à d’autres compartiments Amazon S3 en dehors de Snowflake.

    • Utilisez un compte Snowflake distinct pour les tests et configurez une zone DNS hébergée privée dans un VPC de test pour tester la fonctionnalité afin de ne pas perturber les autres charges de travail.

    • Si vous ne pouvez pas utiliser de compte Snowflake distinct, utilisez un utilisateur test pour accéder à Snowflake à partir d’un VPC de test où les modifications DNS sont effectuées.

    • Pour effectuer des tests à partir d’applications sur site, utilisez le transfert de DNS pour rediriger les requêtes vers la zone hébergée privée AWS dans le VPC où les réglages du DNS sont effectués. S’il y a des applications clientes à la fois dans le VPC et sur site, utilisez AWS Transit Gateway.

    • Exécutez la commande suivante à partir de la machine client pour vérifier que l’adresse IP renvoyée correspond à l’adresse IP privée du compte de stockage :

      dig <bucket_name>.s3.<region>.amazonaws.com
      
      Copy
  4. Pour les comptes Snowflake en us-east-1, vérifiez que vos clients Snowflake sont sur leurs dernières versions.