Azure Private Link e Snowflake¶
Este tópico descreve como configurar o Azure Private Link para conectar sua Rede virtual do Azure (VNet) ao Snowflake VNet no Azure.
Note que o Azure Private Link não é um serviço fornecido pelo Snowflake. É um serviço da Microsoft que o Snowflake permite usar com sua conta Snowflake.
Neste tópico:
Visão geral¶
O Azure Private Link fornece conectividade privada ao Snowflake, assegurando que o acesso ao Snowflake seja através de um endereço IP privado. O tráfego só pode ocorrer da rede virtual do cliente (VNet) para a VNet do Snowflake usando o backbone da Microsoft, evitando assim a Internet pública. Isto simplifica significativamente as configurações de rede, preservando as regras de acesso privadas ao mesmo tempo em que proporciona comunicação segura e privada.
O diagrama seguinte resume a arquitetura do Azure Private Link em relação ao cliente VNet e o Snowflake VNet.
De uma máquina virtual (1) ou através de peering (2), você pode se conectar ao ponto de extremidade do Azure Private Link (3) em sua rede virtual. Esse ponto de extremidade então se conecta ao Serviço Private Link (4) e roteia para o Snowflake.
Aqui estão as etapas de alto nível para integrar o Snowflake com o Azure Private Link:
Crie um ponto de extremidade privado.
Gere e recupere um token de acesso de sua assinatura Azure.
Observe que se você planeja usar o Azure Private Link para se conectar a um estágio interno do Snowflake no Azure, você deve registrar sua assinatura com o provedor de recursos do Azure Storage antes de se conectar ao estágio interno a partir de um ponto de extremidade privado.
Habilite sua conta Snowflake no Azure para usar o Azure Private Link.
Atualize suas configurações de firewall de saída para permitir a URL da conta Snowflake e a URL OCSP.
Atualize seu servidor DNS para resolver a URL de sua conta e a URL OCSP para o endereço IP do Private Link. Você pode adicionar a entrada DNS em seu servidor local DNS ou DNS privado em seu VNet, e usar o encaminhamento de DNS para consultas diretas para a entrada a partir de outros locais onde seus usuários acessarão o Snowflake.
Depois que o ponto de extremidade privado exibir um valor CONNECTION STATE de Approved, teste sua conexão com o Snowflake com SnowCD (Connectivity Diagnostic Tool) e SYSTEM$ALLOWLIST_PRIVATELINK.
Conecte-se ao Snowflake usando sua URL de conta de conectividade privada.
Requisitos e limitações¶
Antes de tentar configurar o Azure Private Link para conectar seu Azure VNet ao Snowflake VNet no Azure, observe o seguinte:
No Azure, em nível de sub-rede, opcionalmente , habilite uma política de redes para o Ponto de extremidade privado.
Verifique se as portas TCP 443 e 80 permitem o tráfego para
0.0.0.0
no grupo de segurança de rede da placa de rede do Ponto de extremidade.Para obter ajuda na configuração da porta, entre em contato com seu administrador interno do Azure.
Use ARM VNets.
Use somente tráfego TCP IPv4.
Atualmente, o processo de habilitação de autoatendimento descrito neste tópico não suporta a autorização de um ponto de extremidade privado gerenciado a partir do Azure Data Factory, Synapse ou outros serviços gerenciados.
Para detalhes sobre como configurar um ponto de extremidade privado gerenciado para este caso de uso, consulte este artigo (na comunidade Snowflake).
Para obter mais informações sobre os requisitos e limitações do Microsoft Azure Private Link, consulte a documentação da Microsoft em Limitações de pontos de extremidade privados e Limitações do serviço Private Link.
Configuração do acesso ao Snowflake com o Azure Private Link¶
Atenção
Esta seção cobre apenas os detalhes específicos do Snowflake para a configuração de seu ambiente VNet. Observe também que o Snowflake não é responsável pela configuração real das atualizações necessárias do firewall e dos registros DNS. Se você encontrar problemas com qualquer uma dessas tarefas de configuração, entre em contato diretamente com o Suporte Microsoft.
Esta seção descreve como configurar seu Azure VNet para se conectar ao Snowflake VNet no Azure usando o Azure Private Link. Após iniciar a conexão ao Snowflake usando o Azure Private Link, você pode determinar o estado de aprovação da conexão no portal Azure.
Para ajuda na instalação, consulte a documentação da Microsoft no Azure CLI ou Azure PowerShell.
Conclua o procedimento de configuração para configurar seu Microsoft Azure VNet e iniciar a conexão do Azure Private Link ao Snowflake.
Procedimento¶
Esse procedimento cria e inicializa manualmente os recursos necessários do Azure Private Link para usar o Azure Private Link para se conectar ao Snowflake no Azure. Observe que esse procedimento considera que seu caso de uso não envolve Usar SSO com o Azure Private Link (neste tópico).
Como exemplo representativo usando o Azure CLI, execute
az account list --output table
. Observe os valores de saída nas colunasName
,SubscriptionID
eCloudName
.Name CloudName SubscriptionId State IsDefault ------- ---------- ------------------------------------ ------- ---------- MyCloud AzureCloud 13c... Enabled True
Navegue até o portal Azure. Procure por Private Link e clique em Private Link.
Clique em Private endpoints e depois clique em Add.
Na seção Basics, preencha os campos Subscription, Resource group, Name e Region para seu ambiente e depois clique em Next: Resource.
Na seção Resource, preencha os campos Connection method e Resource ID or alias Field.
Para Connection Method, selecione o Connect to an Azure resource by resource ID or alias.
No Snowflake, execute SYSTEM$GET_PRIVATELINK_CONFIG e insira o valor para
privatelink-pls-id
no campo Resource ID or alias. Observe que a captura de tela nesta etapa utiliza o valor do alias para a regiãoeast-us-2
como um exemplo representativo, e que o Azure confirma um valor de alias válido com uma marca de verificação verde.Se você receber uma mensagem de erro referente ao valor do alias, entre em contato com o suporte Snowflake para receber o valor do ID do recurso e repita esta etapa usando o valor do ID do recurso.
Retorne à seção Private endpoints e aguarde alguns minutos. Ao ser aprovado, o ponto de extremidade privado exibe um valor CONNECTION STATE de Pending. Este valor será atualizado para Approved após completar a autorização na próxima etapa.
Habilite sua conta Snowflake no Azure para usar o Azure Private Link, completando as seguintes etapas:
Em seu ambiente de linha de comando, registre a ID do valor do recurso de ponto de extremidade privado usando o seguinte comando de rede do Azure CLI:
az network private-endpoint show
O ponto de extremidade privado foi criado nas etapas anteriores usando os arquivos de modelo. O valor da ID do recurso toma a seguinte forma, que tem um valor truncado:
/subscriptions/26d.../resourcegroups/sf-1/providers/microsoft.network/privateendpoints/test-self-service
Em seu ambiente de linha de comando, execute o seguinte comando da conta Azure CLI e salve a saída. A saída será usada como o valor para o argumento
federated_token
na próxima etapa.az account get-access-token --subscription <SubscriptionID>
Extraia o valor do token de acesso da saída do comando. Este valor será usado como o valor
federated_token
na próxima etapa. Neste exemplo, os valores são truncados e o valor do token de acesso éeyJ...
:{ "accessToken": "eyJ...", "expiresOn": "2021-05-21 21:38:31.401332", "subscription": "0cc...", "tenant": "d47...", "tokenType": "Bearer" }
Importante
O usuário que gera o token de acesso Azure deve ter as permissões de leitura na assinatura. A permissão de menor privilégio é Microsoft.Subscription/subscriptions/acceptOwnershipStatus/read. Alternativamente, a função padrão
Reader
concede mais permissões de granulação ampla.O valor
accessToken
é informação confidencial e deve ser tratado como um valor de senha — não compartilhe este valor.Se for necessário entrar em contato com o suporte Snowflake, apague o token de acesso de quaisquer comandos e URLs antes de criar um tíquete de suporte.
No Snowflake, chame a função SYSTEM$AUTHORIZE_PRIVATELINK, usando o valor
private-endpoint-resource-id
e o valorfederated_token
como argumentos, que são truncados neste exemplo:USE ROLE ACCOUNTADMIN; SELECT SYSTEM$AUTHORIZE_PRIVATELINK ( '/subscriptions/26d.../resourcegroups/sf-1/providers/microsoft.network/privateendpoints/test-self-service', 'eyJ...' );
Para verificar sua configuração autorizada, chame a função SYSTEM$GET_PRIVATELINK em sua conta Snowflake no Azure. O Snowflake retorna
Account is authorized for PrivateLink.
para uma autorização bem-sucedida.Se for necessário desabilitar o Azure Private Link em sua conta Snowflake, chame a função SYSTEM$REVOKE_PRIVATELINK, usando os valores de
private-endpoint-resource-id
efederated_token
.Configuração DNS. Todos os pedidos para o Snowflake precisam ser encaminhados através do ponto de extremidade privado. Atualize seu DNS para resolver a conta Snowflake e URLs OCSP para o endereço IP privado de seu ponto de extremidade privado.
Para obter o endereço IP do ponto de extremidade, navegue até a barra de pesquisa do portal Azure e digite o nome do ponto de extremidade (ou seja, o valor NAME da Etapa 5). Localize o resultado da interface de rede e clique nele.
Copiar o valor para o Private IP address (ou seja,
10.0.27.5
).Configure seu DNS para que os seguintes valores do ponto de extremidade da função SYSTEM$GET_PRIVATELINK_CONFIG sejam resolvidos para o endereço IP privado.
Estes valores de ponto de extremidade permitem acessar o Snowflake, Snowsight e o Snowflake Marketplace enquanto também usam OCSP para determinar se um certificado é revogado quando clientes do Snowflake tentam se conectar a um ponto de extremidade através de HTTPS e URLs de conexão.
Os valores das funções a serem obtidos são:
privatelink-account-url
privatelink-connection-ocsp-urls
privatelink-connection-urls
privatelink-ocsp-url
regionless-privatelink-account-url
regionless-snowsight-privatelink-url
snowsight-privatelink-url
Observe que os valores para
regionless-snowsight-privatelink-url
esnowsight-privatelink-url
permitem o acesso a Snowsight e a Snowflake Marketplace usando conectividade privada. No entanto, há uma configuração adicional se você quiser habilitar redirecionamentos de URL.Para obter mais detalhes, consulte Snowsight e Conectividade privada.
Nota
Uma explicação completa da configuração DNS está além do escopo deste procedimento. Por exemplo, você pode optar por integrar uma zona Azure Private DNS em seu ambiente. Consulte os administradores internos de infraestrutura de nuvem e Azure para configurar e resolver URLs em DNS corretamente.
Após verificar suas configurações de firewall de saída e registros DNS para incluir sua conta Azure Private Link e URLs OCSP, teste sua conexão ao Snowflake com SnowCD (Connectivity Diagnostic Tool) e SYSTEM$ALLOWLIST_PRIVATELINK.
Conecte-se ao Snowflake com a URL da sua conta de conectividade privada.
Observe que se você quiser se conectar ao Snowsight usando o Azure Private Link, siga as instruções na documentação do Snowsight.
Uso de SSO com Azure Private Link¶
O Snowflake suporta o uso de SSO com Azure Private Link. Para obter mais informações, consulte:
Uso do redirecionamento do cliente com o Azure Private Link¶
O Snowflake suporta o uso do redirecionamento do cliente com o Azure Private Link.
Para obter mais informações, consulte Redirecionamento de conexões do cliente.
Como usar a replicação e Tri-Secret Secure com conectividade privada¶
O Snowflake oferece suporte à replicação de seus dados da conta de origem para a conta de destino, independentemente de você habilitar o Tri-Secret Secure ou este recurso na conta de destino.
Para obter mais detalhes, consulte Replicação de banco de dados e criptografia.
Bloqueio do acesso público — Opcional¶
Após testar a conectividade do Azure Private Link com o Snowflake, você pode opcionalmente bloquear o acesso público ao Snowflake usando Controle do tráfego de rede com políticas de rede.
Configure o intervalo de blocos CIDR para bloquear o acesso público ao Snowflake usando o intervalo de endereços IP da sua organização. Este intervalo pode estar dentro de sua rede virtual.
Após definir os intervalos dos blocos CIDR, somente endereços IP dentro do intervalo de blocos CIDR podem acessar o Snowflake.
Para bloquear o acesso público usando uma política de redes:
Crie uma nova política de redes ou edite uma política de redes existente. Adicione o intervalo de blocos CIDR para sua organização.
Ative a política de redes para sua conta.