Criação de um catálogo

O administrador do serviço Snowflake Open Catalog cria um catálogo.

As etapas para criar um catálogo dependem de seu provedor de armazenamento em nuvem.

Ao criar um catálogo, você fornece informações sobre seu armazenamento em nuvem externo, e o Snowflake Open Catalog usa essas informações para criar uma configuração de armazenamento. Esta configuração armazena uma entidade de gerenciamento de identidade e acesso (IAM) para seu armazenamento. O Open Catalog usa a entidade IAM para se conectar com segurança aos seus locais de armazenamento para acessar dados de tabela, metadados do Apache Iceberg™ e arquivos de manifesto.

Para obter instruções, consulte as seguintes seções:

Crie um catálogo usando o Amazon Simple Storage Service (Amazon S3)

Pré-requisitos

  • Um bucket de armazenamento S3 na mesma região que hospeda sua conta Snowflake

    • O Open Catalog não oferece suporte a nomes de bucket com pontos (por exemplo, my.s3.bucket). O Open Catalog usa caminhos no estilo de hospedagem virtual e HTTPS para acessar dados no S3. No entanto, S3 não oferece suporte a SSL para buckets de estilo de hospedagem virtual com pontos no nome.

    • Para recursos de recuperação de dados, consulte seu provedor de armazenamento.

  • Permissões no AWS para criar e gerenciar políticas e funções IAM

    Se você não for um administrador AWS, peça ao seu administrador AWS para executar essas tarefas.

Etapa 1: Crie uma política de IAM que conceda acesso ao seu local S3

Para configurar permissões de acesso ao Open Catalog no AWS Management Console, siga este procedimento:

  1. Entre no Console de Gerenciamento da AWS.

  2. No painel inicial, selecione IAM.

  3. No painel de navegação, selecione Configurações da conta.

  4. Em serviço de token de segurança (STS), na lista Pontos de extremidade, localize a região do Open Catalog onde sua conta está localizada e, se o status do STS for inativo, defina o seletor como Ativo.

  5. No painel de navegação, selecione Políticas.

  6. Selecione Criar política.

  7. Em Editor de políticas, selecione JSON.

  8. Adicione uma política para fornecer ao Open Catalog as permissões necessárias para ler e gravar dados em seu local do S3.

    O exemplo de política a seguir concede acesso a todos os locais no bucket especificado:

       {
          "Version": "2012-10-17",
          "Statement": [
                {
                   "Effect": "Allow",
                   "Action": [
                      "s3:PutObject",
                      "s3:GetObject",
                      "s3:GetObjectVersion",
                      "s3:DeleteObject",
                      "s3:DeleteObjectVersion"
                   ],
                   "Resource": "arn:aws:s3:::<my_bucket>/*"
                },
                {
                   "Effect": "Allow",
                   "Action": [
                      "s3:ListBucket",
                      "s3:GetBucketLocation"
                   ],
                   "Resource": "arn:aws:s3:::<my_bucket>",
                   "Condition": {
                      "StringLike": {
                            "s3:prefix": [
                               "*"
                            ]
                      }
                   }
                }
          ]
       }
    
    Copy

    Observação

    • Substitua *my_bucket* pelo nome real de seu bucket. Também é possível especificar um caminho no bucket; por exemplo, *my_bucket*/*path*.

    • Configurar a condição "s3.prefix": como ["*"] concede acesso a todos os prefixos no bucket especificado; configurá-lo como ["*path*/*"] concede acesso a um caminho especificado no bucket.

    • Para buckets em regiões governamentais, o bucket ARNs usa o prefixo arn:aws-us-gov:s3:::

  9. Selecione Avançar.

  10. Em Nome da política, insira um nome de política (por exemplo, open_catalog_access).

  11. Opcional: Em Descrição, insira uma descrição.

  12. Selecione Criar política.

Etapa 2: Crie uma função IAM para conceder privilégios em seu bucket S3

  1. No console de gerenciamento AWS, no painel de gerenciamento de identidade e acesso (IAM), no painel de navegação, selecione Funções.

  2. Selecione Criar função.

  3. Para o tipo de entidade confiável, selecione Conta AWS.

  4. Em Uma conta AWS, selecione Esta conta.

    Em uma etapa posterior, você modifica a relação confiável e concede acesso ao Open Catalog.

  5. Opcional: Para criar um ID externo, marque a caixa de seleção Exigir ID externo e insira um ID externo; por exemplo, open_catalog_external_id.

    Observação

    Se você não criar um ID externo ao criar um catálogo, o Open Catalog gerará um ID externo para você usar. Um ID externo é usado para conceder acesso aos seus recursos AWS (como buckets S3) a terceiros, como o Open Catalog.

  6. Selecione Avançar.

  7. Selecione a política que criou na etapa anterior e selecione Avançar.

  8. Insira um nome de função e uma descrição para a função e selecione Criar função.

    Agora você criou uma política IAM para um local S3, criou uma função IAM e anexou a política à função.

  9. Para exibir a página de resumo da função, selecione Exibir função.

  10. Localize e registre o valor do nome de recurso da Amazon (ARN) para a função.

Etapa 3: Crie um catálogo no Open Catalog

  1. Entre no Open Catalog.

  2. Na página inicial do Open Catalog, na área Catálogos, selecione + Criar.

  3. Na caixa de diálogo Criar catálogo, preencha os campos:

    1. Em Nome, insira um nome para o catálogo.

      Os nomes de catálogo diferenciam maiúsculas de minúsculas.

    2. Opcional: Para criar um catálogo externo, defina a opção Externo como Ativado.

      Para obter informações sobre catálogos externos, consulte Tipos de catálogo.

    3. Em Provedor de armazenamento, selecione S3.

    4. Em Local base padrão, insira o local base padrão para seu bucket de armazenamento S3.AWS

    5. Opcional: se o catálogo contiver objetos armazenados em mais de um local, liste cada local adicional (separado por vírgula) em Locais adicionais (opcional).

    6. Em ARN da função S3, insira ARN da função IAM que você criou para o Open Catalog.

    7. Opcional: Se você criou um ID externo ao criar uma função IAM, para ID externo, insira o ID externo.

    8. Selecione Criar.

Etapa 4: Recupere o usuário AWS IAM de sua conta do Open Catalog

  1. Na página inicial do Open Catalog, na área Catálogos, selecione o catálogo que você criou.

  2. Em Detalhes de armazenamento, copie o ARN do usuário IAM; por exemplo, arn:aws:iam::123456789001:user/abc1-b-self1234.

    O Open Catalog fornece um único usuário IAM para toda a sua conta do Open Catalog. Todas as configurações de armazenamento S3 em sua conta usam esse usuário IAM.

    Observação Se você não especificou um ID externo ao criar sua função IAM, o Open Catalog gerará um ID externo para você usar. Registre o valor para que você possa atualizar sua política de confiança da função IAM com o ID externo gerado.

Etapa 5: Conceda ao usuário IAM permissões do usuário para acessar objetos de bucket

  1. Entre no Console de Gerenciamento da AWS.

  2. No painel inicial, procure e selecione IAM.

  3. No painel de navegação, selecione Funções.

  4. Selecione a função IAM que você criou para sua configuração de armazenamento.

  5. Selecione a guia Relações de confiança.

  6. Selecione Editar política de confiança.

  7. Modifique o documento de política com os detalhes de armazenamento do catálogo que você registrou:

       {
         "Version": "2012-10-17",
         "Statement": [
           {
             "Sid": "",
             "Effect": "Allow",
             "Principal": {
               "AWS": "<open_catalog_user_arn>"
             },
             "Action": "sts:AssumeRole",
             "Condition": {
               "StringEquals": {
                 "sts:ExternalId": "<open_catalog_external_id>"
               }
             }
           }
         ]
       }
    
    Copy

    Onde:

    • open_catalog_user_arn é ARN do usuário IAM que você registrou.

    • open_catalog_external_id é seu ID externo. Se você especificou um ID externo quando criou a função e usou o mesmo ID para criar sua configuração de armazenamento, deixe o valor como está. Caso contrário, atualize sts:ExternalId com o valor que você registrou.

    Observação

    Você deve atualizar este documento de política se criar uma nova configuração de armazenamento e não fornecer seu próprio ID externo. Por motivos de segurança, uma configuração de armazenamento nova ou recriada tem um ID externo diferente e não pode resolver a relação de confiança, a menos que você atualize essa política de confiança.

    Exemplo de documento de política para a função IAM

    Atualize a política de confiança para a função IAM.

  8. Para salvar suas alterações, selecione Atualizar política.

Crie um catálogo usando o Cloud Storage do Google

Esta seção aborda como criar um catálogo e conceder acesso restrito do Open Catalog a um bucket do Cloud Storage usando uma configuração de armazenamento.

Um administrador da sua organização concede permissões de usuário IAM na sua conta do Google Cloud.

Observação

  • Para concluir as instruções neste tópico, você precisa ter permissões no Google Cloud para criar e gerenciar políticas e funções IAM. Se você não for administrador do Google Cloud, peça ao administrador do Google Cloud para realizar essas tarefas.

  • Para recursos de recuperação de dados, consulte seu provedor de armazenamento.

Etapa 1: Crie um catálogo

  1. Entre no Open Catalog.

  2. Na página inicial do Open Catalog, na área Catálogos, selecione + Criar.

  3. Na caixa de diálogo Criar catálogo, preencha os campos:

    1. Em Nome, insira um nome para o catálogo.

      Os nomes de catálogo diferenciam maiúsculas de minúsculas.

    2. Opcional: Para criar um catálogo externo, defina a opção Externo como Ativado.

      Para obter informações sobre catálogos externos, consulte Tipos de catálogo.

    3. Em Provedor de armazenamento, selecione GCS.

    4. Em local base padrão, insira o local base padrão para seu bucket do Cloud Storage.

    5. Opcional: Se o catálogo contiver objetos armazenados em mais de um local, em Locais adicionais (opcional), liste cada local de armazenamento adicional, separado por uma vírgula.

    6. Selecione Criar.

Etapa 2: Recupere a conta de serviço do Google Cloud para sua conta do Open Catalog

  1. Na página inicial do Open Catalog, na área Catálogos, selecione o catálogo que você criou.

  2. Em Detalhes de armazenamento, copie o ID GCP_SERVICE_ACCOUNT; por exemplo, service-account-id@project1-123456.iam.gserviceaccount.com.

    O Open Catalog provisiona uma única conta de serviço do Google Cloud para toda a sua conta do Open Catalog e usa essa conta de serviço ao acessar o armazenamento no Google Cloud.

Etapa 3: conceder as permissões da conta de serviço para acessar os objetos do bucket

Nesta etapa, você configura as permissões de acesso do IAM para o Open Catalog em seu console do Google Cloud.

Criação de uma função IAM personalizada

Crie uma função personalizada que tenha as permissões necessárias para acessar o bucket e obter objetos.

  1. Entre no console do Google Cloud como editor de projeto.

  2. No painel inicial, no menu de navegação, selecione IAM e administrador > Funções.

  3. Selecione Criar função.

  4. Em Título, insira um título para a função personalizada.

  5. Opcional: Em Descrição, insira uma descrição para a função personalizada.

  6. Selecione Adicionar permissões.

  7. Em Filtro, selecione Serviço e, em seguida, selecione armazenamento.

  8. Filtre a lista de permissões e selecione o seguinte na lista:

    • storage.buckets.get

    • storage.objects.create

    • storage.objects.delete

    • storage.objects.get

    • storage.objects.list

  9. Selecione Adicionar.

  10. Selecione Criar.

Atribuição da função personalizada à conta de serviço do Google Cloud

Permaneça no console do Google Cloud para este procedimento.

  1. No painel inicial, no menu de navegação, selecione Armazenamento em nuvem > Buckets.

  2. Filtre a lista de buckets e selecione o bucket que você especificou na configuração de armazenamento do Open Catalog.

  3. Selecione Permissões > Exibir por entidades e, em seguida, selecione Conceder acesso.

  4. Em Adicionar entidades, cole o ID da conta de serviço que você copiou anteriormente.

  5. Em Atribuir funções, selecione a função IAM personalizada que você criou anteriormente e selecione Salvar.

Criação de um catálogo usando o armazenamento do Azure

Esta seção aborda como conceder acesso restrito ao Open Catalog ao seu próprio contêiner do Microsoft Azure usando uma configuração de armazenamento. O Open Catalog oferece suporte aos seguintes serviços de armazenamento em nuvem do Azure para configurações de armazenamento:

  • Armazenamento de blobs

  • Data Lake Storage Gen2

  • Uso geral v1

  • Uso geral v2

Um administrador da sua organização concede permissões de usuário IAM na sua conta do Azure.

Observação

  • Completar as instruções neste tópico exige 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.

  • Para recursos de recuperação de dados, consulte seu provedor de armazenamento.

Etapa 1: Crie um catálogo

  1. Entre no Open Catalog.

  2. Na página inicial do Open Catalog, na área Catálogos, selecione + Criar.

  3. Na caixa de diálogo Criar catálogo, preencha os campos:

    1. Em Nome, insira um nome para o catálogo.

      Os nomes de catálogo diferenciam maiúsculas de minúsculas.

    2. Opcional: Para criar um catálogo externo, defina a opção Externo como Ativado.

      Para obter informações sobre catálogos externos, consulte Tipos de catálogo.

    3. Em Provedor de armazenamento, selecione AZURE.

    4. Em local base padrão, insira a local base padrão para seu contêiner de armazenamento do Azure aplicando desta lista o formato aplicável ao caminho para o ponto de extremidade primário de seu contêiner:

      Tipo de ponto de extremidade

      Formato

      Exemplo de local base padrão

      Blob

      abfss://<container_name>@<storage_account_name>.blob.core.windows.net/<directory_name>/

      abfss://my_container1@my_storageaccount1.blob.core.windows.net/my_directory1/

      Azure Data Lake Storage (ADLS)

      abfss://<container_name>@<storage_account_name>.dfs.core.windows.net/<directory_name>/

      abfss://my_container2@my_storageaccount2.dfs.core.windows.net/my_directory2/

      Observação

      • Você copiou esse caminho e o nome de seu contêiner ao criar um contêiner do Microsoft Azure.

      • No caminho para o ponto de extremidade primário de seu contêiner, o nome de sua conta de armazenamento é o texto entre https:// e o primeiro ponto no caminho.

      • Use abfss:// prefix, em vez de https://.

    5. Opcional: Se o catálogo contiver objetos armazenados em mais de um local, no campo Locais adicionais (opcional), liste cada local de armazenamento adicional, separado por uma vírgula.

    6. Em ID de locatário, insira o ID do Locatário do Azure.

    7. Selecione Criar.

Etapa 2: Copie os valores para o local de armazenamento

  1. Na página inicial do Open Catalog, na área Catálogos, selecione o catálogo que você criou.

  2. Em Detalhes de armazenamento, copie os seguintes valores:

    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.

Etapa 3. Conceda as permissões principais de serviço do Azure para um token de acesso

  1. Em um navegador da Web, navegue até a página de solicitação de permissões da Microsoft (o URL de consentimento do Azure).

  2. Selecione Aceitar.

    Esta ação permite que a entidade de serviço do Azure criada para sua conta do Open Catalog obtenha um token de acesso em recursos especificados dentro de seu locatário. A obtenção de um token de acesso só será bem-sucedida se você conceder à entidade de serviço as permissões apropriadas no contêiner. A página de solicitações de permissão da Microsoft é redirecionada para o site corporativo da Snowflake (snowflake.com).

  3. Entre no portal do Microsoft Azure.

  4. Abra Serviços do Azure > Contas de armazenamento.

  5. Selecione o nome da conta de armazenamento que a entidade do serviço Open Catalog precisa acessar.

  6. Selecione Controle de acesso (IAM) > Adicionar atribuição de função.

  7. Selecione a função desejada a ser concedida à entidade de serviço do Open Catalog, como a função Storage Blob Data Contributor.

    A função Storage Blob Data Contributor concede acesso de leitura e gravação à entidade do serviço Open Catalog e concede acesso de gravação ao local de armazenamento.

    Observação

    O Open Catalog emite um token de assinatura de acesso compartilhado (SAS) de delegação de usuário. O token SAS para acessar os blobs de armazenamento tem escopo no nível do contêiner em vez do blob ou diretório. A função selecionada deve ter permissão para criar a chave de delegação do usuário. Para obter uma lista dessas funções, consulte Atribuição de permissões com RBAC.

  8. Selecione Avançar.

  9. Selecione + Selecionar membros.

  10. Após uma hora, procure e selecione a entidade de serviço do Open Catalog, que é a propriedade do nome do aplicativo multilocatário do Azure. Procure a cadeia de caracteres antes do sublinhado no valor da propriedade.

    Importante

    • Pode levar uma hora ou mais para o Azure criar a entidade de serviço do Open Catalog 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 do serviço, o catálogo deixará de funcionar devido a uma falha de autenticação.

  11. Selecione Selecionar.

  12. Selecione Revisar + atribuir.

Observação

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 – Alterações na atribuição de função não estão sendo detectadas na documentação do Microsoft Azure.