AWS PrivateLink e Snowflake Open Catalog¶
Este tópico descreve como configurar o AWS PrivateLink para conectar diretamente a 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 na AWS.
Você tem as permissões necessárias para configurar seu serviço AWS DNS com a conectividade privada URL para sua conta do Open Catalog. Para obter orientação, consulte Como configurar o serviço AWS DNS (Route 53) para acessar o Snowflake por meio de um PrivateLink na Comunidade Snowflake.
Etapa 1: Habilite o AWS PrivateLink¶
Neste procedimento, você habilita o AWS PrivateLink 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 identificador de 12 dígitos da sua conta do Amazon Web Services (AWS) e do valor do token federado que contém as credenciais de acesso de 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, ative a conectividade privada para sua conta:
No campo ID, digite o identificador de 12 dígitos da sua conta do Amazon Web Services (AWS).
Para Federated token, digite o valor do federated token que você copiou em um editor de texto.
Selecione Save.
Etapa 3: Recupere as configurações de sua conta do Open Catalog¶
Recupere essas configurações, que serão necessárias posteriormente 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:
PrivateLink Account URL
Regionless PrivateLink Account URL
PrivateLink OCSP URL
Regionless PrivateLink OCSP URL
VPCE Service ID
Você cola esses valores quando cria e configura um ponto de extremidade VPC (VPCE), configura sua rede VPC e conecta-se ao Open Catalog por meio do AWS PrivateLink.
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.
Na documentação do Snowflake,
privatelink-vpce-id
corresponde ao serviço VPCE ID no Open Catalog.
Etapa 4: Crie e configure um ponto de extremidade VPC¶
Neste procedimento, você cria e configura um ponto de extremidade VPC correspondente (VPCE) em seu 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 Open Catalog, não é necessário criar um novo ponto de extremidade VPC para a conta Open Catalog. Opcionalmente, você pode ignorar essa etapa.
Para obter instruções, consulte Criar e configurar um ponto de extremidade VPC (VPCE) na documentação do Snowflake, começando pela etapa 2.
Etapa 5: Configure sua rede VPC¶
Para configurar a rede VPC, crie registros CNAME no serviço DNS para resolver os valores apropriados do ponto final das 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 Configurar sua 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 é compatível com o Open Catalog.
Para obter ajuda adicional com a configuração do DNS, entre em contato com o administrador interno do AWS.
Etapa 6: Conecte-se ao 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 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 7 (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.