Azure Private Link et Snowflake¶
Ce chapitre décrit comment configurer Azure Private Link pour connecter votre réseau virtuel Azure (VNet) au VNet Snowflake dans Azure.
Notez qu’Azure Private Link n’est pas un service fourni par Snowflake. Il s’agit d’un service Microsoft que Snowflake permet d’utiliser avec votre compte Snowflake.
Dans ce chapitre :
Vue d’ensemble¶
Azure Private Link fournit une connectivité privée à Snowflake en garantissant que l’accès à Snowflake se fait via une adresse IP privée. Le trafic ne peut se produire que depuis le réseau virtuel client (VNet) vers le VNet Snowflake à l’aide de la dorsale Microsoft et évite l’Internet public. Cela simplifie considérablement la configuration du réseau en gardant les règles d’accès privées tout en assurant une communication sécurisée et privée.
Le diagramme suivant résume l’architecture Azure Private Link par rapport au VNet client et au VNet Snowflake.
Depuis une machine virtuelle (1) ou via l’homologation (2), vous pouvez vous connecter au point de terminaison Azure Private Link (3) dans votre réseau virtuel. Ce point de terminaison se connecte ensuite au service Private Link (4) et effectue l’acheminement vers Snowflake.
Voici les étapes de haut niveau pour intégrer Snowflake à Azure Private Link :
Créez un point de terminaison privé.
Générez et récupérez un jeton d’accès à partir de votre abonnement Azure.
Notez que si vous prévoyez d’utiliser Azure Private Link pour vous connecter à une zone de préparation interne Snowflake sur Azure, vous devez enregistrer votre abonnement auprès du fournisseur de ressources Azure Storage avant de vous connecter à la zone de préparation interne à partir d’un point de terminaison privé.
Activez votre compte Snowflake sur Azure pour utiliser Azure Private Link.
Mettez à jour vos paramètres de pare-feu sortant pour autoriser l’URL du compte Snowflake et l’URL OCSP.
Mettez à jour votre serveur DNS pour résoudre l’URL du compte et l’URL OCSP en adresse IP Private Link. Vous pouvez ajouter l’entrée DNS à votre serveur DNS local ou DNS privé sur votre VNet, et utiliser le transfert DNS afin de diriger les requêtes pour l’entrée à partir d’autres emplacements où vos utilisateurs accéderont à Snowflake.
Une fois que le point de terminaison privé affiche une valeur CONNECTION STATE Approved, testez votre connexion à Snowflake avec SnowCD (Connectivity Diagnostic Tool) et SYSTEM$ALLOWLIST_PRIVATELINK.
Connectez-vous à Snowflake avec votre URL de compte de connectivité privée.
Exigences et limitations¶
Avant d’essayer de configurer Azure Private Link pour connecter votre VNet Azure au VNet Snowflake sur Azure, évaluez les points suivants :
Dans Azure, au niveau du sous-réseau, activez éventuellement une politique réseau pour le point de terminaison privé.
Vérifiez que les ports TCP 443 et 80 autorisent le trafic vers
0.0.0.0
dans le groupe de sécurité du réseau de la carte réseau du point de terminaison privé.Pour obtenir de l’aide sur la configuration des ports, contactez votre administrateur Azure interne.
Utilisez des VNets ARM.
Utilisez uniquement le trafic TCP IPv4.
Actuellement, le processus d’activation en libre-service décrit dans cette rubrique ne prend pas en charge l’autorisation d’un point de terminaison privé géré à partir d’Azure Data Factory, de Synapse ou d’autres services gérés.
Pour plus de détails sur la façon de configurer un point de terminaison privé géré pour ce cas d’utilisation, voir cet article (dans la communauté Snowflake).
Pour plus d’informations sur les exigences et les limitations de Microsoft Azure Private Link, consultez la documentation Microsoft relative aux limitations des points de terminaison privés et aux limitations du service Private Link.
Configuration de l’accès à Snowflake avec Azure Private Link¶
Attention
Cette section ne couvre que les détails spécifiques à Snowflake pour la configuration de votre environnement VNet. De plus, notez que Snowflake n’est pas responsable de la configuration finale des mises à jour de pare-feu nécessaires et des enregistrements DNS. Si vous rencontrez des problèmes avec l’une de ces tâches de configuration, veuillez contacter le support Microsoft directement.
Cette section décrit comment configurer votre VNet Azure pour se connecter au VNet Snowflake sur Azure à l’aide d’Azure Private Link. Après avoir établi la connexion à Snowflake à l’aide d’Azure Private Link, vous pouvez déterminer l’état d’approbation de la connexion dans le portail Azure.
Pour obtenir de l’aide sur l’installation, consultez la documentation Microsoft sur Azure CLI ou Azure PowerShell.
Suivez la procédure de configuration pour configurer votre VNet Microsoft Azure et initier la connexion Azure Private Link à Snowflake.
Procédure¶
Cette procédure crée et initialise manuellement les ressources Azure Private Link nécessaires pour utiliser Azure Private Link pour se connecter à Snowflake sur Azure. Notez que cette procédure suppose que votre cas d’utilisation n’implique pas l’utilisation de SSO avec Azure Private Link (dans cette rubrique).
À titre d’exemple représentatif utilisant CLI Azure, exécutez
az account list --output table
. Notez les valeurs de sortie dans les colonnesName
,SubscriptionID
etCloudName
.Name CloudName SubscriptionId State IsDefault ------- ---------- ------------------------------------ ------- ---------- MyCloud AzureCloud 13c... Enabled True
Accédez au portail Azure. Recherchez Private Link et cliquez sur Private Link.
Cliquez sur Private endpoints puis sur Add.
Dans la section Basics, remplissez les champs Subscription, Resource group, Name et Region pour votre environnement, puis cliquez sur Next: Resource.
Dans la section Resource, complétez les champs Connection method et Resource ID or alias Field.
Pour Connection Method, sélectionnez Connect to an Azure resource by resource ID or alias.
Dans Snowflake, exécutez SYSTEM$GET_PRIVATELINK_CONFIG et entrez la valeur de
privatelink-pls-id
dans le champ Resource ID or alias. Notez que la capture d’écran de cette étape utilise la valeur d’alias pour la régioneast-us-2
comme exemple représentatif et qu’Azure confirme une valeur d’alias valide avec une coche verte.Si vous recevez un message d’erreur concernant la valeur de l’alias, contactez le support Snowflake pour recevoir la valeur de l’ID de la ressource, puis répétez cette étape en utilisant la valeur de l’ID de la ressource.
Revenez à la section Private endpoints et attendez quelques minutes. Une fois approuvé, le point de terminaison privé affiche une valeur CONNECTION STATE Pending. Cette valeur sera mise à jour sur Approved après avoir complété l’autorisation dans l’étape suivante.
Activez votre compte Snowflake sur Azure pour utiliser Azure Private Link en effectuant les étapes suivantes :
Dans votre environnement de ligne de commande, enregistrez la valeur de l’ID de la ressource du point de terminaison privé à l’aide de la commande Azure CLI network suivante :
az network private-endpoint show
Le point de terminaison privé a été créé dans les étapes précédentes en utilisant les fichiers modèles. La valeur de l’ID de la ressource prend la forme suivante, dont la valeur est tronquée :
/subscriptions/26d.../resourcegroups/sf-1/providers/microsoft.network/privateendpoints/test-self-service
Dans votre environnement de ligne de commande, exécutez la commande suivante Azure CLI account et enregistrez le résultat. La sortie sera utilisée comme valeur pour l’argument
federated_token
dans l’étape suivante.az account get-access-token --subscription <SubscriptionID>
Extraire la valeur du jeton d’accès de la sortie de la commande. Cette valeur sera utilisée en tant que valeur
federated_token
dans l’étape suivante. Dans cet exemple, les valeurs sont tronquées et la valeur du jeton d’accès esteyJ...
:{ "accessToken": "eyJ...", "expiresOn": "2021-05-21 21:38:31.401332", "subscription": "0cc...", "tenant": "d47...", "tokenType": "Bearer" }
Important
L’utilisateur qui génère le jeton d’accès Azure doit avoir des droits de lecture sur l’abonnement. L’autorisation la moins privilégiée est Microsoft.Subscription/subscriptions/acceptOwnershipStatus/read. Alternativement, le rôle par défaut
Reader
accorde des autorisations plus larges.La valeur
accessToken
est une information sensible et doit être traitée comme un mot de passe — ne partagez pas cette valeur.S’il est nécessaire de contacter le support Snowflake, supprimez le jeton d’accès de toute commande et URLs avant de créer un ticket de support.
Dans Snowflake, appelez la fonction SYSTEM$AUTHORIZE_PRIVATELINK en utilisant comme arguments la valeur
private-endpoint-resource-id
et la valeurfederated_token
qui sont tronquées dans cet exemple :USE ROLE ACCOUNTADMIN; SELECT SYSTEM$AUTHORIZE_PRIVATELINK ( '/subscriptions/26d.../resourcegroups/sf-1/providers/microsoft.network/privateendpoints/test-self-service', 'eyJ...' );
Pour vérifier votre configuration autorisée, appelez la fonction SYSTEM$GET_PRIVATELINK de votre compte Snowflake sur Azure. Snowflake renvoie
Account is authorized for PrivateLink.
pour une autorisation réussie.S’il est nécessaire de désactiver Azure Private Link dans votre compte Snowflake, appelez la fonction SYSTEM$REVOKE_PRIVATELINK en utilisant les valeurs des arguments pour
private-endpoint-resource-id
etfederated_token
.Configuration DNS. Toutes les demandes adressées à Snowflake doivent être acheminées via le point de terminaison privé. Mettez à jour vos DNS pour résoudre les URLs OCSP et du compte Snowflake vers l’adresse IP privée de votre interface de point de terminaison privé.
Pour obtenir l’adresse IP du point de terminaison, accédez à la barre de recherche du portail Azure et saisissez le nom du point de terminaison (c’est-à-dire la valeur NAME de l’étape 5). Localisez le résultat de l’interface réseau et cliquez dessus.
Copiez la valeur de Private IP address (c’est-à-dire
10.0.27.5
).Configurez votre DNS pour que les valeurs suivantes du point de terminaison de la fonction SYSTEM$GET_PRIVATELINK_CONFIG soient résolues vers l’adresse IP privée.
Ces valeurs de point de terminaison vous permettent d’accéder à Snowflake, à Snowsight, et à Snowflake Marketplace tout en utilisant également OCSP pour déterminer si un certificat est révoqué lorsque les clients Snowflake tentent de se connecter à un point de terminaison par le biais de HTTPS et d’URLs de connexion.
Les valeurs de fonction à obtenir sont :
privatelink-account-url
privatelink-connection-ocsp-urls
privatelink-connection-urls
privatelink-ocsp-url
regionless-privatelink-account-url
regionless-snowsight-privatelink-url
snowsight-privatelink-url
Notez que les valeurs pour
regionless-snowsight-privatelink-url
etsnowsight-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 de détails, voir Snowsight et 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 Azure Private dans votre environnement. Veuillez contacter les administrateurs de votre infrastructure Azure et Cloud interne pour configurer et résoudre correctement les URLs dans les DNS.
Après avoir vérifié que vos paramètres de pare-feu sortant et vos enregistrements DNS incluent votre compte Azure Private Link et les URLs OCSP, testez votre connexion à Snowflake avec SnowCD (Connectivity Diagnostic Tool) et SYSTEM$ALLOWLIST_PRIVATELINK.
Connectez-vous à Snowflake avec votre URL de compte de connectivité privée.
Notez que si vous souhaitez vous connecter à Snowsight via Azure Private Link, suivez les instructions de la documentation Snowsight.
Utilisation de SSO avec Azure Private Link¶
Snowflake prend en charge l’utilisation de SSO avec Azure Private Link. Pour plus d’informations, voir :
Utilisation de la redirection des clients avec Azure Private Link¶
Snowflake prend en charge l’utilisation de la redirection des clients avec Azure Private Link.
Pour plus d’informations, voir Rediriger les connexions du client.
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.
Pour plus de détails, reportez-vous à Réplication de base de données et chiffrement.
Blocage de l’accès public — Facultatif¶
Après avoir testé la connectivité Azure Private Link avec Snowflake, vous pouvez éventuellement configurer le blocage de l’accès public à Snowflake à l’aide de Contrôle du trafic réseau avec des politiques réseau.
Configurez la plage de blocage CIDR pour bloquer l’accès public à Snowflake à l’aide de la plage d’adresses IP de votre entreprise. Cette plage peut provenir de votre réseau virtuel.
Une fois les plages de blocage CIDR définies, seules les adresses IP comprises dans la plage de blocage CIDR peuvent accéder à Snowflake.
Pour bloquer l’accès public à l’aide d’une politique réseau :
Créez une politique réseau ou modifiez une politique réseau existante. Ajoutez la plage de blocage CIDR pour votre organisation.
Activez la politique réseau pour votre compte.