Sécuriser le trafic entrant des requêtes Snowflake à l’aide d’adresses IP de sortie (egress)

Vous pouvez autoriser l’accès de Snowflake à vos ressources externes en autorisant les plages d’adresses IP de sortie générées à partir de Snowflake via le pare-feu réseau de la ressource.

Vous pouvez générer une liste de plages d’adresse IP Snowflake de sortie (en tant qu’adresses de routage inter-domaine sans classe (CIDR)) que vous pouvez utiliser pour représenter Snowflake en autorisant l’accès via le pare-feu réseau de votre serveur externe.

Utilisations prises en charge

En utilisant les adresses IP de sortie que vous générez avec Snowflake, vous pouvez autoriser l’accès d’entrée à partir des fonctions Snowflake suivantes :

Générer des plages d’adresses IP de sortie

Vous pouvez générer des plages d’adresses IP que Snowflake utilise pour le trafic de sortie en utilisant la fonction SYSTEM$GET_SNOWFLAKE_EGRESS_IP_RANGES.

Les adresses IP générées expirent, pour les besoins continus, vous devez mettre en place un moyen d’automatiser l’actualisation du pare-feu de votre serveur externe avec des adresses IP de sortie récentes, comme décrit dans Automatiser les actualisations des plages d’adresses IP.

Pour générer et utiliser des adresses IP de sortie Snowflake, suivez les étapes suivantes :

  1. Appelez SYSTEM$GET_SNOWFLAKE_EGRESS_IP_RANGES pour obtenir les plages IP actuelles et futures et leurs délais d’expiration.

    Le code suivant montre un exemple de sortie de la fonction.

    SELECT
     value: "ipv4_prefix":: VARCHAR AS IP_CIDR_RANGE_FOR_REGION,
     value: "effective":: TIMESTAMP AS IP_CIDR_RANGE_EFFECTIVE,
     value: "expires":: TIMESTAMP AS IP_CIDR_RANGE_EXPIRATION
    FROM TABLE(FLATTEN (INPUT => PARSE_JSON(SYSTEM$GET_SNOWFLAKE_EGRESS_IP_RANGES())));
    
    Copy
    +--------------------------+-------------------------+--------------------------+
    | IP_CIDR_RANGE_FOR_REGION | IP_CIDR_RANGE_EFFECTIVE | IP_CIDR_RANGE_EXPIRATION |
    +--------------------------+-------------------------+--------------------------+
    | 153.45.34.0/24           | 2025-08-01 00:00:00.000 | 2026-05-06 01:33:26.726  |
    | 153.45.77.0/24           | 2025-08-01 00:00:00.000 | 2026-05-06 01:33:26.726  |
    +--------------------------+-------------------------+--------------------------+
    
    • La colonne IP CIDR RANGE_EFFECTIVE indique la date de début à laquelle une plage commence à porter du trafic. Une nouvelle plage doit apparaître dans la sortie de la fonction au moins 60 jours avant d’être « effective ».

    • La colonne IP CIDR RANGE_EXPIRATION indique la date lorsqu’une plage IP arrête le trafic.

  2. Utilisez les plages IP que vous obtenez pour mettre à jour les règles de pare-feu en utilisant des APIs, des CLIs ou des outils de gestion de configuration, comme décrit dans la section Automatiser les actualisations des plages d’adresses IP.

Automatiser les actualisations des plages d’adresses IP

Les adresses IP de sortie Snowflake expirent. Pour sécuriser l’accès, vous devez mettre à jour les adresses IP de sortie Snowflake autorisées via le pare-feu de votre serveur externe afin qu’elles soient à jour.

Pour que les adresses IP soient actualisées en permanence, implémentez un mécanisme permettant de déclencher régulièrement ces mises à jour dans votre serveur externe, par exemple une fois par jour ou par semaine. Vous pouvez le faire, par exemple, en utilisant les outils de votre environnement.

Pour effectuer des mises à jour, suivez les étapes suivantes dans votre script :

  1. Récupérez les plages d’adresses IP de sortie Snowflake en utilisant SYSTEM$GET_SNOWFLAKE_EGRESS_IP_RANGES.

  2. Comparez les plages nouvellement récupérées avec celles que vous utilisez actuellement.

    Vous pouvez éviter les modifications inutiles en ne procédant à des mises à jour que si les plages d’adresses sont différentes.

    • Si elles ne sont pas différentes, demandez à votre script d’utiliser des dates d’expiration pour définir un délai de vérification, par exemple quelques jours avant l’expiration.

    • Si la liste récemment récupérée est différente, mettez à jour votre règle de pare-feu de manière programmatique avec les nouvelles adresses. Vous pouvez alors demander au script de fixer une nouvelle date de vérification, par exemple quelques jours avant la nouvelle expiration.

  3. Consignez les modifications apportées par le script et configurez des alertes en cas de mises à jour réussies ou ayant échoué.

Automatiser les mises à jour à l’aide des outils de votre environnement

Vous pouvez automatiser les tâches nécessaires pour que les adresses IP Snowflake restent actualisées en utilisant des scripts et des outils. Voici deux exemples :

  • Exécuter des scripts avec des APIs et des CLIs sur les fournisseurs Cloud tels que AWS, Azure et Google Cloud.

    Pour les environnements Cloud, vous pouvez écrire des scripts en utilisant des outils tels que Python, PowerShell et Bash. Vos outils peuvent effectuer les tâches suivantes :

    1. Appelez SYSTEM$GET_SNOWFLAKE_EGRESS_IP_RANGES pour récupérer les dernières plages d’adresses IP et dates d’expiration.

    2. Utilisez l’API ou la CLI du fournisseur Cloud pour mettre à jour les règles des groupes de sécurité, les ACLs réseau ou les politiques de pare-feu.

    3. Planifiez les scripts qui effectuent ces actions pour qu’ils s’exécutent périodiquement (par exemple, chaque jour ou chaque semaine) ou en fonction des dates d’expiration à l’aide de tâches cron. Vous pouvez les exécuter en utilisant des procédures stockées avec des tâches Snowflake.

  • Outils d’infrastructure en tant que code (IaC)

    Vous pouvez utiliser des outils tels que Terraform, Ansible ou CloudFormation pour gérer les règles du pare-feu en tant que code. L’approche décrite ci-dessous fournit également un contrôle des versions et des pistes d’audit pour les modifications des règles de pare-feu.

    Grâce à ces outils, vous pouvez effectuer les tâches suivantes :

    1. Définissez des règles de pare-feu dans les configurations IaC.

    2. Appelez SYSTEM$GET_SNOWFLAKE_EGRESS_IP_RANGES pour récupérer les dernières plages d’adresses IP et dates d’expiration.

    3. Quand de nouvelles plages d’adresses IP de sortie Snowflake sont disponibles ; mettez à jour votre configuration IaC avec les nouvelles plages.

    4. Appliquez les modifications à l’aide de votre outil IaC, garantissant que les règles de pare-feu sont mises à jour de manière programmatique et idempotente.