Conectividade privada com funções externas: Portal do Azure¶
Este tópico fornece detalhes de configuração para definir a conectividade privada de saída para um serviço externo chamando uma função externa para contas Snowflake no Microsoft Azure da seguinte forma:
Use a interface do usuário do Portal do Azure para configurar recursos em Microsoft Azure.
Crie uma integração de API e uma função externa no Snowflake.
Chame a função externa no Snowflake para validar a conectividade privada com o serviço externo.
Faturamento e preços¶
Você paga por cada ponto de extremidade de conectividade privada, juntamente com o total de dados processados. Para ver o preço desses itens, consulte a Tabela de consumo do serviço Snowflake.
Visão geral do processo¶
A seguir está uma visão geral do processo de configuração. As etapas no Snowflake devem ser executadas por um usuário com a função ACCOUNTADMIN. As etapas no Portal do Azure são executadas por um usuário com direitos para usar os recursos correspondentes, a menos que especificado de outra forma.
As etapas a seguir são as mesmas usadas para usar funções externas com a Internet pública:
Conclua as etapas de pré-requisito para funções externas no Microsoft Azure.
No Portal do Azure, crie o serviço remoto.
No Portal do Azure, crie o serviço de proxy.
No entanto, talvez você queira criar novos recursos para diferenciar totalmente suas necessidades de conectividade privada de suas necessidades de Internet pública. Consulte seus administradores de segurança interna para determinar a melhor abordagem para suas necessidades.
Essas etapas são exclusivas para funções externas que usam conectividade privada para um serviço externo:
No Snowflake, crie um ponto de extremidade privado.
O Snowflake armazena o endereço IP privado do ponto de extremidade privado internamente.
No Portal do Azure, aprove o ponto de extremidade privado.
Esta ação é realizada pelo proprietário do recurso do Azure API Management (serviço externo).
No Snowflake, crie uma nova integração de API.
Você precisa de uma integração de API dedicada para oferecer suporte à conectividade privada com o serviço externo.
No Snowflake, crie uma função externa. O URL de conectividade privada é o valor para o URL de invocação na função externa.
No Snowflake, chame a função externa para permitir que o Snowflake se conecte ao serviço externo usando conectividade privada.
Desprovisione quaisquer pontos de extremidade de conectividade privada que não sejam necessários.
Configuração¶
Conclua estas etapas no Portal do Azure:
Se você já tiver o recurso do Azure API Management definido e quiser reutilizar o serviço remoto e o serviço de proxy, pule para as etapas de conectividade privada. Caso contrário, conclua estas etapas:
Conclua os pré-requisitos para funções externas no Microsoft Azure.
No Portal do Azure, crie o serviço remoto.
No Portal do Azure, crie o serviço de proxy.
Conclua estas etapas para configurar a conectividade privada:
No Snowflake, execute o comando CREATE API INTEGRATION para criar uma nova integração de API para oferecer suporte à conectividade privada com o serviço externo. Atualize os valores da propriedade para alinhá-los com sua assinatura do Microsoft Azure:
CREATE API INTEGRATION external_api_integration_azure_private API_PROVIDER = azure_private_api_management AZURE_TENANT_ID = 'a123b4c5-1234-123a-a12b-1a23b45678c9' AZURE_AD_APPLICATION_ID = 'dv3421nq-1g4s-4ap4-x89c-xrf28hna7m2o' API_ALLOWED_PREFIXES = ('https://aztest1-external-function-api.azure.net') ENABLED = TRUE COMMENT = 'API integration for private connectivity to an external service with external functions on Azure.';
No Snowflake, chame a função do sistema SYSTEM$PROVISION_PRIVATELINK_ENDPOINT para criar o ponto de extremidade privado. Atualize os valores dos argumento para alinhá-los com sua assinatura Microsoft Azure:
USE ROLE ACCOUNTADMIN; SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '/subscriptions/f4b00c5f-f6bf-41d6-806b-e1cac4f1f36f/resourceGroups/aztest1-external-function-rg/providers/Microsoft.ApiManagement/service/aztest1-external-function-api', 'aztest1-external-function-api.azure.net', 'Gateway' );
No Portal do Azure e como proprietário do recurso do Azure API Management, aprove o ponto de extremidade privado. Para mais detalhes, consulte o processo de aprovação.
Vincule a integração da API para Azure ao serviço de proxy para permitir que o Snowflake envie solicitações de API ao serviço Azure API Management.
É possível optar por bloquear o acesso público ao recurso do Azure API Management. Para obter mais informações, consulte Acesso seguro ao recurso do Azure API Management (neste tópico).
No Snowflake, se você já tem um banco de dados e um esquema para armazenar a função externa e deseja usar esses objetos, certifique-se de que eles estejam em uso ou selecione-os no Snowsight. Caso contrário, crie um banco de dados e um esquema para armazenar a função externa para uso com conectividade privada a um serviço externo:
CREATE DATABASE private_external_service_db; CREATE SCHEMA private_ext_functions;
No Snowflake, execute o comando CREATE EXTERNAL FUNCTION para criar a função externa a ser usada com conectividade privada ao serviço externo. Certifique-se de atualizar o URL de invocação com a URL de conectividade privada do serviço externo:
CREATE OR REPLACE SECURE EXTERNAL FUNCTION private_ext_function_azure_portal( a INTEGER , b VARCHAR) RETURNS VARIANT API_INTEGRATION = external_api_integration_azure_private AS 'https://aztest1-external-function-api.azure.net/my-api-url-suffix/http-function-name';
O formato URL depende se você está criando uma função externa usando o Portal do Azure ou o modelo ARM do Azure. Para obter detalhes, consulte formato da URL de invocação
No Snowflake, chame a função externa para testar a conectividade privada com o serviço externo:
SELECT private_ext_function_azure(66, 'Mario');
[0, 66, 'Mario']
Se a saída da função retornar o resultado que corresponde à configuração do serviço remoto no início do procedimento, você confirmou que a conectividade privada com o serviço externo está funcionando conforme o esperado.
Acesso seguro ao recurso do Azure API Management¶
É possível proteger o acesso ao recurso do Azure API Management associado ao ponto de extremidade privado para uso com funções externas. Da perspectiva do recurso do Azure API Management, o Snowflake é uma conexão de entrada. Ao proteger o acesso, você reduz a probabilidade de ataques que podem comprometer o uso de funções externas.
Por exemplo, você pode querer executar o comando apim na CLI do Azure para bloquear o acesso público:
az apim update --name <api-name> --resource-group <resource group name> --public-network-access false
Atualize os valores do espaço reservado com os valores que correspondem ao nome do recurso do API Management e ao nome do grupo de recurso.
Para detalhes e opções, consulte estes tópicos: