Configuração de um volume externo para o Azure

Conceda ao Snowflake acesso restrito ao seu próprio contêiner do Microsoft Azure usando um volume externo. Snowflake oferece suporte aos seguintes serviços de armazenamento em nuvem do Azure para volumes externos:

  • Armazenamento de blobs

  • Data Lake Storage Gen2

  • Uso geral v1

  • Uso geral v2

Pré-requisitos

Antes de configurar um volume externo, você precisa do seguinte:

  • Um contêiner de armazenamento do Azure na mesma região que hospeda sua conta Snowflake.

  • Permissões no Azure para criar e gerenciar políticas e funções IAM. Se você não é um administrador Azure, peça a seu administrador Azure para realizar essas tarefas.

Se você usar um firewall de armazenamento do Azure para bloquear tráfego não autorizado para sua conta de armazenamento, siga as instruções em Permissão de IDs da sub-rede VNet para conceder explicitamente acesso do Snowflake à sua conta de armazenamento do Azure.

Etapa 1: criar um volume externo no Snowflake

Crie um volume externo usando o comando CREATE EXTERNAL VOLUME.

Nota

Somente administradores de conta (usuários com a função ACCOUNTADMIN) podem executar este comando SQL.

O exemplo a seguir cria um volume externo que define um local de armazenamento do Azure com criptografia:

CREATE EXTERNAL VOLUME exvol
  STORAGE_LOCATIONS =
    (
      (
        NAME = 'my-azure-northeurope'
        STORAGE_PROVIDER = 'AZURE'
        STORAGE_BASE_URL = 'azure://exampleacct.blob.core.windows.net/my_container_northeurope/'
        AZURE_TENANT_ID = 'a123b4c5-1234-123a-a12b-1a23b45678c9'
      )
    );
Copy

Nota

Use o prefixo azure:// e não https:// ao especificar um valor para STORAGE_BASE_URL.

Etapa 2: conceder ao Snowflake acesso aos locais de armazenamento

  1. Para recuperar um URL para a página de solicitação de permissões da Microsoft, use o comando DESCRIBE EXTERNAL VOLUME. Especifique o nome do volume externo criado anteriormente.

    DESC EXTERNAL VOLUME exvol;
    
    Copy

    Registre os valores para as seguintes propriedades:

    Propriedade

    Descrição

    AZURE_CONSENT_URL

    URL para a página de solicitação de permissões da Microsoft.

    AZURE_MULTI_TENANT_APP_NAME

    Nome do aplicativo cliente do Snowflake criado para sua conta. Em uma etapa posterior desta seção, você concede a este aplicativo a permissão para obter um token de acesso em seus locais de armazenamento permitidos.

    Você usa esses valores nas etapas a seguir.

  2. Em um navegador da Web, navegue até a página de solicitação de permissões da Microsoft (o AZURE_CONSENT_URL).

  3. Selecione Accept. Essa ação permite que a entidade do serviço Azure criada para sua conta Snowflake obtenha um token de acesso a um recurso especificado dentro de seu locatário. A obtenção de um token de acesso só tem sucesso se você conceder à entidade de serviço as permissões apropriadas no nível da conta de armazenamento (consulte a próxima etapa).

    A página de solicitações de permissão da Microsoft é redirecionada para o site corporativo da Snowflake (snowflake.com).

  4. Entre no portal do Microsoft Azure.

  5. Vá para Azure Services » Storage Accounts. Selecione o nome da conta de armazenamento que a entidade de serviço Snowflake precisa acessar.

    Nota

    Você deve definir as permissões IAM para um volume externo no nível da conta de armazenamento, não no nível do container.

  6. Selecione Access Control (IAM) » Add role assignment.

  7. Selecione a função Storage Blob Data Contributor para conceder acesso de leitura e gravação à entidade de segurança de serviço Snowflake.

    Nota

    A função Storage Blob Data Contributor concede acesso de gravação ao local do volume externo. Para configurar completamente o acesso de gravação, você deve definir o parâmetro ALLOW_WRITES do volume externo como TRUE (o valor padrão).

  8. Pesquise a entidade de segurança do serviço Snowflake. Esta é a identidade na propriedade AZURE_MULTI_TENANT_APP_NAME na saída DESC EXTERNAL VOLUME (na Etapa 1). Pesquise a cadeia de cadeia de caracteres antes do sublinhado na propriedade AZURE_MULTI_TENANT_APP_NAME.

    Importante

    • Pode levar uma hora ou mais para que o Azure crie a entidade de segurança do serviço Snowflake solicitada por meio da página de solicitação da Microsoft nesta seção. Se a entidade de segurança de serviço não estiver disponível imediatamente, aguarde uma ou duas horas e depois procure novamente.

    • Se você excluir a entidade de segurança de serviço, o volume externo deixa de funcionar.

    Adição da atribuição de função no console de armazenamento do Azure
  9. Selecione Review + assign.

    Nota

    Pode levar até 10 minutos para que as alterações entrem em vigor quando você atribui uma função. Para obter mais informações, consulte Sintoma – não estão sendo detectadas alterações de atribuição de função na documentação do Microsoft Azure.

Etapa 3: verificar o acesso ao armazenamento

Para verificar se o Snowflake pode se autenticar com sucesso no seu provedor de armazenamento, chame a função SYSTEM$VERIFY_EXTERNAL_VOLUME.

SELECT SYSTEM$VERIFY_EXTERNAL_VOLUME('my_s3_external_volume');
Copy

Próximos passos

Depois de configurar um volume externo, você poderá criar uma tabela Iceberg.