Règles de réseau

Les règles de réseau sont des objets de niveau schéma qui regroupent les identificateurs de réseau en unités logiques.

Les fonctionnalités Snowflake qui restreignent le trafic réseau peuvent faire référence à des règles de réseau plutôt que de définir des identificateurs réseau directement dans la fonctionnalité. Par exemple, une politique réseau peut faire référence à une règle de réseau qui inclut des adresses IP pour contrôler l’accès au service Snowflake et aux zones de préparation internes basées sur ces adresses. Vous pouvez également utiliser une règle de réseau pour accéder à un emplacement de réseau externe à partir d’une UDF ou d’une procédure.

Une règle de réseau ne définit pas si ses identificateurs doivent être autorisés ou bloqués. La fonctionnalité Snowflake qui utilise la règle de réseau spécifie si les identificateurs de la règle sont autorisés ou interdits.

Identificateurs de réseau pris en charge

Les administrateurs doivent pouvoir restreindre l’accès en fonction de l’identificateur de réseau associé à l’origine ou à la destination d’une demande. Les règles de réseau permettent aux administrateurs d’autoriser ou de bloquer les identificateurs de réseau suivants :

Demandes entrantes
Demandes sortantes

Domaines, y compris une plage de ports optionnelle

Chaque règle de réseau contient une liste d’un ou plusieurs identificateurs de réseau du même type. La propriété TYPE de la règle de réseau indique le type d’identificateurs inclus dans la règle. Par exemple, si la propriété TYPE est IPV4, la liste des valeurs de la règle de réseau doit contenir des adresses IPv4 valides ou des plages d’adresses en notation CIDR.

Requêtes entrantes et sortantes

Le mode d’une règle de réseau indique si la fonctionnalité Snowflake qui utilise la règle restreint les demandes entrantes ou sortantes.

Demandes entrantes

Les politiques de réseau protègent le service Snowflake et les zones de préparation internes du trafic entrant. Lorsqu’une règle de réseau est utilisée avec une politique réseau, l’administrateur peut définir le mode sur l’une des options suivantes :

INGRESS

Le comportement du mode INGRESS dépend de la valeur de la propriété TYPE de la règle de réseau.

  • Si TYPE=IPV4, la règle de réseau contrôle par défaut l’accès au service Snowflake uniquement.

    Si l’administrateur du compte active le paramètre ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES , alors MODE=INGRESS et TYPE=IPV4 protègent également une zone de préparation interne AWS.

  • Si TYPE=AWSVPCEID, la règle de réseau contrôle uniquement l’accès au service Snowflake.

    Si vous souhaitez restreindre l’accès à la zone de préparation interne AWS en fonction de l’ID VPCE d’un point de terminaison d’interface, vous devez créer une règle de réseau distincte en mode INTERNAL_STAGE.

INTERNAL_STAGE

Contrôle l’accès à une zone de préparation interne AWS sans restreindre l’accès au service Snowflake. L’utilisation de ce mode nécessite les éléments suivants :

Pour les comptes sur Microsoft Azure, vous ne pouvez pas utiliser une règle de réseau pour restreindre l’accès à la zone de préparation interne. Cependant, vous pouvez bloquer tout le trafic du réseau public pour qu’il n’accède pas à la zone de préparation interne.

Demandes sortantes

Les administrateurs peuvent utiliser des règles de réseau avec des fonctions qui contrôlent où les demandes peuvent être envoyées. Dans ce cas, l’administrateur définit la règle de réseau avec le mode suivant :

EGRESS

Indique que la règle de réseau est utilisée pour le trafic envoyé depuis Snowflake.

Actuellement utilisé avec un accès au réseau externe, qui permet à une UDF ou à une procédure d’envoyer des requêtes à un emplacement de réseau externe.

Création d’une règle de réseau

Un administrateur exécute la commande CREATE NETWORK RULE pour créer une nouvelle règle de réseau, en spécifiant une liste d’identificateurs de réseau ainsi que le type de ces identificateurs.

L’administrateur utilise le paramètre MODE pour indiquer si la règle de réseau est utilisée pour restreindre les demandes entrantes ou sortantes. Si l’administrateur n’inclut pas le paramètre MODE , la valeur par défaut est INGRESS, ce qui signifie que la règle de réseau est utilisée par des politiques réseau pour restreindre le trafic réseau entrant vers le service Snowflake.

La création d’une règle de réseau ne définit pas si elle autorise ou bloque les identificateurs de réseau. Les administrateurs spécifient ces restrictions lors de la configuration de la fonction Snowflake qui utilise la règle de réseau.

Exemple : règle de réseau pour la politique réseau

Le code de l’exemple suivant utilise un rôle personnalisé pour créer une règle de réseau qui peut être utilisée pour autoriser ou bloquer le trafic d’une plage d’adresses IP vers le service Snowflake :

CREATE ROLE network_admin;
GRANT USAGE ON DATABASE securitydb TO ROLE network_admin;
GRANT USAGE ON SCHEMA securitydb.myrules TO ROLE network_admin;
GRANT CREATE NETWORK RULE ON SCHEMA securitydb.myrules TO ROLE network_admin;
USE ROLE network_admin;

CREATE NETWORK RULE cloud_network
  MODE = INGRESS
  TYPE = IPV4
  VALUE_LIST = ('47.88.25.32/27');
Copy

Adresses IPv4

Lors de la spécification des adresses IP pour une règle de réseau, Snowflake prend en charge les plages d’adresses IP en utilisant la notation Classless Inter-Domain Routing (CIDR).

Par exemple, 192.168.1.0/24 représente toutes les adresses IPv4 dans la plage de 192.168.1.0 à 192.168.1.255.

Modification d’une règle de réseau

Le propriétaire d’une règle de réseau peut exécuter la commande ALTER NETWORK RULE pour remplacer les identificateurs de réseau et le commentaire de la règle. Vous ne pouvez pas ajouter ou supprimer des identificateurs de réseau individuels à la règle de réseau ; les identificateurs existants sont perdus lors de l’ajout de nouvelles valeurs.

Le TYPE et le MODE de la règle de réseau ne peuvent pas être modifiés.

Par exemple, le propriétaire d’une règle de réseau peut les modifier de manière à ce qu’ils puissent être utilisés pour autoriser ou bloquer le trafic provenant d’une nouvelle plage d’adresses IPv4 :

ALTER NETWORK RULE cloud_network SET VALUE_LIST = ('47.88.25.32/27');
Copy

Le propriétaire de la règle de réseau peut également supprimer tous les identificateurs de réseau de la règle :

ALTER NETWORK RULE cloud_network UNSET VALUE_LIST;
Copy

Réplication des règles de réseau

Les règles de réseau sont des objets de niveau schéma et sont répliquées avec la base de données dans laquelle elles sont contenues.

Pour obtenir des informations sur la réplication des politiques réseau qui utilisent des règles de réseau, consultez Réplication des politiques réseau.

Privilèges et commandes

Commande

Privilège

Description

CREATE NETWORK RULE

CREATE NETWORK RULE sur SCHEMA

Crée une nouvelle règle de réseau.

ALTER NETWORK RULE

OWNERSHIP sur NETWORK RULE

Modifie une règle de réseau existante.

DROP NETWORK RULE

OWNERSHIP sur NETWORK RULE

Supprime une règle de réseau existante du système.

DESCRIBE NETWORK RULE

OWNERSHIP sur NETWORK RULE

Décrit les propriétés d’une règle de réseau existante.

SHOW NETWORK RULES

OWNERSHIP sur NETWORK RULE ou USAGE sur SCHEMA

Répertorie toutes les règles de réseau du système.