Como posso solucionar problemas de permissão do Lake Formation no Athena?

6 minuto de leitura
0

Minha consulta do Amazon Athena falhou devido a erros "Insufficient Lake Formation permissions" ou "COLUMN_NOT_FOUND".

Resolução

Siga estas etapas de solução de problemas para a mensagem de erro que você recebeu.

Erro "Insufficient Lake Formation permissions on Amazon_S3_location"

Você recebe esse erro quando as seguintes condições são verdadeiras para usuários ou perfis do AWS Identity and Access Management (IAM):

  • O usuário ou o perfil do IAM não tem as permissões apropriadas de localização de dados do Amazon Simple Storage Service (Amazon S3) do Lake Formation.
  • O usuário ou perfil do IAM tenta criar ou alterar um Recurso de catálogo de dados em um bucket do Amazon S3 registrado no AWS Lake Formation.

Para resolver esse erro, você deve conceder permissões de localização de dados ao usuário ou perfil do IAM usado para criar o banco de dados ou a tabela. Ao usar o Athena com Lake Formation, certifique-se de conceder as permissões S3 necessárias ao usuário ou perfil do IAM do Lake Formation. Além disso, certifique-se de conceder as permissões de acesso aos dados exigidas pelo usuário ou perfil do IAM.

As permissões de acesso a dados permitem que o usuário ou o perfil do IAM leia e grave dados na localização do Amazon S3. No entanto, as permissões de localização de dados no Lake Formation permitem que um usuário ou perfil do IAM crie e altere os recursos do Catálogo de Dados. Os recursos do Catálogo de Dados apontam para a localização registrada do Amazon S3.

Verificar se a localização do data lake está registrada no Lake Formation

  1. Abra o console do AWS Lake Formation.
  2. No painel de navegação, em Administração, escolha Localizações de data lakes.
  3. Em Localizações de data lakes , verifique se o caminho S3 apontado pelos recursos do Catálogo de Dados está registrado no Lake Formation.

Conceder permissões de localização de dados no console do AWS Lake Formation

  1. No painel de navegação, escolha Localizações dos dados.
  2. Selecione Conceder.
  3. Na caixa de diálogo Conceder permissões, selecione Minha conta.
  4. Em Usuários e perfis do IAM, selecione o usuário ou o perfil do IAM para o qual você deseja conceder permissões.
  5. Em Localizações de armazenamento , selecione o caminho S3 do qual você está obtendo o erro.
  6. Escolha Conceder.

Observação: siga estas etapas somente se o caminho do S3 estiver na mesma conta. Se o caminho do S3 estiver em uma conta diferente, primeiro certifique-se de que todos pré-requisitos de acesso entre contas sejam atendidos. Em seguida, siga as instruções fornecidas em Granting data location permissions (external account).

Para obter mais informações, consulte Granting data location permissions (same account).

Erro "Insufficient Lake Formation permissions on database_name"

Siga estas etapas para conceder permissão ao banco de dados para o usuário ou perfil do IAM.

  1. Abra o console do AWS Lake Formation.
  2. No painel de navegação, selecione Bancos de dados.
  3. Escolha o nome do seu banco de dados, escolha Ações e depois escolha Conceder.
  4. Em Entidades principais, escolha Usuários e perfis do IAM.
  5. Em Usuários e perfis do IAM, escolha o usuário ou o perfil do IAM para o qual você deseja conceder permissão ao banco de dados.
  6. Em LF-Tags ou recursos de catálogo, escolha Recursos de catálogo de dados nomeados.
  7. Em Permissões do banco de dados, escolha Descrever.
    Observação:
    você também pode adicionar permissões adicionais com base no seu caso de uso.
  8. Escolha Conceder.

Erro "Insufficient Lake Formation permissions: Required Create Table on database_name"

Siga estas etapas para conceder permissões ao banco de dados para o IAM.

  1. Abra o console do AWS Lake Formation.
  2. No painel de navegação, em Permissões, escolha Permissões do data lake.
  3. Escolha Conceder.
  4. Em Entidades principais, escolha Usuários e perfis do IAM.
  5. Em Usuários e perfis do IAM, escolha o usuário ou perfil do IAM que você deseja usar para o Athena.
  6. Em LF-Tags ou recursos de catálogo, escolha Recursos de catálogo de dados nomeados.
  7. Em Bancos de dados , escolha o banco de dados no qual seu usuário ou perfil do IAM faz gravações.
  8. Em Permissões do banco de dados, escolha Criar tabela ou Descrever, com base no seu caso de uso.
    Observação: o usuário ou perfil do IAM deve ter ambas as permissões Descrever e Criar tabela no banco de dados para criar a tabela.
  9. Escolha Conceder.

Erro "COLUMN_NOT_FOUND: line 1:8: SELECT * not allowed from relation that has no columns"

Siga estas etapas para verificar as permissões DESCREVER no banco de dados. Em seguida, verifique as permissões DESCREVER e SELECIONAR na tabela.

Observação: o administrador do Lake Formation pode ver o banco de dados e a tabela no console do Athena, mas precisa das permissões necessárias para consultar os dados.

Usar o método de recurso nomeado para conceder permissões de banco de dados

  1. Abra o console do AWS Lake Formation.
  2. No painel de navegação, em Permissões, escolha Permissões do data lake.
  3. Escolha Conceder.
  4. Em Entidades principais, escolha Usuários e perfis do IAM.
  5. Em Usuários e perfis do IAM, escolha o usuário ou perfil do IAM que você deseja usar com o Athena.
  6. Em LF-Tags ou recursos de catálogo, escolha Recursos de catálogo de dados nomeados.
  7. Em Bancos de dados, escolha o banco de dados para sua tabela.
  8. Em Permissões do banco de dados, escolha Descrever.
  9. Escolha Conceder.

Para obter mais informações, consulte Granting database permissions using the named resource method.

Usar o método de recurso nomeado para conceder permissões de tabela

  1. Abra o console do AWS Lake Formation.
  2. No painel de navegação, em Permissões, escolha Permissões do data lake.
  3. Escolha Conceder.
  4. Em Entidades principais, escolha Usuários e perfis do IAM.
  5. Em Usuários e perfis do IAM, escolha o usuário ou perfil do IAM que você deseja usar com o Athena.
  6. Em LF-Tags ou recursos de catálogo, escolha Recursos de catálogo de dados nomeados.
  7. Em Bancos de dados, escolha seu banco de dados.
  8. Em Tabelas, escolha uma ou mais tabelas, ou Todas as tabelas.
  9. Em Permissões da tabela, escolha Selecionar ou Descrever para executar uma consulta SELECT ou escolha as permissões de tabela para seu caso de uso.
  10. Escolha Conceder.

Observação: você também pode conceder permissões em uma tabela através do seu link de recurso. Para fazer isso, na página Tabelas, escolha um link de recurso, escolha Ações e depois Conceder no destino. Para obter mais informações, consulte How resource links work in Lake Formation.

Informações relacionadas

Granting data location permissions

AWS OFICIAL
AWS OFICIALAtualizada há 7 meses