Visão geral do fornecimento de credenciais

A venda de credenciais para o catálogo de ambiente de execução do Lakehouse permite delegar o acesso ao armazenamento e aplicar permissões detalhadas aos arquivos de dados. Como parte do Lakehouse para Apache Iceberg, esse recurso permite gerenciar políticas do Identity and Access Management (IAM) no nível da tabela para tabelas armazenadas no Cloud Storage.

É possível usar a CLI gcloud para receber e definir essas políticas e controlar o acesso aos recursos.

Como funciona a venda de credenciais

Ao usar a venda de credenciais, a sequência de processamento de consultas muda um pouco para aplicar políticas antes que os dados sejam lidos:

  1. Solicitação:um usuário envia uma consulta SQL para um mecanismo compatível (por exemplo, Apache Spark ou BigQuery).
  2. Pesquisa de metadados:o mecanismo envia uma solicitação ao catálogo de ambiente de execução do Lakehouse para resolver a tabela.
  3. Autenticação e política:o catálogo autentica o usuário e verifica as permissões do IAM nos recursos do Lakehouse do Google Cloud.
  4. Resposta:como a venda de credenciais está ativada, o catálogo retorna os metadados e um token de armazenamento de curta duração (credenciais de armazenamento com escopo reduzido) para o mecanismo.
  5. Leitura:o mecanismo usa esse token para ler os arquivos autorizados específicos diretamente do Cloud Storage.
  6. Computação:o mecanismo processa os dados e retorna os resultados.

Mecanismos compatíveis

Para usar a venda de credenciais com mecanismos de consulta, o catálogo REST do Lakehouse Iceberg precisa ser configurado para oferecer suporte a ela.

  • Mecanismos de código aberto:mecanismos compatíveis, como Apache Spark e Trino, usam tokens de armazenamento de curta duração vendidos pelo catálogo. O aplicativo cliente precisa especificar o suporte para a venda de credenciais no cabeçalho X-Iceberg-Access-Delegation.
  • BigQuery:o BigQuery usa credenciais vendidas para acesso ao Cloud Storage em vez de credenciais do usuário final.

Permissões necessárias da conta de serviço

Quando a venda de credenciais está ativada, verifique se as seguintes contas de serviço têm os papéis necessários:

  • Conta de serviço do catálogo de ambiente de execução do Lakehouse provisionada automaticamente: precisa receber explicitamente o papel Usuário de objetos do Storage (roles/storage.objectUser) no bucket de destino do Cloud Storage. Por padrão, essa conta de serviço é criada com acesso somente leitura. Sem acesso de administrador de objetos, as credenciais vendidas não podem realizar gravações de armazenamento. Observação: se você estiver configurando pela UI do console, clique em Definir permissões do bucket para verificar esse papel. Para configurações de gcloud, Terraform ou API, esse papel precisa ser concedido manualmente.
  • Contas de serviço do mecanismo de consulta: as contas de serviço que executam jobs do mecanismo de consulta (como o Serviço Gerenciado para Apache Spark, o Serviço Gerenciado para Apache Spark ou o Dataflow) exigem o papel Editor do BigLake (roles/biglake.editor) no nível do projeto para receber credenciais vendidas com escopo de gravação.

A seguir