O Lakehouse para Apache Iceberg oferece suporte ao controle de acesso no nível da tabela para tabelas do Apache Iceberg no Cloud Storage que usam o catálogo do ambiente de execução do Lakehouse.
O catálogo do ambiente de execução do Lakehouse gerencia os metadados da tabela, enquanto as políticas do Identity and Access Management (IAM) definem as permissões. A CLI gcloud fornece os comandos necessários para receber e definir essas políticas do IAM.
Antes de começar
-
Verifique se o faturamento está ativado para o Google Cloud projeto.
-
Ative a API BigLake.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis. - Instale e inicialize o SDK Google Cloud.
- Verifique se você tem um endpoint e um namespace do catálogo REST do Apache Iceberg.
- Verifique se você tem uma tabela do Lakehouse Iceberg no catálogo e namespace especificados.
Funções exigidas
Para receber as permissões necessárias para gerenciar listas de controle de acesso (ACLs, na sigla em inglês) para tabelas do Iceberg, peça ao administrador para conceder a você os seguintes papéis do IAM:
- Todos: admin do BigLake (roles/biglake.admin) no projeto
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando personalizados papéis ou outros predefinidos papéis.
Como funciona
As políticas do IAM definem quais principais têm papéis e permissões específicos para um recurso. É possível gerenciar o acesso aos seus recursos recebendo e definindo essas políticas.
Papéis relevantes do IAM
É possível aplicar os seguintes papéis comuns do IAM aos recursos do Lakehouse:
roles/biglake.admin: fornece controle total sobre os recursos do Lakehouse.roles/biglake.user: permite que os principais usem recursos do Lakehouse, incluindo a leitura e gravação de dados da tabela.roles/biglake.viewer: permite que os principais visualizem recursos do Lakehouse e leiam dados da tabela.
Práticas recomendadas
- Privilégio mínimo: conceda apenas as permissões necessárias a usuários e contas de serviço.
- Usar Etags: sempre inclua a
etagde uma chamadaget-iam-policyrecente no arquivo de política ao usarset-iam-policypara evitar substituições não intencionais. - Registro de auditoria: verifique se os registros de auditoria do Cloud estão ativados para rastrear mudanças nas políticas do IAM.
- Controle de versões: armazene seus arquivos de política em um sistema de controle de versões.
Aplicar papéis de ACL a tabelas
A seção a seguir mostra como aplicar ACLs a tabelas.
Receber a política do IAM
Para visualizar a política do IAM atual em uma tabela do Lakehouse
Iceberg, use o gcloud biglake iceberg tables
get-iam-policy
comando.
Para receber a política do IAM, execute o seguinte comando:
gcloud biglake iceberg tables get-iam-policy TABLE_NAME \ --catalog=CATALOG_NAME \ --namespace=NAMESPACE_NAME \ --project=PROJECT_IDSubstitua:
TABLE_NAME: o nome da tabela do Lakehouse Iceberg de destino.CATALOG_NAME: o nome do endpoint do catálogo REST do Apache Iceberg.NAMESPACE_NAME: o nome do namespace no catálogo.PROJECT_ID: o Google Cloud ID do projeto.
O comando gera a política do IAM no formato YAML, que mostra as vinculações e os membros do papel atuais.
Definir a política do IAM
Para atualizar a política do IAM em uma tabela do Lakehouse Iceberg, use o comando gcloud biglake iceberg tables set-iam-policy.
Esse comando usa um arquivo JSON ou YAML local que contém a política que você quer aplicar.
Crie um arquivo de política local no formato JSON ou YAML. O arquivo de política precisa conter as vinculações e uma
etag. O valoretagfornece controle de simultaneidade otimista para evitar a substituição de mudanças. Para receber aetagatual, execute o comandoget-iam-policyprimeiro.O exemplo a seguir mostra um arquivo de política chamado
policy.json:{ "bindings": [ { "role": "roles/biglake.viewer", "members": [ "user:test-user@example.com" ] }, { "role": "roles/biglake.user", "members": [ "user:someone@example.com" ] } ], "etag": "BwYXa9UuR8w=", "version": 3 }Para definir a política do IAM, execute o seguinte comando:
gcloud biglake iceberg tables set-iam-policy TABLE_NAME POLICY_FILE \ --catalog=CATALOG_NAME \ --namespace=NAMESPACE_NAME \ --project=PROJECT_IDSubstitua:
TABLE_NAME: o nome da tabela do Lakehouse Iceberg de destino.POLICY_FILE: o caminho para o arquivo de política local.CATALOG_NAME: o nome do endpoint do catálogo REST do Apache Iceberg.NAMESPACE_NAME: o nome do namespace no catálogo.PROJECT_ID: o Google Cloud ID do projeto.
A seguir
- Saiba mais sobre IAM.
- Consulte a lista completa de papéis e permissões do IAM do Lakehouse.
- Saiba mais sobre os conceitos do Lakehouse .