Gerenciar pontos de extremidade de conectividade privada para o Snowflake Open Catalog: Azure

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

Pré-requisitos

  • Sua 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 de suas contas de armazenamento do Azure para permitir solicitações que são roteadas por meio de pontos de extremidade de conectividade privada específicos.

  • O mecanismo de consulta de terceiros ou o mecanismo Snowflake deve ter acesso ao armazenamento do Azure por meio do Azure Private Link. Aqui estão as opções para conceder esse acesso:

    • Use pontos de extremidade privados para o Azure Storage. Para obter instruções, consulte Usar pontos de extremidade privados para o Azure Storage na documentação do Azure.

    • Use um ponto de extremidade do serviço do Azure.

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

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

Etapa 1: Crie uma conexão do Snowflake CLI para o Open Catalog

Para configurar a conectividade privada no Open Catalog, você precisa de uma conexão do Snowflake CLI para o Open Catalog. Siga estas etapas para criar essa conexão. Se você ainda não tiver 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 de conta inclui o nome da organização do Snowflake e o nome da conta do Open Catalog; por exemplo, <orgname>.<my-snowflake-open-catalog-account-name>.

  • Para encontrar o nome da 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 da conta do Snowflake Open Catalog <https://other-docs.snowflake.com/en/opencatalog/find-account-name>_.

Importante

Para criar essa conexão, você deve ser um 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.

Adicionar uma conexão Snowflake CLI para o Snowflake Open Catalog

Adicione uma conexão para a conta do Snowflake Open Catalog na qual você deseja ativar a conectividade privada.

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

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

    Valor

    Nome para essa conexão

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

    Nome da conta

    Especifique o nome da organização do Snowflake, seguido do nome da 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 para o 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 para o 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 a conexão do Snowflake CLI

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

    snow connection test -c myopencatalogconnection
    
    Copy

    A resposta deve ser semelhante a esta:

    +------------------------------------------------------------------------------+
    | 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

Defina sua conexão do Snowflake CLI para o Snowflake Open Catalog como padrão

Para garantir que a conexão que você está usando sempre tenha a função POLARIS_ACCOUNT_ADMIN necessária concedida a ela, é possível definir a conexão do Snowflake CLI criada para o Open Catalog como a conexão padrão. Para obter mais informações sobre a conexão padrão, consulte Definir a 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 que 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 CURRENT ROLE deve ser POLARIS_ACCOUNT_ADMIN.

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

Etapa 2: Provisione um ponto de extremidade de conectividade privada para uma conta de armazenamento

Você deve provisionar um ponto de extremidade de conectividade privada para cada conta de armazenamento que deseja usar com sua conta do Open Catalog.

Nota

Se estiver provisionando um ponto de extremidade de conectividade privada para uma conta de armazenamento do Data Lake Storage (não uma conta de armazenamento de blob), você deverá provisionar dois pontos de extremidade de conectividade privada. Um deles é para o ponto de extremidade DFS e o outro é para o ponto de extremidade blob. Para obter um exemplo, consulte Provisionar pontos de extremidade de conectividade privada para uma conta de armazenamento do 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 de sistema SYSTEM$PROVISION_PRIVATELINK_ENDPOINT.

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

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

Importante

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

  • Se a conexão padrão do Snowflake CLI que você definiu não tiver a função POLARIS_ACCOUNT_ADMIN concedida a ela, será necessário incluir a seguinte instrução no comando: USE ROLE POLARIS_ACCOUNT_ADMIN;

  • Com o seu comando, você deve inserir uma barra imediatamente antes de $ para escapá-lo. Por exemplo, snow sql -q "SELECT SYSTEM\$GET_PRIVATELINK_CONFIG();".

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

Se estiver usando uma conta de armazenamento do Data Lake Storage para armazenar suas tabelas Iceberg, você deverá 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:

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

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

Provisione 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: Configure o acesso à rede pública para sua conta de armazenamento

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

  • Desative todo o acesso à rede pública

  • Desative todo o acesso à rede pública, exceto para as redes virtuais e os endereços IP que você especificar

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

Etapa 4: Habilite a conectividade privada para um catálogo

Nesta etapa, você habilita a conectividade privada para um catálogo em sua conta do Open Catalog. Você pode ativar a conectividade privada para um catálogo novo ou existente:

Habilitar a conectividade privada para um novo catálogo

Siga as instruções em Criar um catálogo usando o Azure Storage. Certifique-se de que, para o catálogo, a opção Private Link esteja Enabled.

Habilitar a 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 o catálogo para o qual você deseja ativar a conectividade privada.

  4. Na guia Catalog Details, defina a opção PrivateLink como Enabled.

Etapa 5: Aprove uma conexão de ponto de extremidade privado para 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 realizar uma das seguintes ações:

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

    • Se houver uma tabela armazenada em seu catálogo, tente carregar a tabela.

    Nota

    Se não for possível 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 para o mecanismo de consulta. Para obter mais informações, consulte Usar pontos de extremidade privados para o Azure Storage e 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 de sua conta de armazenamento.

    2. Aprove a solicitação de conexão para a conexão do 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 oferece 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 no 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 êxito as configurações de rede da sua conta de armazenamento para rotear o tráfego de rede por meio do ponto de extremidade VPC. No entanto, no Open Catalog, você não ativou a conectividade privada para esse catálogo, portanto, o Open Catalog não pode acessar o seu bucket.

Solução

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

Recebeu uma mensagem de erro «Failed to get subscoped credentials» 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 ativou 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, de modo que o mecanismo de consulta não pode acessar o armazenamento.

Solução

Siga estes passos: