CREATE NETWORK RULE

Crée une règle de réseau ou remplace une règle de réseau existante.

Voir aussi :

ALTER NETWORK RULE , DROP NETWORK RULE , SHOW NETWORK RULES , DESCRIBE NETWORK RULE

Syntaxe

CREATE [ OR REPLACE ] NETWORK RULE <name>
   TYPE = { IPV4 | AWSVPCEID | AZURELINKID | HOST_PORT }
   VALUE_LIST = ( '<value>' [, '<value>', ... ] )
   MODE = { INGRESS | INTERNAL_STAGE | EGRESS }
   [ COMMENT = '<string_literal>' ]
Copy

Paramètres requis

name

Identificateur de la règle de réseau.

La valeur de l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (p. ex. "My object"). Les identificateurs entre guillemets doubles sont sensibles à la casse.

Pour plus de détails, voir Exigences relatives à l’identificateur.

TYPE = { IPV4 | AWSVPCEID | AZURELINKID | HOST_PORT }

Spécifie le type d’identificateurs de réseau autorisés ou bloqués. Une règle de réseau ne peut avoir qu’un seul type.

  • IPV4 indique que la règle de réseau autorisera ou bloquera le trafic réseau en fonction de l’adresse IPv4 de l’origine de la requête.

  • AWSVPCEID indique que la règle de réseau autorisera ou bloquera le trafic réseau sur AWS PrivateLink.

  • AZURELINKID indique que la règle de réseau autorisera ou bloquera le trafic réseau sur Azure Private Link.

  • HOST_PORT indique que la règle de réseau autorisera le trafic réseau sortant en fonction du domaine de la destination de la requête.

    Lorsque TYPE = HOST_PORT, le paramètre MODE doit être défini sur EGRESS.

VALUE_LIST = ( 'value' [, 'value', ... ] )

Spécifie les identificateurs de réseau qui seront autorisés ou bloqués.

Les valeurs valables dans la liste sont déterminées par le type de règle de réseau :

  • Lorsque TYPE = IPV4, chaque valeur doit être une adresse IPv4 ou une plage d’adresses valide.

  • Lorsque TYPE = AWSVPCEID, chaque valeur doit être un ID VPCE valide d’un point de terminaison AWS S3. Les IDs de VPC ne sont pas pris en charge.

  • Lorsque TYPE = AZURELINKID, chaque valeur doit être un LinkID valide d’un point de terminaison privé Azure. Exécutez la fonction SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS pour récupérer le LinkID associé à un compte.

  • Lorsque TYPE = HOST_PORT, chaque valeur doit être un domaine valide. Il peut également inclure un port ou une série 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.

MODE = { INGRESS | INTERNAL_STAGE | EGRESS }

Spécifie ce qui est limité par la règle de réseau.

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.

INTERNAL_STAGE

Autorise ou bloque les requêtes vers 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 :

EGRESS

Permet à Snowflake d’envoyer des requêtes vers une destination externe.

Par défaut : INGRESS

Paramètres facultatifs

COMMENT = 'string_literal'

Spécifie un commentaire pour la règle de réseau.

Par défaut : aucune valeur

Exigences en matière de contrôle d’accès

Un rôle utilisé pour exécuter cette commande SQL doit avoir les privilèges suivants définis au minimum ainsi :

Privilège

Objet

Remarques

CREATE NETWORK RULE

Schéma

Seuls les rôles ACCOUNTADMIN et SECURITYADMIN, ainsi que le propriétaire du schéma, ont ce privilège par défaut. Ce privilège peut être accordé à d’autres rôles si nécessaire.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.

Notes sur l’utilisation

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

  • Concernant les métadonnées :

    Attention

    Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.

Exemples

Créez une règle de réseau utilisée pour autoriser ou bloquer le trafic d’un point de terminaison AWS S3 vers la zone de préparation interne :

CREATE NETWORK RULE corporate_network
  TYPE = AWSVPCEID
  VALUE_LIST = ('vpce-123abc3420c1931')
  MODE = INTERNAL_STAGE
  COMMENT = 'corporate privatelink endpoint';
Copy

Créez une règle de réseau utilisée pour autoriser ou bloquer le trafic provenant d’une série d’adresses IP vers le service Snowflake et la zone de préparation interne :

CREATE NETWORK RULE cloud_network
  TYPE = IPV4
  VALUE_LIST = ('47.88.25.32/27')
  COMMENT ='cloud egress ip range';
Copy

Créez une règle de réseau utilisée pour autoriser un domaine et une combinaison domaine/port lorsque Snowflake envoie des requêtes vers des destinations externes :

CREATE NETWORK RULE external_access_rule
  TYPE = HOST_PORT
  MODE = EGRESS
  VALUE_LIST = ('example.com', 'company.com:443');
Copy