Azure Private Link e Snowflake Open Catalog¶
Este tópico descreve como configurar o Azure Private Link para conectar diretamente sua conta do Snowflake Open Catalog ao seu mecanismo de consulta usando a conectividade privada de entrada.
Pré-requisitos¶
Sua conta do Snowflake Open Catalog está hospedada no Azure.
Você tem as permissões necessárias para configurar seu serviço DNS com o URL de conectividade privada para sua conta do Open Catalog.
Etapa 1: Recupere as configurações de sua conta do Open Catalog¶
Recupere as seguintes definições para configurar o acesso ao Open Catalog com o Azure Private Link.
Entre no Snowflake Open Catalog.
No menu de navegação, selecione Settings.
Na página Settings copie os valores das seguintes configurações em um editor de texto:
PrivateLink Account URL
Regionless PrivateLink Account URL
PrivateLink OCSP URL
Regionless PrivateLink OCSP URL
ID do serviço Private Link
Você cola esses valores quando [configura o acesso ao Open Catalog com o Azure Private Link] (#step-2-configure-access-to-open-catalog-with-azure-private-link) e [conecta-se ao Open Catalog com o Azure Private Link] (#step-3-connect-to-open-catalog-through-azure-private-link).
Para obter descrições de cada configuração, consulte Valores de retorno para a função de sistema SYSTEM$GET_PRIVATELINK_CONFIG na documentação do Snowflake. Neste tópico, os nomes das configurações de conta estão no formato JSON.
Nota
Lembre-se de que, quando aplicável, a descrição se refere a uma conta Snowflake, mas seu valor é, na verdade, para sua conta Snowflake Open Catalog. Por exemplo, privatelink-account-url
é o URL da sua conta do Snowflake Open Catalog.
Opcional: Para recuperar esses valores no formato JSON, Crie uma conexão Snowflake CLI para Open Catalog e, em seguida, chame a função de sistema SYSTEM$GET_PRIVATELINK_CONFIG.
Etapa 2: Configure o acesso ao Open Catalog com o Azure Private Link¶
Atenção
Esta seção aborda apenas o Open Catalog - detalhes específicos para a configuração do 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ê tiver problemas com qualquer uma dessas tarefas de configuração, entre em contato diretamente com o Suporte da Microsoft.
Esta seção descreve como conectar seu VNet ao Open Catalog VNet usando o Azure Private Link.
Para concluir as instruções, você precisa usar o Azure CLI ou o Azure PowerShell. Para obter ajuda na instalação, consulte a documentação da Microsoft para o Azure CLI ou Azure PowerShell.
Depois de iniciar a conexão com o Snowflake Open Catalog usando o Azure Private Link, você pode determinar o estado de aprovação da conexão no portal do Azure.
Crie um ponto de extremidade privado.¶
Nota
Se você já criou um ponto de extremidade privado para a sua conta Snowflake e a conta está na mesma implantação que a sua conta Open Catalog, não é necessário criar um novo ponto de extremidade privado para a sua conta do Open Catalog. Opcionalmente, você pode ignorar essa etapa.
Recupere os detalhes de sua conta do Azure. O exemplo a seguir usa o comando
az account list
do Azure CLI.Name CloudName SubscriptionId State IsDefault ------- ---------- ------------------------------------ ------- ---------- MyCloud AzureCloud 13c... Enabled True
No portal do Azure, pesquise por Private Link e, em seguida, selecione Private Link nos resultados.
Clique em Private endpoints e, em seguida, clique em Add.
![Diagrama conceitual do Open Catalog] (img/private-connectivity-inbound-azure-privatelink-endpoint.png)
Na guia Basics, complete os campos Subscription, Resource group, Name e Region para o seu ambiente e clique em Next: Resource.
Na guia Resource, para Connection Method, selecione Connect to an Azure resource by resource ID or alias.
Para Resource ID or alias, digite o valor para
Private Link Service ID
que você obteve quando recuperou as configurações da conta do Open Catalog para conectividade privada.Se você receber uma mensagem de erro referente ao valor do alias, entre em contato com o Suporte Snowflake para obter o valor do ID do recurso e, em seguida, repita esta etapa usando esse valor.
Quando o ponto de extremidade privado é aprovado, CONNECTION STATE na seção de pontos de extremidade privados na página Private Link Center exibe o valor Pending. Esse valor muda para Approved quando você concluir a autorização no próximo procedimento.
Habilitar a conectividade privada de entrada¶
Neste procedimento, você habilita o Azure Private Link para sua conta do Open Catalog. Essa configuração permite que o mecanismo de consulta se conecte ao Open Catalog por meio de conectividade privada. Você precisará do seu ID de recurso de ponto de extremidade privado, de um ID de assinatura e do valor do token federado que contém as credenciais de acesso de um usuário federado.
Para obter esses valores, execute os seguintes comandos no Azure CLI:
Para obter seu ID de recurso de ponto de extremidade privado, execute o seguinte comando e copie o valor em um editor de texto:
az network private-endpoint show
Para obter o ID da assinatura, execute o seguinte comando e anote o valor na coluna SubscriptionID na saída:
az account list --output table
Para obter o valor do token federado, execute o seguinte comando e copie o valor accessToken em um editor de texto:
az account get-access-token --subscription <SubscriptionID>
Onde:
SubscriptionID
é o identificador exclusivo que você obteve na etapa anterior.
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 de
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.
Entre no Snowflake Open Catalog.
No menu de navegação, selecione Settings.
Selecione Authorize.
Na caixa de diálogo Authorize Private Link, ative a conectividade privada para sua conta:
Para ID, digite o ID do recurso de ponto de extremidade privado que você copiou para um editor de texto.
Para Federated token, digite o valor do federated token que você copiou em um editor de texto.
Selecione Save.
Configuração de DNS¶
Todas as solicitações ao Open Catalog devem ser encaminhadas por meio do ponto de extremidade privado. Para resolver a conta do Open Catalog e OCSP URLs para o endereço IP privado de seu ponto de extremidade privado, atualize seu DNS.
Para obter o endereço IP do ponto de extremidade, na barra de pesquisa do portal do Azure, digite o nome do ponto de extremidade privado que você criou.
Selecione o resultado da interface de rede.
Copie o valor do endereço IP privado.
Configure seu DNS para que os valores de ponto de extremidade apropriados de suas configurações de conta do Open Catalog para conectividade privada sejam resolvidos para o endereço IP privado.
Etapa 3: Conecte-se ao Open Catalog por meio do Azure Private Link¶
Para registrar uma conexão de serviço e conectar seu mecanismo de consulta ao Open Catalog por meio do Azure Private Link, use o seguinte código:
import pyspark from pyspark.sql import SparkSession spark = SparkSession.builder.appName('iceberg_lab') \ .config('spark.jars.packages', 'org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.4.1,<maven_coordinate>') \ .config('spark.sql.extensions', 'org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions') \ .config('spark.sql.defaultCatalog', 'opencatalog') \ .config('spark.sql.catalog.opencatalog', 'org.apache.iceberg.spark.SparkCatalog') \ .config('spark.sql.catalog.opencatalog.type', 'rest') \ .config('spark.sql.catalog.opencatalog.uri','https://<open_catalog_privatelink_account_url>/polaris/api/catalog') \ .config('spark.sql.catalog.opencatalog.header.X-Iceberg-Access-Delegation','vended-credentials') \ .config('spark.sql.catalog.opencatalog.credential','<client_id>:<client_secret>') \ .config('spark.sql.catalog.opencatalog.warehouse','<catalog_name>') \ .config('spark.sql.catalog.opencatalog.scope','PRINCIPAL_ROLE:<principal_role_name>') \ .getOrCreate()
Parâmetros¶
Nota
Certifique-se de configurar o serviço DNS para corresponder ao valor especificado para <open_catalog_account_identifier>
.
Parâmetro |
Descrição |
---|---|
|
Especifica o nome do catálogo ao qual se conectar. |
|
Especifica a coordenada Maven para seu provedor de armazenamento em nuvem externo:
|
|
Especifica o ID de cliente a ser usado pela entidade de serviço. |
|
Especifica o segredo de cliente a ser usado pela entidade de serviço. |
|
Especifica o URL para se conectar à sua conta Snowflake usando AWS PrivateLink ou o Azure Private Link.
|
|
Especifica a função principal concedida ao principal de serviço. |
Etapa 4 (opcional): Crie uma integração de catálogo para o Snowflake¶
Se você estiver usando o Snowflake para consultar tabelas gerenciadas pelo Open Catalog, crie um catálogo para o Snowflake que use um endereço IP privado. Para criar essa integração de catálogo, sua conta Snowflake deve estar na mesma implantação que sua conta do Open Catalog.
Para obter um exemplo, consulte Exemplo: Integração de catálogo que usa um endereço privado IP <https://docs.snowflake.com/en/user-guide/tables-iceberg-open-catalog-query#example-catalog-integration-that-uses-a-private-ip-address>
_ na documentação do Snowflake.
Nota
Você também pode configurar a conectividade privada para o Snowflake Open Catalog UI. Essa configuração, combinada com a configuração da conectividade privada para sua conta do Open Catalog, permite que você acesse o Open Catalog UI por meio de conectividade privada em vez de pela Internet pública.
Para configurar esse acesso, consulte Configurar conectividade privada para o Snowflake Open Catalog UI.