AWS PrivateLink e Snowflake Open Catalog¶
Este tópico descreve como configurar o AWS PrivateLink para conectar diretamente sua conta do Snowflake Open Catalog ao mecanismo de consulta usando a conectividade privada de entrada.
Pré-requisitos¶
A conta do Snowflake Open Catalog está hospedada na AWS.
Você tem as permissões necessárias para configurar o serviço DNS da AWS com o URL da conectividade privada da sua conta do Open Catalog. Para obter orientação, consulte Como configurar o serviço DNS da AWS (Route 53) para acessar o Snowflake por PrivateLink na comunidade Snowflake.
Etapa 1: Habilitação do AWS PrivateLink¶
Neste procedimento, você habilita o AWS PrivateLink em sua conta do Open Catalog. Essa configuração permite que o mecanismo de consulta se conecte ao Open Catalog por meio da conectividade privada. Você precisará do identificador de 12 dígitos da sua conta Amazon Web Services (AWS) e o valor do token federado que contém as credenciais de acesso para um usuário federado.
Para obter o valor do token federado, execute o seguinte comando usando o AWS CLI e copie o valor em um editor de texto:
aws sts get-federation-token --name sam
Entre no Snowflake Open Catalog.
No menu de navegação, selecione Settings.
Selecione Authorize.
Na caixa de diálogo Authorize Private Link, habilite a conectividade privada na sua conta:
No campo ID, insira o identificador de 12 dígitos da conta Amazon Web Services (AWS).
Em Federated token, insira o valor do token federado que você copiou para um editor de texto.
Selecione Save.
Etapa 3: Recuperação das configurações da conta do Open Catalog¶
Recupere essas configurações, que você precisará mais tarde para criar e configurar um ponto de extremidade VPC e sua rede VPC.
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:
URL da conta PrivateLink
URL da conta PrivateLink sem região
PrivateLink OCSP URL
URL OCSP do PrivateLink sem região
ID do serviço VPCE
Você cola esses valores quando criar e configurar um ponto de extremidade VPC (VPCE), configurar sua rede VPC e conectar-se ao Open Catalog por meio do AWS PrivateLink.
Para ver as descrições de cada configuração, consulte Valores de retorno para a função do sistema SYSTEM$GET_PRIVATELINK_CONFIG na documentação do Snowflake. Neste tópico, os nomes das configurações da conta estão no formato JSON.
Nota
Lembre-se de que, quando aplicável, a descrição menciona uma conta Snowflake, mas seu valor é, na verdade, referente à sua conta do Snowflake Open Catalog. Por exemplo, o privatelink-account-url
é o URL da sua conta do Snowflake Open Catalog.
Opcional: Para recuperar esses valores no formato JSON, crie uma conexão do Snowflake CLI para Open Catalog e, em seguida, chame a função do sistema SYSTEM$GET_PRIVATELINK_CONFIG.
Na documentação do Snowflake,
privatelink-vpce-id
corresponde ao ID do serviço VPCE no Open Catalog.
Etapa 4: Criação e configuração de um ponto de extremidade VPC¶
Neste procedimento, você cria e configura um ponto de extremidade VPC correspondente (VPCE) no ambiente AWS VPC.
Nota
Se você já criou um ponto de extremidade VPC para sua conta Snowflake, e a conta está na mesma implantação que a conta do Open Catalog, não é necessário criar um novo ponto de extremidade VPC para a conta do Open Catalog. Você pode ignorar essa etapa.
Para obter instruções, consulte Criação e configuração de um ponto de extremidade VPC (VPCE) na documentação do Snowflake, começando pela etapa 2.
Etapa 5: Configuração de sua rede VPC¶
Para configurar sua rede VPC, crie registros CNAME em seu serviço DNS para resolver os valores de ponto de extremidade apropriados nas Configurações da conta do Open Catalog para conectividade privada para o nome DNS do seu ponto de extremidade VPC.
Para obter instruções, consulte Configuração da rede VPC na documentação do Snowflake. Lembre-se de que essas instruções são para o Snowflake, portanto, alguns dos recursos mencionados nelas não se aplicam ao Open Catalog. Por exemplo, regionless-snowsight-privatelink-url
é para o Snowsight, que não tem suporte no Open Catalog.
Para obter mais ajuda com a configuração de DNS, entre em contato com seu administrador AWS interno.
Etapa 6: Conexão com o Open Catalog por meio do AWS PrivateLink¶
Para registrar uma conexão de serviço e conectar seu mecanismo de consulta ao Snowflake Open Catalog por meio do AWS PrivateLink, use o 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 que você configurou 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 do cliente que a entidade de serviço deve usar. |
|
Especifica o segredo de cliente que a entidade de serviço deve usar. |
|
Especifica o URL para conectar à sua conta Snowflake usando o AWS PrivateLink ou o Azure Private Link.
|
|
Especifica a função de entidade concedida à entidade de serviço. |
Etapa 7 (opcional): Criação de integração de catálogo para Snowflake¶
Se você usa 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, a conta Snowflake deve estar na mesma implantação que a conta do Open Catalog.
Para ver um exemplo, consulte Exemplo: integração de catálogo que usa um endereço IP privado <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
É possível também configurar a conectividade privada para a Snowflake Open Catalog UI. Essa configuração, combinada com a configuração da conectividade privada para a conta do Open Catalog, permite que você acesse a Open Catalog UI por meio da conectividade privada em vez da internet pública.
Para configurar esse acesso, consulte Configuração da conectividade privada para Snowflake Open Catalog UI.