Gerenciamento de pontos de extremidade de conectividade privada para Snowflake Open Catalog: Azure

Siga estas etapas para configurar a conectividade privada de saída para o tráfego de rede de saída quando os dados de seus catálogos estão no armazenamento em nuvem do Azure.

Pré-requisitos

  • A conta do Open Catalog e o armazenamento em nuvem externo devem estar hospedados no Azure.

  • Você precisa de permissões para definir as regras de firewall para suas contas de Armazenamento do Azure para permitir solicitações roteadas por pontos de extremidade de conectividade privada específicos.

  • O mecanismo de consulta de terceiro ou o mecanismo Snowflake deve ter acesso ao seu Armazenamento do Azure pelo Azure Private Link. Aqui estão as opções para conceder esse acesso:

    • Usar pontos de extremidade privados para o Armazenamento do Azure. Para ver as instruções, consulte Usar pontos de extremidade privados para o Armazenamento do Azure na documentação do Azure.

    • Usar um ponto de extremidade do Serviço do Azure.

    • Altere as configurações do firewall para incluir na lista de permissão o endereço IP da máquina na qual o mecanismo de consulta é executado.

    Caso contrário, quando você habilitar a conectividade privada de saída, o mecanismo não poderá ler ou gravar nas tabelas armazenadas no bucket, e o Open Catalog não poderá ler ou gravar metadados no bucket.

Etapa 1: Criação de conexão do Snowflake CLI para Open Catalog

Para configurar a conectividade privada no Open Catalog, você precisa de uma conexão do Snowflake CLI para Open Catalog. Siga as etapas abaixo para criar essa conexão. Se você ainda não tem o Snowflake CLI instalado, consulte Instalação do Snowflake CLI.

Antes de começar

Para criar uma conexão do Snowflake CLI para o Open Catalog, você precisa do identificador completo da sua conta do Open Catalog. O identificador da conta inclui o nome da organização Snowflake e o nome da conta do Open Catalog, por exemplo, <orgname>.<my-snowflake-open-catalog-account-name>.

  • Para encontrar o nome da sua organização Snowflake (<orgname>), consulte Como encontrar o nome da conta e organização de uma conta <https://docs.snowflake.com/en/user-guide/admin-account-identifier.html#label-account-name-find>_.

  • Para encontrar o nome da sua conta do Snowflake Open Catalog (<my-snowflake-open-catalog-account-name>), consulte Encontrar o nome de uma conta do Snowflake Open Catalog <https://other-docs.snowflake.com/en/opencatalog/find-account-name>_.

Importante

Para criar essa conexão, você deve ser usuário do Open Catalog com privilégios de administrador de serviço. Para obter informações sobre privilégios de administrador de serviço, consulte Função de administrador de serviço.

Adição da conexão do Snowflake CLI para Snowflake Open Catalog

Adicione uma conexão para a conta do Snowflake Open Catalog em que você quer habilitar a conectividade privada.

  • Adicione uma conexão <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#add-a-connection>_ com os valores a seguir. Para todos os outros parâmetros, pressione Enter para ignorar a especificação de um valor para o parâmetro.

    Parâmetros de configuração da conexão

    Valor

    Nome desta conexão

    Especifique um nome para a conexão, por exemplo, myopencatalogconnection.

    Nome da conta

    Especifique o nome da sua organização Snowflake, seguido do nome da sua conta do Open Catalog, neste formato:

    <orgname>-<my-snowflake-open-catalog-account-name>.

    Por exemplo, ABCDEFG-MYACCOUNT1.

    Para encontrar esses nomes, consulte Antes de começar_.

    Nome de usuário

    Especifique seu nome de usuário do Open Catalog, por exemplo, jsmith.

    Senha [opcional]

    Esse parâmetro não é opcional quando você cria uma conexão para o Open Catalog.

    Digite sua senha do Open Catalog, por exemplo, MyPassword123456789.

    Função para a conexão [opcional]

    Esse parâmetro não é opcional quando você cria uma conexão para o Open Catalog.

    Você deve inserir POLARIS_ACCOUNT_ADMIN.

Teste da conexão do Snowflake CLI

  • Para testar a conexão do CLI, siga este exemplo, que testa a conexão para myopencatalogconnection:

    snow connection test -c myopencatalogconnection
    
    Copy

    A resposta deve ser assim:

    +------------------------------------------------------------------------------+
    | key              | value                                                     |
    |----------------------------+-------------------------------------------------|
    | Connection name  | myopencatalogconnection                                   |
    | Status           | OK                                                        |
    | Host             | ABCDEFG-MYACCOUNT1.snowflakecomputing.com                 |
    | Account          | ABCDEFG-MYACCOUNT1                                        |
    | User             | jsmith                                                    |
    | Role             | POLARIS_ACCOUNT_ADMIN                                     |
    | Database         | not set                                                   |
    | Warehouse        | not set                                                   |
    +------------------------------------------------------------------------------+
    
    Copy

Configuração da conexão do Snowflake CLI para Snowflake Open Catalog como padrão

Para garantir que a conexão que você sempre usa tenha a função POLARIS_ACCOUNT_ADMIN necessária, defina a conexão do Snowflake CLI que você criou para o Open Catalog como padrão. Para obter mais informações sobre a conexão padrão, consulte Definição da conexão padrão <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#set-the-default-connection>_.

  1. Siga este exemplo, que define a conexão myopencatalogconnection como padrão:

    snow connection set-default myopencatalogconnection
    
    Copy
  2. Para confirmar se você está usando o usuário e a função corretos, execute o seguinte:

    snow sql -q "Select current_user(); select current_role();"
    
    Copy

    A resposta deve retornar seu nome de usuário do Open Catalog e a CURRENT ROLE deve ser POLARIS_ACCOUNT_ADMIN.

    +----------------+
    | CURRENT_USER() |
    |----------------|
    | JSMITH        |
    +----------------+
    select current_role();
    +-----------------------+
    | CURRENT_ROLE()        |
    |-----------------------|
    | POLARIS_ACCOUNT_ADMIN |
    +-----------------------+
    
    Copy

Etapa 2: Provisionamento de ponto de extremidade de conectividade privada para conta de armazenamento

É necessário provisionar um ponto de extremidade de conectividade privada para cada conta de armazenamento que você quer usar com sua conta do Open Catalog.

Nota

Se você estiver provisionando um ponto de extremidade de conectividade privada para uma conta de armazenamento Data Lake Storage (não uma conta de armazenamento de blobs), deverá provisionar dois pontos de extremidade de conectividade privada. Um desses pontos de extremidade é para o DFS, e o outro é para o blob. Para ver um exemplo, consulte Provisionamento de pontos de extremidade de conectividade privada para conta de armazenamento Data Lake Storage.

Use a conexão do Snowflake CLI para o Open Catalog para chamar as seguintes funções do sistema:

  1. Para provisionar um ponto de extremidade de conectividade privada para a conta de armazenamento, chame a função do sistema SYSTEM$PROVISION_PRIVATELINK_ENDPOINT.

  2. Para confirmar se o ponto de extremidade de conectividade privada está pronto para uso, chame a função do sistema SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO.

Para obter instruções, consulte Gerenciamento de pontos de extremidade de conectividade privada: Azure na documentação do Snowflake. Lembre-se de que as instruções mencionam uma conta Snowflake em vez de uma conta do Snowflake Open Catalog, mas o processo é o mesmo no Open Catalog.

Importante

  • Você deve usar a função POLARIS_ACCOUNT_ADMIN em vez da ACCOUNTADMIN mencionada nas instruções.

  • Se a conexão padrão do Snowflake CLI que você definiu não tem a função POLARIS_ACCOUNT_ADMIN, inclua a seguinte instrução com o comando: USE ROLE POLARIS_ACCOUNT_ADMIN;.

  • Com o comando, você deve inserir uma barra como caractere de escape logo antes de $. Por exemplo, snow sql -q "SELECT SYSTEM\$GET_PRIVATELINK_CONFIG();".

Exemplo: provisionamento de pontos de extremidade de conectividade privada para uma conta de armazenamento Data Lake Storage

Se você usa uma conta de armazenamento Data Lake Storage para armazenar as tabelas Iceberg, deve provisionar dois pontos de extremidade de conectividade privada para a conta. Para obter mais informações, consulte Criação de um ponto de extremidade privado na documentação do Azure.

Por exemplo:

Provisionamento de um ponto de extremidade privado para o ponto de extremidade blob

SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
'/subscriptions/mysubscriptionid/resourceGroups/mystorage/providers/Microsoft.Storage/storageAccounts/storagedemo',
  'storagedemo.blob.core.windows.net',
  'blob'
);
Copy

Provisionamento de um ponto de extremidade privado para o ponto de extremidade DFS

SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
'/subscriptions/mysubscriptionid/resourceGroups/mystorage/providers/Microsoft.Storage/storageAccounts/storagedemo',
  'storagedemo.dfs.core.windows.net',
  'dfs'
);
Copy

Etapa 3: Configuração do acesso de rede pública à sua conta de armazenamento

No Azure, navegue até as configurações de rede em sua conta de armazenamento e configure o acesso da rede pública a ela. Você pode configurar esse acesso como um dos seguintes:

  • Desabilitação de todo o acesso da rede pública

  • Desabilitação de todo o acesso da rede pública, exceto o das redes virtuais e endereços IP que você especificar

Para obter mais informações, consulte Configuração de firewalls e redes virtuais do Armazenamento do Azure na documentação do Azure.

Etapa 4: Habilitação da conectividade privada para um catálogo

Nesta etapa, você habilita a conectividade privada para um catálogo na sua conta do Open Catalog. É possível habilitar a conectividade privada para um catálogo novo ou existente:

Habilitação da conectividade privada para um novo catálogo

Siga as instruções em Criação de um catálogo usando o Armazenamento do Azure. Certifique-se de que, para o catálogo, o botão de alternância Private Link esteja habilitado.

Habilitação da conectividade privada para um catálogo existente

  1. Entre no Open Catalog.

  2. No menu de navegação, selecione Catalogs.

  3. Na lista de catálogos, selecione aquele no qual você quer habilitar a conectividade privada.

  4. Na guia Catalog Details, defina o botão de alternância PrivateLink como Enabled.

Etapa 5: Aprovação de conexão de ponto de extremidade privado com sua conta de armazenamento

Para aprovar a conexão, você deve primeiro criar ou carregar uma tabela em seu catálogo. A execução de uma dessas ações gera uma solicitação de aprovação de conexão de ponto de extremidade privado no Azure.

  1. Use seu mecanismo de consulta para fazer uma das seguintes opções:

    • Se não houver tabelas armazenadas em seu catálogo, para criar uma em sua conta do Open Catalog, use o mecanismo de consulta e insira dados nela.

    • Se houver uma tabela armazenada em seu catálogo, tente carregá-la.

    Nota

    Se não conseguir inserir dados na tabela, talvez você não tenha configurado o Azure Private Link para o mecanismo de consulta; nesse caso, o mecanismo de consulta não está conectado ao catálogo por meio do Azure Private Link. Para resolver isso, configure o Azure Private Link no mecanismo de consulta. Para obter mais informações, consulte Usar pontos de extremidade privados para o Armazenamento do Azure e o Tutorial: Conectar-se a uma conta de armazenamento usando um ponto de extremidade privado do Azure na documentação do Azure.

  2. No Azure, siga estas etapas:

    1. Navegue até as configurações de rede da sua conta de armazenamento.

    2. Aprove a solicitação para a conexão de ponto de extremidade privado. Se você criou uma tabela, ela é criada na conta de Armazenamento do Azure quando você aprova a solicitação.

Solução de problemas

Esta seção apresenta a solução de problemas com a conectividade privada de saída para o tráfego de rede.

Não é possível visualizar o esquema de uma tabela no Open Catalog

Sintoma

No Open Catalog, você seleciona uma tabela em seu catálogo (por exemplo, catalog1), mas recebe a seguinte mensagem de erro: «No permissions to access this resource.»

Causa

No Azure, você atualizou com sucesso as configurações de rede da sua conta de armazenamento para rotear o tráfego de rede por meio do seu ponto de extremidade VPC. No entanto, no Open Catalog, você não habilitou a conectividade privada para esse catálogo; por isso, o Open Catalog não pode acessar seu bucket.

Solução

Habilite a conectividade privada para o catálogo (por exemplo, catalog1). Para obter detalhes, consulte Habilitação da conectividade privada para um catálogo.

A mensagem de erro «Failed to get subscoped credentials» foi recebida no mecanismo de consulta

Sintoma

Você tenta ler ou gravar dados em uma tabela usando um mecanismo de consulta, mas recebe a seguinte mensagem de erro: «Failed to get subscoped credentials.»

Causa

Você bloqueou sua conta de armazenamento, mas não provisionou o ponto de extremidade de conectividade privada nem habilitou a conectividade privada em sua conta do Open Catalog. Como resultado, o Open Catalog não pode gerar as credenciais de subescopo e retorná-las ao mecanismo de consulta, portanto, o mecanismo de consulta não pode acessar o armazenamento.

Solução

Siga estes passos: