CREATE NETWORK RULE¶
Cria uma regra de rede ou substitui uma regra de rede existente.
- Consulte também:
- ALTER NETWORK RULE , DROP NETWORK RULE , SHOW NETWORK RULES , DESCRIBE NETWORK RULE 
Sintaxe¶
CREATE [ OR REPLACE ] NETWORK RULE <name>
   TYPE = { IPV4 | AWSVPCEID | AZURELINKID | HOST_PORT | PRIVATE_HOST_PORT }
   VALUE_LIST = ( '<value>' [, '<value>', ... ] )
   MODE = { INGRESS | INTERNAL_STAGE | EGRESS }
   [ COMMENT = '<string_literal>' ]
Parâmetros obrigatórios¶
- name
- Identificador da regra de rede. - O valor do identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo, - "My object"). Os identificadores delimitados por aspas duplas diferenciam letras maiúsculas de minúsculas.- Para obter mais detalhes, consulte Requisitos para identificadores. 
- TYPE = { IPV4 | AWSVPCEID | AZURELINKID | HOST_PORT | PRIVATE_HOST_PORT }
- Especifica o tipo de identificadores de rede permitidos ou bloqueados. Uma regra de rede pode ter apenas um tipo. - IPV4indica que a regra de rede permitirá ou bloqueará o tráfego de rede com base no endereço IPv4 da origem da solicitação.
- AWSVPCEIDindica que a regra de rede permitirá ou bloqueará o tráfego de rede em AWS PrivateLink.
- AZURELINKIDindica que a regra de rede permitirá ou bloqueará o tráfego de rede em Azure Private Link.
- HOST_PORTindica que a regra de rede permitirá o tráfego de rede de saída com base no domínio do destino da solicitação.- Quando - TYPE = HOST_PORT, o parâmetro- MODEdeve ser definido como- EGRESS.
- PRIVATE_HOST_PORTindica que a regra de rede permite que o tráfego de rede de saída use a conectividade privada para um local de rede externo.- Quando - TYPE = PRIVATE_HOST_PORT, o parâmetro- MODEdeve ser definido como- EGRESS.
 
- VALUE_LIST = ( 'value' [, 'value', ... ] )
- Especifica os identificadores de rede que serão permitidos ou bloqueados. - Os valores válidos na lista são determinados pelo tipo de regra de rede: - Quando - TYPE = IPV4, cada valor deve ser um endereço IPv4 válido ou um intervalo de endereços.
- Quando - TYPE = AWSVPCEID, cada valor deve ser um VPCE ID válido. VPC IDs não são suportados.
- Quando - TYPE = AZURELINKID, cada valor deve ser um LinkID válido de um ponto de extremidade privado do Azure. Execute a função SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS para recuperar o LinkID associado a uma conta.
- Em - TYPE = HOST_PORT, cada valor deve corresponder a um domínio válido. Opcionalmente, também pode incluir uma porta ou um intervalo de portas.- Na maioria dos casos, o intervalo de portas válido é de 1 a 65535. Se você não especificar uma porta, o padrão será 443. Se um local de rede externo oferecer suporte a portas dinâmicas, será necessário especificar todas as portas possíveis. - Para permitir o acesso a todas as portas, defina a porta como 0; por exemplo, - example.com:0.- Quando o valor é resolvido para um domínio, é possível usar um único asterisco como caractere curinga. O asterisco corresponde apenas a caracteres alfanuméricos e hifens ( - -).- Os curingas são compatíveis apenas com um único nível de subdomínios, como nos exemplos a seguir: - *.google.com
- snowflake-*.google.come- snowflake*abc.google.com
 - Você pode permitir solicitações para todos os pontos de extremidade de saída especificando - 0.0.0.0como o domínio, como nos exemplos abaixo. Quando você especifica- 0.0.0.0como o domínio, pode usar apenas 443 e 80 como valores de porta.- Permitir o acesso a todos os pontos de extremidade na porta 80 - value_list = ('0.0.0.0:80');
- Permitir acesso a todos os pontos de extremidade na porta 443 - value_list = ('0.0.0.0:443');- value_list = ('0.0.0.0');
- Permitir o acesso a todos os pontos de extremidade nas portas 80 e 443 - value_list = ('0.0.0.0:80', '0.0.0.0:443');
 
- Quando - TYPE = PRIVATE_HOST_PORT, especifique um domínio válido.- Na maioria dos casos, o intervalo de portas válido é de 1 a 65535. Se você não especificar uma porta, o padrão será 443. Se um local de rede externo oferecer suporte a portas dinâmicas, será necessário especificar todas as portas possíveis. - Para permitir o acesso a todas as portas, defina a porta como 0; por exemplo, - example.com:0.
 
- MODE = { INGRESS | INTERNAL_STAGE | EGRESS }
- Especifica o que é restrito pela regra de rede. - INGRESS
- O comportamento do modo - INGRESSdepende do valor da propriedade- TYPEda regra de rede.- Se - TYPE=IPV4, por padrão, a regra de rede controla o acesso apenas ao serviço Snowflake.- Se o administrador da conta ativar o parâmetro ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES, - MODE=INGRESSe- TYPE=IPV4também protegerão um estágio interno AWS.
- Se - TYPE=AWSVPCEID, a regra de rede controlará o acesso apenas ao serviço Snowflake.
 
- INTERNAL_STAGE
- Permite ou bloqueia solicitações para um estágio interno AWS sem restringir o acesso ao serviço Snowflake. Usar este modo requer o seguinte: - O administrador da conta deve ativar o parâmetro ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES. 
- A propriedade - TYPEda regra de rede deve ser- AWSVPCEID.
 
- EGRESS
- Permite que o Snowflake envie solicitações para um destino externo. 
 - Padrão: - INGRESS
Parâmetros opcionais¶
- COMMENT = 'string_literal'
- Especifica um comentário para a regra de rede. - Padrão: sem valor 
Requisitos de controle de acesso¶
A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:
| Privilégio | Objeto | Notas | 
|---|---|---|
| CREATE NETWORK RULE | Esquema | Somente as funções ACCOUNTADMIN e SECURITYADMIN, juntamente com o proprietário do esquema, têm esse privilégio por padrão. Ele pode ser concedido a funções adicionais, conforme necessário. | 
O privilégio USAGE no banco de dados e no esquema pai é necessário para executar operações em qualquer objeto de um esquema. Observe que uma função com privilégio concedido em um esquema permite que essa função resolva o esquema. Por exemplo, uma função com privilégio CREATE concedido em um esquema pode criar objetos nesse esquema sem também ter USAGE concedido nesse esquema.
Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.
Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.
Notas de uso¶
- Ao especificar endereços IP para uma regra de rede, o Snowflake oferece suporte a intervalos de endereços IP usando a notação Classless Inter-Domain Routing (CIDR). - Por exemplo, - 192.168.1.0/24representa todos os endereços IPv4 no intervalo de- 192.168.1.0a- 192.168.1.255.
- Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação. 
- Em relação aos metadados: - Atenção - Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake. 
Exemplos¶
Crie uma regra de rede que seja usada para permitir ou bloquear o tráfego de um ponto de extremidade AWS S3 para o estágio interno:
CREATE NETWORK RULE corporate_network
  TYPE = AWSVPCEID
  VALUE_LIST = ('vpce-123abc3420c1931')
  MODE = INTERNAL_STAGE
  COMMENT = 'corporate privatelink endpoint';
Crie uma regra de rede que seja usada para permitir ou bloquear o tráfego de um intervalo de endereços IP para o serviço Snowflake e o estágio interno:
CREATE NETWORK RULE cloud_network
  TYPE = IPV4
  VALUE_LIST = ('47.88.25.32/27')
  COMMENT ='cloud egress ip range';
Crie uma regra de rede que seja usada para permitir uma combinação de domínio e domínio/porta quando o Snowflake estiver enviando solicitações para destinos externos:
CREATE NETWORK RULE external_access_rule
  TYPE = HOST_PORT
  MODE = EGRESS
  VALUE_LIST = ('example.com', 'example.com:443');
Crie uma regra de rede para habilitar a conectividade privada de saída para acesso à rede externa:
CREATE OR REPLACE NETWORK RULE ext_network_access_db.network_rules.azure_sql_private_rule
  MODE = EGRESS
  TYPE = PRIVATE_HOST_PORT
  VALUE_LIST = ('externalaccessdemo.database.windows.net');