Règles de réseau

L’utilisation de SQL pour appliquer des règles réseau est généralement disponible.

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é. 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.

Les fonctions suivantes utilisent des règles réseau pour contrôler le trafic réseau :

  • Les politiques réseau utilisent des règles réseau pour contrôler le trafic réseau entrant vers le service et les zones de préparation internes Snowflake.

  • L”accès réseau externe utilise des règles réseau pour restreindre l’accès aux emplacements réseau externes à partir d’une procédure ou d’une UDF Snowflake.

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.

La plage de ports valide est 1-65535. Si vous ne spécifiez pas de port, la valeur par défaut est 443. Si un réseau externe prend en charge des ports dynamiques, vous devez spécifier tous les ports possibles.

Pour autoriser l’accès à tous les ports, définissez le port sur 0. Par exemple, company.com:0.

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 ou requêtes 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

Vous devez disposer du privilège CREATE NETWORK RULE sur le schéma pour pouvoir créer une règle réseau. Par défaut, seuls les rôles ACCOUNTADMIN et SECURITYADMIN, ainsi que le propriétaire du schéma, ont ce privilège.

Vous pouvez créer une règle réseau à l’aide de Snowsight ou en exécutant une commande SQL :

Snowsight:
  1. Connectez-vous à Snowsight.

  2. Sélectionnez Admin » Security.

  3. Sélectionnez l’onglet Network Rules.

  4. Sélectionnez + Network Rule.

  5. Saisissez le nom de la règle réseau.

  6. Sélectionnez le schéma de la règle réseau. Les règles réseau sont des objets au niveau du schéma.

  7. Il est possible d’ajouter un commentaire descriptif pour la règle réseau afin de faciliter l’organisation et la gestion des règles réseau dans le schéma.

  8. Dans le menu déroulant Type, sélectionnez le type d’identificateur défini dans la règle réseau.

  9. Dans la liste déroulante Mode, sélectionnez le mode de la règle réseau. Les modes INGRESS et INTERNAL STAGE indiquent que la règle réseau sera utilisée avec une politique réseau pour restreindre les requêtes entrantes, tandis que le mode EGRESS indique que la règle réseau sera utilisée avec une intégration d’accès externe pour restreindre les requêtes sortantes.

  10. Saisissez une liste d’identificateurs séparés par des virgules qui seront autorisés ou bloqués lorsque la règle réseau est ajoutée à une politique réseau. Les identificateurs de cette liste doivent tous être du type spécifié dans la liste déroulante Type.

  11. Sélectionnez Create Network Policy.

SQL:

Un administrateur peut exécuter 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 identifiants.

Par exemple, pour utiliser un rôle personnalisé afin de créer une règle de réseau qui peut être utilisée pour autoriser ou bloquer le trafic provenant d’une série d’adresses IP :

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 TYPE = IPV4 MODE = INGRESS 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.

Identification des règles réseau dans votre compte

Vous pouvez identifier les règles réseau de votre compte via Snowsight ou SQL.

Snowsight:
  1. Connectez-vous à Snowsight.

  2. Sélectionnez Admin » Security.

  3. Sélectionnez l’onglet Network Rules.

SQL:

Appelez la fonction de table Information Schema NETWORK_RULE_REFERENCES ou interrogez la vue Account Usage NETWORK_RULES ou NETWORK_RULE_REFERENCES.

Modification d’une règle de réseau

Vous pouvez modifier les identificateurs et le commentaire d’une règle réseau existante, mais vous ne pouvez pas modifier son type, son mode, son nom ou son schéma.

Pour ajouter ou supprimer des identificateurs et des commentaires dans une règle réseau existante via Snowsight ou SQL, procédez comme suit :

Snowsight:
  1. Connectez-vous à Snowsight.

  2. Sélectionnez Admin » Security.

  3. Sélectionnez l’onglet Network Rules.

  4. Recherchez la règle réseau, sélectionnez le bouton , puis Edit.

  5. Modifiez la liste d’identificateurs délimitée par des virgules ou le commentaire.

  6. Sélectionnez Update Network Rule.

SQL:

Exécutez une instruction ALTER NETWORK RULE.

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.