Como posso solucionar erros de permissão do Lake Formation no AWS Glue?

7 minuto de leitura
0

Meu crawler do AWS Glue ou tarefa de ETL falhou com um erro relacionado ao AWS Lake Formation. Mas eu configurei as permissões necessárias do AWS Identity and Access Management (IAM).

Breve descrição

Para acessar recursos como o Catálogo de Dados do AWS Glue e o Amazon Simple Storage Service (Amazon S3), você deve ter as políticas do IAM e as permissões do Lake Formation corretas. Quando um perfil do IAM associada ao seu crawler do Amazon S3 ou tarefa de ETL não tiver permissões suficientes do Lake Formation, você encontrará um erro. Você deve ter as permissões corretas do Lake Formation para ler e gravar de e nos seguintes recursos:

  • Banco de dados e tabela no Catálogo de Dados
  • Dados subjacentes no Amazon S3

Resolução

Problemas de acesso ao criar o banco de dados do Catálogo de Dados

Se os problemas de criação do banco de dados do Catálogo de Dados estiverem causando o erro, você receberá uma mensagem de erro semelhante à seguinte:

Insufficient Lake Formation permission(s): Required Create Database on Catalog

Para resolver esse erro, use a função de administrador do data para acessar o console do Lake Formation. Em seguida, conceda a Permissão de criar banco de dados ao perfil relevante do IAM.

  1. Abra o console do AWS Lake Formation.
  2. No painel de navegação, em Permissões, escolha Funções e tarefas administrativas.
  3. Em Criadores de banco de dados, escolha Conceder.
  4. Em usuários e perfis do IAM, na lista suspensa, escolha o perfil do IAM ao qual você deseja conceder acesso.
  5. Em Permissões do catálogo, selecione Criar banco de dados.
  6. Se você precisar que o perfil do IAM conceda permissões a outros perfis na sua conta, selecione Criar banco de dados em Permissões concedíveis.
  7. Escolha Conceder.

Problemas de acesso com o banco de dados do Catálogo de Dados

Se problemas no banco de dados do Catálogo de Dados estiverem causando o erro, você receberá uma mensagem de erro semelhante a uma das seguintes:

Insufficient Lake Formation permission(s) on example_database: Required Create Table
Insufficient Lake Formation permission(s) on example_database: (Database name: example_database)
Insufficient Lake Formation permission(s) on example_table (Database name: example_database, Table Name: example_table)

Para resolver os erros um e três, conceda a permissão Criar tabela para example_database ao perfil do IAM associado ao crawler ou tarefa de ETL.

Para resolver o erro dois, conceda a permissão Descrever para example_database ao perfil do IAM associado ao crawler ou tarefa de ETL.

  1. Abra o console do Lake Formation.
  2. No painel de navegação, em Permissões, escolha Permissões de data lake.
  3. Escolha Conceder.
  4. Em Principais, selecione Usuários e perfis do IAM.
  5. Para Usuários e perfis do IAM, escolha o perfil do IAM associado ao crawler.
  6. Em LF-Tags ou recursos de catálogo, selecione Recursos do catálogo de dados nomeado.
  7. Em Bancos de dados, escolha o banco de dados no qual seu crawler está gravando.
  8. Em Permissões do banco de dados, escolha Criar tabela ou Descrever com base no seu caso de uso. Observação: A função do crawler deve ter as permissões Descrever E Criar Tabela no banco de dados no qual está gravando. Para AWS Glue ETL, essas permissões também são suficientes, a menos que você esteja executando uma chamada API UpdateDatabase ou DeleteDatabase da própria tarefa. Nesses casos, conceda as permissões Alterar ou Entregar.
  9. Se precisar que o perfil do IAM conceda permissões a outros perfis na sua conta, configure as permissões em Permissões concedíveis.
  10. Escolha Conceder.

Problemas de acesso com a tabela do Catálogo de Dados

Se problemas na tabela do catálogo de dados estiverem causando o erro, você receberá uma mensagem de erro semelhante a uma das seguintes:

Insufficient Lake Formation permission(s) on example_table (Database name: example_database, Table Name: example_table)
Insufficient Lake Formation permission(s): Required Alter on example_table

Se você receber esse erro, o crawler do AWS Glue ou a tarefa de ETL estará acessando a tabela. Para o crawler, conceda as permissões Descrever e Alterar para example_table ao perfil do IAM associado ao crawler.

Para tarefas ETL que indicam example_table, conceda as permissões Descrever e Selecionar para example_table ao perfil do IAM associado à tarefa. Se a tarefa ETL estiver atualizando example_table, conceda permissões para Alterar para example_table ao perfil do IAM associado à tarefa.

  1. Abra o console do Lake Formation.
  2. No painel de navegação, em Permissões, escolha Permissões de data lake.
  3. Escolha Conceder.
  4. Em Principais, selecione Usuários e perfis do IAM.
  5. Em Usuários e perfis do IAM, selecione o perfil do IAM.
  6. Em LF-Tags ou recursos de catálogo, selecione Recursos do catálogo de dados nomeados.
  7. Em Bancos de dados, escolha o banco de dados no qual seu crawler está gravando.
  8. Em Tabelas opcionais, escolha a tabela que seu crawler está acessando.
  9. Em Permissões da tabela, escolha Selecionar, Descrever ou Alterar com base no seu caso de uso.
  10. Se precisar que o perfil do IAM conceda permissões a outros perfis na sua conta, configure as permissões em Permissões concedíveis.
  11. Escolha Conceder.

Problemas de acesso com as permissões do IAM para o Lake Formation

Se as permissões do IAM concedidas para o Lake Formation estiverem causando o erro, você receberá uma mensagem de erro semelhante a uma das seguintes:

com.amazonaws.services.lakeformation.model.AccessDeniedException: Service Principal: glue.amazonaws.com is not authorized to perform: lakeformation:GetDataAccess
on resource: s3://sample-bucket/sample-prefix/ because no identity-based policy allows the lakeformation:GetDataAccess action

Você recebe esse erro quando as funções de tarefa ou do crawler do AWS Glue não têm permissões suficientes do IAM. A tarefa ou função deve ter permissão para verificar se o Lake Formation pode fornecer credenciais temporárias para a função e para a localização do Amazon S3.

  1. Abra o console do IAM.
  2. Crie uma política do IAM para o seu crawler ou função de tarefa do AWS Glue.
  3. Adicione a permissão lakeformation:GetDataAccess como a ação para o recurso na política. Observação: A API lakeformation:GetDataAccess deve usar o coringa como seu recurso.
  4. Anexe a política ao seu crawler ou função de tarefa do AWS Glue.

Problemas de acesso com o caminho do Amazon S3

Se problemas de caminho do Amazon S3 estiverem causando o erro, a mensagem de erro será semelhante à seguinte. O erro inclui o caminho do Amazon S3:

Insufficient Lake Formation permission(s) on s3://s3-example-bucket/example-prefix/ (Database name: example-database, Table Name: example-table)<br>
Insufficient Lake Formation permission(s) on s3://s3-example-bucket/example-prefix/

Esse erro ocorre quando o perfil do IAM associado ao crawler ou tarefa de ETL não tem a permissão necessária para acessar o caminho do Amazon S3.

Para resolver esse erro, conclua as seguintes etapas:

  1. Abra o console do Lake Formation.
  2. No painel de navegação, em Registrar e assimilar, escolha Locais de data lake.
  3. Verifique se o caminho do Amazon S3 ou o prefixo do caminho da mensagem de erro é um local registrado na lista de Locais de data lake.
  4. Se o caminho do Amazon S3 ou o prefixo na mensagem de erro não estiver listado na lista dos locais de data lake, escolha Registrar local.
  5. Para o caminho do Amazon S3, escolha Procurar e, em seguida, escolha o caminho correto do Amazon S3.
  6. Para Perfil do IAM, mantenha a seleção padrão AWSServiceRoleForLakeFormationDataAccess. Se você usa um perfil personalizado do IAM, certifique-se de que os requisitos relevantes sejam atendidos. Importante: Ao registrar uma localização do Amazon S3, o Lake Formation assume o perfil anterior do IAM. Isso concede credenciais temporárias para serviços integrados da AWS que acessam dados naquele local. Verifique se o perfil do IAM associado à localização registrada do Amazon S3 tem as permissões necessárias para ler e gravar no bucket do S3. Isso evita o erroAccessDenied.
  7. No painel de navegação, em Permissões, escolha Locais de dados.
  8. Escolha Conceder.
  9. Em Conceder permissões, selecione Minha conta.
  10. Em Usuários e perfis do IAM, escolha o perfil do IAM para o qual você deseja conceder acesso.
  11. Escolha Conceder.

Informações relacionadas

Gerenciar permissões do Lake Formation

Registrar uma localização do Amazon S3

AWS OFICIAL
AWS OFICIALAtualizada há um ano