Visão geral do fornecimento de credenciais

A venda de credenciais para o catálogo do ambiente de execução do Lakehouse permite delegar o acesso do Cloud Storage a mecanismos de consulta e aplicar políticas detalhadas do Identity and Access Management (IAM) nos níveis de catálogo, namespace e tabela usando o console do Google Cloud ou a Google Cloud CLI. A venda de credenciais também é necessária para ativar o gerenciamento automático de tabelas para tarefas de manutenção em segundo plano, como compactação, expiração de snapshots e coleta de lixo.

Como funciona o fornecimento de credenciais

Quando você usa a venda de credenciais, a sequência de operações muda um pouco para aplicar políticas antes que o armazenamento seja acessado. O diagrama a seguir ilustra como os mecanismos de consulta recebem tokens de armazenamento com escopo reduzido do catálogo para ler e gravar dados diretamente no Cloud Storage de forma segura:

Os mecanismos de consulta recebem tokens de armazenamento com escopo reduzido do catálogo do ambiente de execução do Lakehouse para ler e gravar dados no Cloud Storage.
Fluxo de trabalho de venda de credenciais que delega o acesso ao Cloud Storage.

A sequência de operações mostrada no diagrama anterior é a seguinte:

  1. Solicitação: um usuário envia uma instrução SQL, como uma consulta, uma operação DML ou DDL, para um mecanismo compatível, como o Apache Spark ou o BigQuery.
  2. Pesquisa de metadados: o mecanismo envia uma solicitação ao catálogo do 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 dele nos recursos do Lakehouse.
  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. O token tem como escopo os caminhos associados à tabela e tem como escopo reduzido as permissões mínimas necessárias (por exemplo, acesso somente leitura para consultas que não precisam gravar arquivos).
  5. Acesso: o mecanismo usa esse token para ler ou gravar os arquivos autorizados específicos diretamente do Cloud Storage.
  6. Computação: o mecanismo processa os dados ou executa a operação e retorna os resultados.

Quando o gerenciamento automático de tabelas (gcp.biglake.table-management.enabled) está ativado, as tarefas de manutenção em segundo plano, como compactação, expiração de snapshot e coleta de lixo, usam a conta de serviço provisionada automaticamente do catálogo para autenticar diretamente no Cloud Storage e atualizar os arquivos de dados subjacentes.

Mecanismos compatíveis

Para usar a distribuição de credenciais com mecanismos de consulta, configure o endpoint do catálogo REST do Apache Iceberg no catálogo do ambiente de execução do Lakehouse para oferecer suporte à distribuição de credenciais. A venda de credenciais não é compatível com endpoints de catálogo do Apache Hive.

  • Mecanismos de código aberto: os mecanismos compatíveis, como Spark e Trino, usam tokens de armazenamento de curta duração fornecidos pelo catálogo. O aplicativo cliente precisa especificar o suporte à 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 de usuário final.

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

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

  • Conta de serviço do catálogo do ambiente de execução do Lakehouse provisionada automaticamente: é necessário conceder o papel de Usuário de objetos do Storage (roles/storage.objectUser) a essa conta em todos os buckets do Cloud Storage associados. Sem esse acesso, as credenciais vendidas não podem ler ou gravar no armazenamento. Se você usar o console do Google Cloud , clicar em Definir permissões do bucket vai verificar esse papel. Para a CLI gcloud, o Terraform ou a API, é necessário conceder esse papel 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 de Editor do BigLake (roles/biglake.editor) para receber credenciais vendidas com escopo de gravação.

A seguir