Minha tarefa de ETL ou crawler do AWS Glue apresenta uma falha com um erro de permissões relacionado ao AWS Lake Formation. O erro ocorre embora eu tenha configurado as permissões necessárias do AWS Identity and Access Management (IAM).
Resolução
Erros de permissão comuns incluem permissões padrão insuficientes ou permissões insuficientes para conceder permissões a outros usuários.
Permissões padrão insuficientes
Você deve conceder permissões no banco de dados padrão para o perfil que está tentando consultar a tabela. Se essas permissões estiverem ausentes, o Lake Formation gera uma exceção semelhante à seguinte:
“AnalysisException: Não é possível verificar a existência do banco de dados padrão: com.amazonaws.services.glue.model.AccessDeniedException: Permissões padrão insuficientes para o Lake Formation”
Para conceder permissões padrão:
- Faça login no console do Lake Formation como administrador do data lake.
- No painel esquerdo, abra Permissões, Permissões do Data Lake, e escolha Conceder.
- Na página Conceder permissões de data lake, em Entidades principais, escolha a categoria de entidades principais da sua tarefa no Glue.
- Em Usuários e perfis do IAM, selecione um ou mais perfis do IAM.
- Em LF-Tags ou recursos de catálogo, escolha Recursos do catálogo de dados nomeados, e, em Bancos de dados, escolha Padrão. Se você não conseguir ver um banco de dados padrão, crie um conforme descrito posteriormente.
- Na página Conceder permissões de data lake, em Permissões do banco de dados, para Permissões do banco de dados, selecione Descrever.
- Selecione o botão Conceder.
- Execute novamente sua tarefa no AWS Glue e verifique se a tarefa deu certo.
Para criar um banco de dados padrão, caso ainda não exista:
- Abra Funções e tarefas administrativas e, em Criadores de banco de dados, escolha Conceder.
- Na caixa de diálogo Conceder permissões, escolha seu perfil do Glue.
- Em Permissões concedidas, selecione a permissão Criar banco de dados para as permissões de acesso específicas a serem concedidas e escolha Conceder. Isso configura o perfil do IAM associado à tarefa do AWS Glue como criador de banco de dados no Lake Formation. Em seguida, o Lake Formation cria automaticamente um banco de dados padrão (se não houver um) e concede as permissões necessárias para o perfil.
- Execute sua tarefa no AWS Glue e verifique se a tarefa deu certo.
Permissões insuficientes para conceder permissões
Você deve ter permissões concedidas em uma tabela do AWS Glue ao conceder permissões à tabela. Por exemplo, para conceder permissões por meio de um modelo do CloudFormation ou pipeline de CI/CD, você deve ter permissões concedidas. Se as permissões concedidas estiverem ausentes, o Lake Formation gera uma exceção como a seguinte:
“AccessDeniedException: “An error occurred (AccessDeniedException) when calling the GrantPermissions operation: Resource does not exist or requester is not authorized to access requested permissions.”
- Conceda permissões concedidas à tabela ou ao banco de dados para um usuário ou perfil com o método de recurso nomeado.
- Esse usuário ou perfil pode conceder permissões, por exemplo, por meio do AWS CloudFormation ou de um pipeline CICD, para outros usuários ou perfis.
Informações relacionadas
Como gerenciar as permissões do Lake Formation
Como registrar uma localização do Amazon S3