Skip to content

¿Cómo puedo solucionar los problemas con permisos de Lake Formation en Athena?

6 minutos de lectura
0

Mi consulta de Amazon Athena ha fallado por los «Insufficient Lake Formation permissions» o «COLUMN_NOT_FOUND».

Solución

Siga estos pasos para solucionar los mensajes de error que se muestran.

Error «Insufficient Lake Formation permissions on Amazon_S3_location»

Este error aparece cuando se cumplen las siguientes condiciones en el caso de los usuarios o roles de AWS Identity and Access Management (IAM):

  • El usuario o rol de IAM no tiene los permisos de ubicación de datos de Amazon Simple Storage Service (Amazon S3) adecuados procedentes de Lake Formation.
  • El usuario o rol de IAM está intentando crear o modificar un recurso del Catálogo de datos en un bucket de Amazon S3 registrado con AWS Lake Formation.

Para solucionar este error, debe conceder permisos de ubicación de datos al usuario o rol de IAM que utiliza para crear la base de datos o la tabla. Cuando utilice Athena con Lake Formation, asegúrese de conceder los permisos necesarios de S3 al usuario o rol de IAM desde Lake Formation. Además, asegúrese de conceder los permisos de acceso a los datos que necesite el usuario o el rol de IAM.

Los permisos de acceso a los datos permiten al usuario o rol de IAM leer y escribir datos en la ubicación de Amazon S3. En cambio, los permisos de ubicación de datos en Lake Formation permiten a un usuario o rol de IAM crear y modificar recursos del Catálogo de datos. Los recursos del Catálogo de datos apuntan a la ubicación registrada de Amazon S3.

Comprobación de si la ubicación del lago de datos se ha registrado con Lake Formation

  1. Abra la consola de AWS Lake Formation.
  2. En el panel de navegación, en Administración, elija Ubicaciones del lago de datos.
  3. En Ubicaciones del lago de datos, compruebe que la ruta S3 señalada por los recursos del Catálogo de datos se haya registrado con Lake Formation.

Concesión de permisos de ubicación de datos desde la consola de AWS Lake Formation

  1. En el panel de navegación, elija Ubicaciones de datos.
  2. Seleccione Conceder.
  3. En el cuadro de diálogo Concesión de permisos, seleccione Mi cuenta.
  4. En Usuarios y roles de IAM, seleccione el usuario o rol de IAM al que desee conceder permisos.
  5. En Ubicaciones de almacenamiento, elija la ruta de S3 que da error.
  6. Elija Conceder.

Nota: Siga estos pasos solo si la ruta de S3 se encuentra dentro de la misma cuenta. Si la ruta de S3 está en otra cuenta distinta, primero compruebe si se cumplen todos los requisitos previos de acceso entre cuentas. A continuación, siga las instrucciones que se proporcionan en Granting data location permissions (external account).

Para obtener más información, consulte Granting data location permissions (same account).

Error «Insufficient Lake Formation permissions on database_name»

Siga estos pasos para conceder al usuario o rol de IAM el permiso para acceder a la base de datos.

  1. Abra la consola de Lake Formation.
  2. En el panel de navegación, seleccione Bases de datos.
  3. Elija el nombre de la base de datos, seleccione Acciones y, a continuación, Conceder.
  4. En Entidades principales, elija Usuarios y roles de IAM.
  5. En Usuarios y roles de IAM, elija el usuario o rol de IAM al que desee conceder permiso para la base de datos.
  6. En Etiquetas de LF o recursos del catálogo, elija Recursos del catálogo de datos con nombre.
  7. En Permisos de base de datos, seleccione Describir.
    Nota:
    También puede agregar permisos adicionales según su caso práctico.
  8. Elija Conceder.

Error «Insufficient Lake Formation permissions: Required Create Table on database_name»

Siga estos pasos para conceder permisos de IAM para la base de datos.

  1. Abra la consola de Lake Formation.
  2. En el panel de navegación, en Permisos, elija Permisos del lago de datos.
  3. Elija Conceder.
  4. En Entidades principales, elija Usuarios y roles de IAM.
  5. En Usuarios y roles de IAM, elija el usuario o el rol de IAM que desee utilizar para Athena.
  6. En Etiquetas de LF o recursos del catálogo, elija Recursos del catálogo de datos con nombre.
  7. En Bases de datos, elija la base de datos en la que escribirá su usuario o rol de IAM.
  8. En Permisos de bases de datos, elija Crear tabla o Describir según su caso práctico.
    Nota: El usuario o rol de IAM debe tener tanto el permiso Describir como el permiso Crear tabla en la base de datos para crear la tabla.
  9. Elija Conceder.

Error «COLUMN_NOT_FOUND: line 1:8: SELECT * not allowed from relation that has no columns»

Siga estos pasos para comprobar los permisos DESCRIBE en la base de datos. A continuación, marque los permisos DESCRIBE y SELECT en la tabla.

Nota: El administrador de Lake Formation puede ver la base de datos y la tabla en la consola de Athena, pero necesita los permisos necesarios para consultar los datos.

Utilización del método del recurso con nombre para conceder permisos de bases de datos

  1. Abra la consola de Lake Formation.
  2. En el panel de navegación, en Permisos, elija Permisos del lago de datos.
  3. Elija Conceder.
  4. En Entidades principales, elija Usuarios y roles de IAM.
  5. En Usuarios y roles de IAM, elija el usuario o el rol de IAM que desee utilizar con Athena.
  6. En Etiquetas de LF o recursos del catálogo, elija Recursos del catálogo de datos con nombre.
  7. En Bases de datos, elija la base de datos para su tabla.
  8. En Permisos de base de datos, seleccione Describir.
  9. Elija Conceder.

Para obtener más información, consulte Granting database permissions using the named resource method.

Utilización del método del recurso con nombre para conceder permisos de tablas

  1. Abra la consola de Lake Formation.
  2. En el panel de navegación, en Permisos, elija Permisos del lago de datos.
  3. Elija Conceder.
  4. En Entidades principales, elija Usuarios y roles de IAM.
  5. En Usuarios y roles de IAM, elija el usuario o el rol de IAM que desee utilizar con Athena.
  6. En Etiquetas de LF o recursos del catálogo, elija Recursos del catálogo de datos con nombre.
  7. En Bases de datos, elija su base de datos.
  8. En Tablas, elija una o varias tablas, o Todas las tablas.
  9. En Permisos de tabla, elija Seleccionar o Describir para ejecutar una consulta SELECT, o seleccione los permisos de tablas para su caso práctico.
  10. Elija Conceder.

Nota: También puede conceder permisos en una tabla mediante el enlace del recurso. Para ello, en la página Tablas, elija un enlace de recurso, seleccione Acciones y, a continuación, Conceder en destino. Para obtener más información, consulte How resource links work in Lake Formation.

Información relacionada

Granting data location permissions

OFICIAL DE AWSActualizada hace un año