Protegendo a entrada de solicitações do Snowflake com endereços IP de saída¶
Você pode permitir com segurança o acesso de entrada do Snowflake aos seus recursos externos autorizando intervalos de endereços IP de saída gerados a partir do Snowflake através do firewall de rede do recurso.
Você pode gerar uma lista de intervalos de endereços IP de saída do Snowflake (como endereços CIDR (Roteamento entre Domínios sem Classificação)), que você pode usar para representar o Snowflake permitindo o acesso através do firewall de rede do seu servidor externo.
Usos possíveis¶
Usando endereços IP de saída que você gera com o Snowflake, é possível autorizar o acesso de entrada dos seguintes recursos do Snowflake:
Acesso externo de UDFs e procedimentos
Acesso externo do Snowpark Container Services e Snowflake Openflow no Snowpark Container Services
Gerar intervalos de endereços IP de saída¶
Você pode gerar intervalos de endereços IP que o Snowflake usa para tráfego de saída usando a função SYSTEM$GET_SNOWFLAKE_EGRESS_IP_RANGES.
Os endereços IP gerados expiram, portanto, para necessidades contínuas, você deve configurar um meio para automatizar a atualização do firewall do seu servidor externo com novos endereços IP de saída, conforme descrito em Automatizar as atualizações de intervalo de endereços IP.
Para gerar e usar endereços IP de saída do Snowflake, siga estas etapas:
Chame SYSTEM$GET_SNOWFLAKE_EGRESS_IP_RANGES para obter os intervalos de IPs atuais e futuros e os respectivos tempos de expiração.
O código a seguir mostra um exemplo de saída da função.
SELECT value: "ipv4_prefix":: VARCHAR AS IP_CIDR_RANGE_FOR_REGION, value: "effective":: TIMESTAMP AS IP_CIDR_RANGE_EFFECTIVE, value: "expires":: TIMESTAMP AS IP_CIDR_RANGE_EXPIRATION FROM TABLE(FLATTEN (INPUT => PARSE_JSON(SYSTEM$GET_SNOWFLAKE_EGRESS_IP_RANGES())));
+--------------------------+-------------------------+--------------------------+ | IP_CIDR_RANGE_FOR_REGION | IP_CIDR_RANGE_EFFECTIVE | IP_CIDR_RANGE_EXPIRATION | +--------------------------+-------------------------+--------------------------+ | 153.45.34.0/24 | 2025-08-01 00:00:00.000 | 2026-05-06 01:33:26.726 | | 153.45.77.0/24 | 2025-08-01 00:00:00.000 | 2026-05-06 01:33:26.726 | +--------------------------+-------------------------+--------------------------+
A coluna
IP CIDR RANGE_EFFECTIVEmostra a data em que um intervalo começa a carregar o tráfego. Um novo intervalo deve aparecer na saída da função pelo menos 60 dias antes de «entrar em vigor».A coluna
IP CIDR RANGE_EXPIRATIONmostra a data em que um intervalo de IPs para de carregar o tráfego.
Use os intervalos de IPs que você obtém para atualizar as regras de firewall usando APIs, CLIsou ferramentas de gerenciamento de configuração, conforme descrito em Automatizar as atualizações de intervalo de endereços IP.
Automatizar as atualizações de intervalo de endereços IP¶
Os endereços IP de saída do Snowflake expiram. Para manter o acesso protegido, você deve atualizar os endereços IP de saída do Snowflake permitidos pelo firewall do servidor externo para que se mantenham atuais.
Para manter os endereçosIP atuais, implemente um mecanismo para acionar essas atualizações em seu servidor externo regularmente, como por dia ou por semana. Você pode fazer isso, por exemplo, usando as ferramentas do seu ambiente.
Para fazer atualizações, siga estas etapas em seu script:
Recupere os intervalos de endereços IP de saída do Snowflake usando SYSTEM$GET_SNOWFLAKE_EGRESS_IP_RANGES.
Compare os intervalos recém-recuperados com aqueles que você já usa.
Você pode evitar mudanças desnecessárias fazendo atualizações apenas se os intervalos de endereços forem diferentes.
Se não forem diferentes, faça com que seu script use datas de expiração para definir um prazo para verificar novamente, por exemplo, alguns dias antes da expiração.
Se a lista recém-recuperada for diferente, atualize a regra de firewall programaticamente com os novos endereços. Depois disso, você pode fazer com que o script defina uma nova data para verificação, por exemplo, alguns dias antes da nova expiração.
Registre as alterações feitas pelo script e configure alertas para atualizações bem-sucedidas ou falhas.
Automatizar as atualizações usando as ferramentas do seu ambiente¶
Você pode automatizar as tarefas necessárias para manter os endereços IP do Snowflake atualizados usando scripts e ferramentas. Veja a seguir a descrição de dois exemplos:
Script com APIs e CLIs em provedores de nuvem, como AWS, Azure e Google Cloud.
Para ambientes de nuvem, você pode escrever scripts usando ferramentas como Python, PowerShell e Bash. As ferramentas podem realizar as seguintes tarefas:
Chamar SYSTEM$GET_SNOWFLAKE_EGRESS_IP_RANGES para recuperar os intervalos de endereços IP mais recentes e as datas de expiração.
Usar a API ou CLI do provedor de nuvem para atualizar regras de grupo de segurança, ACLs de rede ou políticas de firewall.
Agendar scripts que executam essas ações para execução periódica (como diariamente ou semanalmente) ou com base nas datas de expiração usando trabalhos cron. É possível executá-los usando procedimentos armazenados com tarefas do Snowflake.
Ferramentas de infraestrutura como código (IaC)
Você pode usar ferramentas, como Terraform, Ansible ou CloudFormation, para gerenciar regras de firewall como código. A abordagem descrita abaixo também oferece controle de versão e trilhas de auditoria para alterações de regras de firewall.
Usando essas ferramentas, você pode executar as seguintes tarefas:
Definir regras de firewall nas configurações da IaC.
Chamar SYSTEM$GET_SNOWFLAKE_EGRESS_IP_RANGES para recuperar os intervalos de endereços IP mais recentes e as datas de expiração.
Quando os novos intervalos de IPs de saída do Snowflake estiverem disponíveis, atualizar a configuração da IaC com eles.
Aplicar as alterações usando a ferramenta IaC, garantindo que as regras de firewall sejam atualizadas de forma programática e idempotente.