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>' ]
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ètreMODE
doit être défini surEGRESS
.
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
etTYPE=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 :
L’administrateur du compte doit activer le paramètre ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES.
La propriété
TYPE
de la règle de réseau doit êtreAWSVPCEID
.
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 de192.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';
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';
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');