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/24representa todos os endereços IPv4 no intervalo de192.168.1.0a192.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:
INGRESSO comportamento do modo
INGRESSdepende do valor da propriedadeTYPEda 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=INGRESSeTYPE=IPV4també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_STAGEControla o acesso a um estágio interno do 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 serAWSVPCEID.
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:
EGRESSIndica 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:
Faça login na Snowsight.
No menu de navegação, selecione Governance & security » Network policies e, em seguida, a guia Network Rules.
Selecione + Network Rule.
Insira o nome da regra de rede.
Selecione o esquema da regra de rede. As regras de rede são objetos no nível do esquema.
Opcionalmente, adicione um comentário descritivo à regra de rede para ajudar a organizar e manter as regras de rede no esquema.
No menu suspenso Type, selecione o tipo de identificador que está sendo definido na regra de rede.
No menu suspenso Mode, selecione o modo da regra de rede. Os modos
INGRESSeINTERNAL STAGEindicam que a regra de rede será usada com uma política de redes para restringir as solicitações de entrada e o modoEGRESSindica que a regra de rede será usada com uma integração de acesso externo para restringir solicitações de saída.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.
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');
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:
Faça login na Snowsight.
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:
Faça login na Snowsight.
No menu de navegação, selecione Governance & security » Network policies e, em seguida, a guia Network Rules.
Encontre a regra de rede, selecione o botão … e selecione Edit.
Modifique a lista de identificadores delimitada por vírgulas ou o comentário.
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 em SCHEMA |
Cria uma nova regra de rede. |
|
OWNERSHIP em NETWORK RULE |
Modifica uma regra de rede existente. |
|
OWNERSHIP em NETWORK RULE |
Remove uma regra de rede existente do sistema. |
|
OWNERSHIP em NETWORK RULE |
Descreve as propriedades de uma regra de rede existente. |
|
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 |
|
Microsoft Power BI |
|
Qlik |
|
Tableau |
|
Ações do GitHub |
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;
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';
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'
);
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'
);
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
pipusando o comandopip 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.