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

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.

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. Faça login na Snowsight.

  2. No menu de navegação, selecione Governance & security » Network policies e, em seguida, a guia Network Rules.

  3. Selecione + Network Rule.

  4. Insira o nome da regra de rede.

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

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

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

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

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

  10. Selecione Create Network Rule.

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. Faça login na Snowsight.

  2. No menu de navegação, selecione Governance & security » Network policies e, em seguida, 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. Faça login na Snowsight.

  2. No menu de navegação, selecione Governance & security » Network policies e, em seguida, a guia Network Rules.

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

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

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

Regras de rede gerenciadas pelo Snowflake

O Snowflake fornece o esquema SNOWFLAKE.NETWORK_SECURITY contém um conjunto de regras de rede integradas. As regras de rede internas são um tipo de regra gerenciada pelo Snowflake. O Snowflake pode atualizar o esquema NETWORK_SECURITY com novas regras de rede gerenciadas pelo Snowflake. As regras de rede integradas oferecem uma forma segura, consistente, rápida e de baixa manutenção de gerenciar a segurança de rede.

As regras de rede gerenciadas pelo Snowflake estão alinhadas com os recursos de política de rede e gerenciamento de regras do Snowflake. Os clientes Snowflake podem adicionar regras gerenciadas pelo Snowflake a políticas de rede novas ou existentes. O Snowflake atualiza continuamente as regras de rede integradas sem que os administradores da conta precisem fazer manutenção regular. Para mais informações sobre como adicionar uma regra a uma política de redes, consulte Modificação de uma política de redes.

As regras de rede internas definem o conjunto de endereços IP permitidos que um aplicativo de terceiro parceiro costuma utilizar para se conectar ao Snowflake. O Snowflake atualiza automaticamente essas regras para capturar as alterações que provedores terceirizados fazem nos endereços IP de saída. Por exemplo, o Snowflake gerencia uma regra que define endereços IP que um aplicativo do Microsoft Power BI usa para se conectar ao Snowflake. Se a Microsoft atualizar esses endereços, as regras do Snowflake serão atualizadas automaticamente para refletir essa alteração.

A tabela a seguir lista os aplicativos de parceiros atuais para os quais o Snowflake mantém regras de rede integradas e informações sobre os endereços IP de saída atuais para cada aplicativo de parceiro:

Aplicativos SaaS

Endereços IP de saída

plataforma dbt

Endereços IP da plataforma dbt

Microsoft Power BI

Intervalos IP do Power BI

Qlik

Endereços IP do Qlik

Tableau

Intervalos IP do Tableau Cloud

Ações do GitHub

Pontos de extremidade da REST API para metadados

Como trabalhar com regras de rede gerenciadas pelo Snowflake

Para ver a lista atual de regras de rede gerenciadas pelo Snowflake, execute o comando SHOW NETWORK RULES para listar as regras de rede no esquema SNOWFLAKE.NETWORK_SECURITY:

SHOW NETWORK RULES IN SNOWFLAKE.NETWORK_SECURITY;
Copy

Nota

O comando SHOW não expõe endereços IP de forma explícita, apenas o número de endereços IP por regra.

Para ver suas regras atuais gerenciadas pelo Snowflake, incluindo endereços IP, consulte Exibição NETWORK_RULES e filtre as linhas em que o banco de dados é SNOWFLAKE e o esquema é NETWORK_SECURITY:

SELECT *
  FROM SNOWFLAKE.ACCOUNT_USAGE.NETWORK_RULES
  WHERE DATABASE = 'SNOWFLAKE' AND SCHEMA = 'NETWORK_SECURITY';
Copy

O exemplo a seguir mostra como criar ou substituir uma política de redes que faça referência a uma regra de rede integrada:

CREATE OR REPLACE NETWORK POLICY example_network_policy ALLOWED_NETWORK_RULE_LIST = (
  'SNOWFLAKE.NETWORK_SECURITY.DBT_APAC_AWS',
  'SNOWFLAKE.NETWORK_SECURITY.DBT_EMEA_AWS'
);
Copy

O exemplo a seguir mostra como adicionar uma regra de rede integrada a uma política de redes existente usando a sintaxe ALTER NETWORK POLICY:

ALTER NETWORK POLICY example_network_policy ADD ALLOWED_NETWORK_RULE_LIST = (
  'SNOWFLAKE.NETWORK_SECURITY.DBT_APAC_AWS'
);
Copy

Regras de rede de saída gerenciadas pelo Snowflake

O Snowflake fornece as seguintes regras de rede pré-definidas de saída gerenciadas pelo Snowflake:

SNOWFLAKE.EXTERNAL_ACCESS.PYPI_RULE

Você pode usar uma regra de rede EGRESS com uma integração de acesso externo para fornecer uma conexão do Snowflake com o Python Package Index (PyPI). Por exemplo, talvez você queira usar a regra de rede para permitir que os usuários do notebook no Container Runtime instalem os pacotes pip usando o comando pip install.

Para ver um exemplo de como usar essa regra de rede, consulte Como acessar PyPI para instalar pacotes no Snowpark Container.

Somente usuários com a função ACCOUNTADMIN tem acesso à SNOWFLAKE.EXTERNAL_ACCESS.PYPI_RULE.