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.
Para usar o volume externo para tabelas Iceberg gerenciadas externamente, todos os dados da tabela e arquivos de metadados devem estar localizados no contêiner.
Para oferecer suporte à recuperação de dados, ative o controle de versão para seu local de armazenamento em nuvem externo.
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'
)
);
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¶
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;
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.
Em um navegador da Web, navegue até a página de solicitação de permissões da Microsoft (o
AZURE_CONSENT_URL
).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).
Entre no portal do Microsoft Azure.
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.
Selecione Access Control (IAM) » Add role assignment.
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âmetroALLOW_WRITES
do volume externo comoTRUE
(o valor padrão).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.
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');
Próximos passos¶
Depois de configurar um volume externo, você poderá criar uma tabela Iceberg.
Para criar uma tabela Iceberg somente leitura que usa um catálogo externo, consulte Configurar uma integração de catálogo.
Para criar uma tabela Iceberg com suporte completo à plataforma Snowflake, consulte Criar uma tabela gerenciada pelo Snowflake.