Regras de rede

O uso de SQL para trabalhar com regras de rede está em disponibilidade geral.

As regras de rede são objetos em nível de esquema que agrupam identificadores de rede em unidades lógicas.

Os recursos do Snowflake que restringem o tráfego de rede podem fazer referência a regras de rede em vez de definir identificadores de rede diretamente no recurso. Uma regra de rede não define se seus identificadores devem ser permitidos ou bloqueados. O recurso Snowflake que usa a regra de rede especifica se os identificadores na regra são permitidos ou proibidos.

Os seguintes recursos usam regras de rede para controlar o tráfego de rede:

  • As políticas de redes usam regras de rede para controlar o tráfego de rede de entrada para o serviço Snowflake e estágios internos.

  • O acesso à rede externa usa regras de rede para restringir o acesso a locais de rede externos de uma UDF do Snowflake ou procedimento.

Identificadores de rede suportados

Os administradores precisam ser capazes de restringir o acesso com base no identificador de rede associado à origem ou ao destino de uma solicitação. As regras de rede permitem que os administradores permitam ou bloqueiem os seguintes identificadores de rede:

Solicitações recebidas:
  • Endereços IPv4. 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/24 representa todos os endereços IPv4 no intervalo de 192.168.1.0 a 192.168.1.255.

  • VPCE IDs de pontos de extremidade AWS VPC. VPC IDs não são suportados.

  • Pontos de extremidade LinkIDs do Azure. Execute a função SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS para recuperar o LinkID associado a uma conta.

Solicitações enviadas:

Domínios, incluindo um intervalo de portas.

O intervalo de portas válido é 1-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 acesso a todas as portas, defina a porta como 0. Por exemplo, company.com:0.

Cada regra de rede contém uma lista de um ou mais identificadores de rede do mesmo tipo. A propriedade TYPE da regra de rede indica o tipo de identificadores incluídos na regra. Por exemplo, se a propriedade TYPE for IPV4, a lista de valores da regra de rede deverá conter endereços IPv4 ou intervalos de endereços válidos na notação CIDR.

Solicitações recebidas e enviadas

O modo de uma regra de rede indica se o recurso Snowflake que usa a regra restringe o recebimento ou envio de solicitações.

Solicitações recebidas

As políticas de redes protegem o serviço Snowflake e os estágios internos do tráfego de entrada. Quando uma regra de rede é usada com uma política de redes, o administrador pode definir o modo como um dos seguintes:

INGRESS

O comportamento do modo INGRESS depende do valor da propriedade TYPE da 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=INGRESS e TYPE=IPV4 também protegerão um estágio interno do AWS.

  • Se TYPE=AWSVPCEID, a regra de rede controlará o acesso apenas ao serviço Snowflake.

    Se quiser restringir o acesso ao estágio interno do AWS com base no VPCE ID de um ponto de extremidade de interface, você deverá criar uma regra de rede separada usando o modo INTERNAL_STAGE.

INTERNAL_STAGE

Controla o acesso a um estágio interno do AWS sem restringir o acesso ao serviço Snowflake. Usar este modo requer o seguinte:

Para contas no Microsoft Azure, não é possível usar uma regra de rede para restringir o acesso ao estágio interno. No entanto, você pode bloquear todo o tráfego da rede pública para que não acesse o estágio interno.

Solicitações enviadas

Os administradores podem usar regras de rede com recursos que controlam para onde as solicitações podem ser enviadas. Nestes casos, o administrador define a regra de rede com o seguinte modo:

EGRESS

Indica que a regra de rede é usada para tráfego enviado do Snowflake.

Atualmente usado com acesso à rede externa, que permite que uma UDF ou procedimento envie solicitações para um local de rede externo.

Criação de uma regra de rede

Você precisa do privilégio CREATE NETWORK RULE no esquema para criar uma regra de rede. Por padrão, somente as funções ACCOUNTADMIN e SECURITYADMIN, juntamente com o proprietário do esquema, têm esse privilégio.

Você pode criar uma regra de rede usando Snowsight ou executando um comando SQL:

Snowsight:
  1. Entre em Snowsight.

  2. Selecione Admin » Security.

  3. Selecione a guia Network Rules.

  4. Selecione + Network Rule.

  5. Insira o nome da regra de rede.

  6. Selecione o esquema da regra de rede. As regras de rede são objetos no nível do esquema.

  7. Opcionalmente, adicione um comentário descritivo à regra de rede para ajudar a organizar e manter as regras de rede no esquema.

  8. No menu suspenso Type, selecione o tipo de identificador que está sendo definido na regra de rede.

  9. No menu suspenso Mode, selecione o modo da regra de rede. Os modos INGRESS e INTERNAL STAGE indicam que a regra de rede será usada com uma política de redes para restringir as solicitações de entrada e o modo EGRESS indica que a regra de rede será usada com uma integração de acesso externo para restringir solicitações de saída.

  10. Insira uma lista separada por vírgulas dos identificadores que serão permitidos ou bloqueados quando a regra de rede for adicionada a uma política de redes. Os identificadores nesta lista devem ser todos do tipo especificado no menu suspenso Type.

  11. Selecione Create Network Policy.

SQL:

Um administrador pode executar o comando CREATE NETWORK RULE para criar uma nova regra de rede, especificando uma lista de identificadores de rede junto com o tipo desses identificadores.

Por exemplo, para usar uma função personalizada para criar uma regra de rede que possa ser usada para permitir ou bloquear o tráfego de um intervalo de endereços 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

Endereços IPv4

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/24 representa todos os endereços IPv4 no intervalo de 192.168.1.0 a 192.168.1.255.

Identificação das regras de rede em sua conta

Você pode identificar as regras de rede na sua conta usando Snowsight ou SQL.

Snowsight:
  1. Entre em Snowsight.

  2. Selecione Admin » Security.

  3. Selecione a guia Network Rules.

SQL:

Chame a função de tabela do Information Schema NETWORK_RULE_REFERENCES ou consulte a exibição do Account Usage NETWORK_RULES ou NETWORK_RULE_REFERENCES.

Modificação de uma regra de rede

Você pode modificar os identificadores e comentários de uma regra de rede existente, mas não pode modificar seu tipo, modo, nome ou esquema.

Para adicionar ou remover identificadores e comentários de uma regra de rede existente usando Snowsight ou SQL, siga um destes procedimentos:

Snowsight:
  1. Entre em Snowsight.

  2. Selecione Admin » Security.

  3. Selecione a guia Network Rules.

  4. Encontre a regra de rede, selecione o botão e selecione Edit.

  5. Modifique a lista de identificadores delimitada por vírgulas ou o comentário.

  6. Selecione Update Network Rule.

SQL:

Execute uma instrução ALTER NETWORK RULE.

Replicação de regras de rede

As regras de rede são objetos no nível do esquema e são replicadas com o banco de dados no qual estão contidas.

Para obter informações sobre como replicar as políticas de redes que usam regras de rede, consulte Replicação de políticas de redes.

Privilégios e comandos

Comando

Privilégio

Descrição

CREATE NETWORK RULE

CREATE NETWORK RULE em SCHEMA

Cria uma nova regra de rede.

ALTER NETWORK RULE

OWNERSHIP em NETWORK RULE

Modifica uma regra de rede existente.

DROP NETWORK RULE

OWNERSHIP em NETWORK RULE

Remove uma regra de rede existente do sistema.

DESCRIBE NETWORK RULE

OWNERSHIP em NETWORK RULE

Descreve as propriedades de uma regra de rede existente.

SHOW NETWORK RULES

OWNERSHIP em NETWORK RULE ou USAGE em SCHEMA

Lista todas as regras de rede no sistema.