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:

  1. Abra o console do AWS Lake Formation.
  2. No painel de navegação, em Permissions (Permissões), escolha Administrative roles and tasks (Funções e tarefas administrativas).
  3. Em Database creators (Criadores de banco de dados), escolha Grant (Conceder).
  4. 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.
  5. Em Catalog permissions (Permissões do catálogo), selecione Create database (Criar banco de dados).
  6. 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).
  7. 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:

  1. Abra o console do AWS Lake Formation.
  2. No painel de navegação, em Permissions (Permissões), escolha Data lake permissions (Permissões de data lake).
  3. Escolha Grant (Conceder).
  4. Em Principals (Entidades principais), selecione IAM users and roles (Usuários e funções do IAM).
  5. Para IAM users and roles (Usuários e funções do IAM), selecione a função do IAM.
  6. 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).
  7. Para Databases (Bancos de dados), selecione o banco de dados.
  8. Em Database permissions (Permissões do banco de dados), selecione Create table (Criar tabela) ou Super com base no seu caso de uso.
  9. 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).
  10. 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:

  1. Abra o console do AWS Lake Formation.
  2. 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.
  3. 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).
  4. 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).
  5. Para Amazon S3 path (Caminho do Amazon S3), escolha Browse (Procurar) e selecione o caminho do S3 correto.
  6. 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.
  7. No painel de navegação, em Permissions (Permissões), escolha Data locations (Locais de dados).
  8. Escolha Grant (Conceder).
  9. Para Grant permissions (Conceder permissões), selecione My account (Minha conta).
  10. 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.
  11. Escolha Grant (Conceder).

Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?