Regras de rede

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. Por exemplo, uma política de redes pode fazer referência a uma regra de rede que inclui endereços IP para controlar o acesso ao serviço Snowflake e estágios internos com base nesses endereços. Você também pode usar uma regra de rede ao acessar um local de rede externo a partir de uma UDF ou procedimento.

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.

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
Solicitações enviadas

Domínios, incluindo um intervalo de portas opcional

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 ou 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

Um administrador executa 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.

O administrador usa o parâmetro MODE para indicar se a regra de rede é usada para restringir o envio ou o recebimento das solicitações. Se o administrador não incluir o parâmetro MODE, o padrão será INGRESS, o que significa que a regra de rede é usada pelas políticas de redes para restringir o tráfego de rede de entrada para o serviço Snowflake.

A criação de uma regra de rede não define se está permitindo ou bloqueando os identificadores de rede. Os administradores especificam essas restrições ao configurar o recurso Snowflake que usa a regra de rede.

Exemplo: regra de rede para política de redes

O código no exemplo a seguir usa uma função personalizada para criar uma regra de rede que pode ser usada para permitir ou bloquear o tráfego de um intervalo de endereços IP para o serviço Snowflake:

CREATE ROLE network_admin;
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
  MODE = INGRESS
  TYPE = IPV4
  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.

Modificação de uma regra de rede

O proprietário de uma regra de rede pode executar o comando ALTER NETWORK RULE para substituir os identificadores de rede e os comentários da regra. Você não pode adicionar ou remover identificadores de rede individuais à regra de rede; os identificadores existentes são perdidos ao adicionar novos valores.

Os TYPE e MODE da regra de rede não podem ser modificados.

Por exemplo, o proprietário de uma regra de rede pode modificá-la para que possa ser usada para permitir ou bloquear o tráfego de um novo intervalo de endereços IPv4:

ALTER NETWORK RULE cloud_network SET VALUE_LIST = ('47.88.25.32/27');
Copy

O proprietário da regra de rede também pode remover todos os identificadores de rede da regra:

ALTER NETWORK RULE cloud_network UNSET VALUE_LIST;
Copy

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.