Por que meu rastreador do AWS Glue ou trabalho de ETL falha com o erro de permissões insuficientes do Lake Formation?
Data da última atualização: 15/02/2022
Meu rastreador do AWS Glue ou trabalho de ETL falha com o erro de permissões insuficientes do Lake Formation. No entanto, a função do AWS Identity and Access Management (IAM) associada ao rastreador do AWS Glue ou ao trabalho de ETL do AWS Glue tem as permissões do IAM necessárias.
Breve descrição
O acesso aos recursos do AWS Glue Data Catalog e do Amazon Simple Storage Service (Amazon S3) é gerenciado não apenas com políticas do IAM, mas também com permissões do AWS Lake Formation. Você recebe o erro de permissões insuficientes do Lake Formation quando a função do IAM associada ao rastreador do AWS Glue ou ao trabalho de ETL não tem as permissões necessárias do Lake Formation para ler e/ou gravar do/no seguinte:
- Banco de dados/tabela no Data Catalog
- Dados subjacentes no Amazon S3
Resolução
Problemas de acesso com o banco de dados do Data Catalog
Se o erro for causado devido a problemas de acesso relacionados ao banco de dados do Data Catalog, a mensagem de erro será semelhante à seguinte:
ERROR : Insufficient Lake Formation permission(s) on example-database (Database name: example-database)
Para resolver esse erro, faça login no console do AWS Lake Formation com a função de administrador de data lake e conceda a permissão Create database (Criar banco de dados) para a função do IAM associada ao rastreadir/trabalho de ETL:
- Abra o console do AWS Lake Formation.
- No painel de navegação, em Permissions (Permissões), escolha Administrative roles and tasks (Funções e tarefas administrativas).
- Em Database creators (Criadores de banco de dados), escolha Grant (Conceder).
- Para IAM users and roles (Usuários e funções do IAM), na lista suspensa, selecione a função do IAM para a qual você deseja conceder o acesso.
- Em Catalog permissions (Permissões do catálogo), selecione Create database (Criar banco de dados).
- Se você precisar que a função do IAM conceda permissões a outras funções na sua conta, selecioneCreate database (Criar banco de dados) em Grantable permissions (Permissões para concessão).
- Escolha Grant (Conceder).
Problemas de acesso com a tabela do Data Catalog
Se o erro for causado devido a problemas de acesso relacionados à tabela do Data Catalog, a mensagem de erro será semelhante à seguinte:
ERROR : Insufficient Lake Formation permission(s) on example-table (Database name: example-database, Table Name: example-table)
Para resolver esse erro, conceda a permissão Create table (Criar tabela) de example-database à função do IAM associada ao rastreador/trabalho de ETL:
- Abra o console do AWS Lake Formation.
- No painel de navegação, em Permissions (Permissões), escolha Data lake permissions (Permissões de data lake).
- Escolha Grant (Conceder).
- Em Principals (Entidades principais), selecione IAM users and roles (Usuários e funções do IAM).
- Para IAM users and roles (Usuários e funções do IAM), selecione a função do IAM.
- Em LF-Tags or catalog resources (Etiquetas LF ou recursos de catálogo), selecione Named data catalog resources (Recursos nomeados do catálogo de dados).
- Para Databases (Bancos de dados), selecione o banco de dados.
- Em Database permissions (Permissões do banco de dados), selecione Create table (Criar tabela) ou Super com base no seu caso de uso.
- Se precisar que a função do IAM conceda permissões a outras funções na sua conta, selecione as permissões necessárias em Grantable permissions (Permissões para concessão).
- Escolha Grant (Conceder).
Problemas de acesso com o caminho do Amazon S3
Se o erro for causado por problemas de acesso relacionados ao caminho do Amazon S3, a mensagem de erro incluirá o caminho do S3 e será semelhante à seguinte:
ERROR : Insufficient Lake Formation permission(s) on s3://S3-example-bucket/example-prefix/ (Database name: example-database, Table Name: example-table)
Isso significa que a função do IAM associada ao rastreador/trabalho de ETL não tem a permissão necessária para acessar o caminho do S3.
Para resolver esse erro, faça o seguinte:
- Abra o console do AWS Lake Formation.
- No painel de navegação, em Register and ingest (Registrar e ingerir), escolha Data lake locations (Locais de data lake).
Você pode ver os locais de data lake. - Verifique se o caminho do Amazon S3 ou o prefixo do caminho do S3 mencionado na mensagem de erro é um local registrado na lista Data lake locations (Locais de data lake).
- Se o caminho ou prefixo do S3 na mensagem de erro for diferente daquele na lista Data lake locations (Locais de data lake), escolha Register location (Registrar local).
- Para Amazon S3 path (Caminho do Amazon S3), escolha Browse (Procurar) e selecione o caminho do S3 correto.
- Para IAM role (Função do IAM), deixe a seleção padrão AWSServiceRoleForLakeFormationDataAccess. Se precisar usar uma função personalizada do IAM, certifique-se de que os requisitos relevantes sejam atendidos.
Importante: quando você registra um local do S3, o Lake Formation assume a função anterior do IAM para conceder credenciais temporárias a serviços integrados da AWS que acessam dados nesse local. Portanto, certifique-se de que a função do IAM associada ao trabalho de rastreador/ETL tenha as permissões necessárias para ler/gravar no bucket do S3 para evitar o erro AccessDenied. - No painel de navegação, em Permissions (Permissões), escolha Data locations (Locais de dados).
- Escolha Grant (Conceder).
- Para Grant permissions (Conceder permissões), selecione My account (Minha conta).
- Em IAM users and roles (Usuários e funções do IAM), selecione a função do IAM para a qual você deseja conceder acesso.
- Escolha Grant (Conceder).
Informações relacionadas
Este artigo ajudou?
Precisa de ajuda com faturamento ou suporte técnico?