¿De qué manera puedo solucionar los errores de permisos de Lake Formation en AWS Glue?

8 minutos de lectura
0

Mi rastreador o trabajo de ETL de AWS Glue presenta una falla debido a un error relacionado con AWS Lake Formation. Sin embargo, configuré los permisos de AWS Identity and Access Management (AWS IAM) requeridos.

Descripción breve

Para acceder a recursos como el catálogo de datos de AWS Glue y Amazon Simple Storage Service (Amazon S3), debe tener las políticas de IAM y los permisos de Lake Formation correctos. Cuando un rol de IAM asociado a su trabajo de ETL o rastreador de Amazon S3 no tiene suficientes permisos de Lake Formation, aparece un error. Debe tener los permisos correctos de Lake Formation para leer y escribir en y desde los siguientes recursos:

  • Base de datos y tabla del catálogo de datos
  • Datos subyacentes en Amazon S3

Resolución

Problemas de acceso al crear la base de datos del catálogo de datos

Si el error se debe a problemas con la creación de la base de datos del catálogo de datos, aparecerá un mensaje de error similar al siguiente:

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

Para resolver este error, utilice la función de administrador del lago de datos para acceder a la consola de Lake Formation. A continuación, conceda el permiso de creación de base de datos al rol de IAM correspondiente.

  1. Abra la consola de AWS Lake Formation.
  2. En el panel de navegación, en Permissions (Permisos), elija Administrative roles and tasks (Funciones y tareas administrativas).
  3. En Database creators (Creadores de bases de datos), elija Grant (Conceder).
  4. En el caso de los usuarios y roles de IAM, en la lista desplegable, elija el rol de IAM al que desea otorgar acceso de forma prioritaria.
  5. En Catalog permissions (Permisos de catálogo), elija Create database (Crear base de datos).
  6. Si desea que el rol de IAM otorgue permisos a otros roles de su cuenta, elija Create database (Crear base de datos) en Grantable permissions (Permisos otorgables).
  7. Elija Grant (Otorgar).

Problemas de acceso con la base de datos del catálogo de datos

Si el error se debe a problemas en la base de datos del catálogo de datos, recibirá un mensaje de error similar a uno de los siguientes:

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 este error, conceda el permiso Create table (Crear tabla) para example-database al rol de IAM que está asociado al rastreador o trabajo de ETL.

Para resolver este error, conceda el permiso Describe (Describir) para example-database al rol de IAM que está asociado al rastreador o trabajo de ETL.

  1. Abra la consola de Lake Formation.
  2. En el panel de navegación, en Permissions (Permisos), elija Data lake permissions (Permisos de lago de datos).
  3. Elija Grant (Otorgar).
  4. En Principals (Entidades principales), elija IAM users and roles (Usuarios y roles de IAM).
  5. Para los usuarios y roles de IAM, elija el rol de IAM asociado al rastreador.
  6. En LF-Tags or catalog resources (Etiquetas LF o recursos del catálogo), elija Named data catalog resources (Recursos del catálogo de datos con nombre).
  7. En Databases (Bses de datos), elija la base de datos en la que escribe el rastreador.
  8. En Database permissions, (Permisos de base de datos), elija Create table (Crear tabla) o Describe (Describir) según su caso de uso. Nota: El rol de rastreador debe tener permisos de descripción Y de creación de tablas en la base de datos en la que está escribiendo. Para AWS Glue ETL, estos permisos también son suficientes, a menos que ejecute una llamada a la API de UpdateDatabase o de DeleteDatabase desde el propio trabajo. En estos casos, conceda permisos de Alter (Modificar) o Drop (Abandonar).
  9. Si necesita que el rol de IAM otorgue permisos a otras funciones de su cuenta, seleccione los permisos requeridos en Grantable permissions (Permisos otorgables).
  10. Elija Grant (Otorgar).

Problemas de acceso con la tabla del catálogo de datos

Si el error está causado por problemas en la tabla del catálogo de datos, aparecerá un mensaje de error similar a uno de los siguientes:

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

Si recibe este error, significa que el rastreador o trabajo de ETL de AWS Glue está accediendo a la tabla. Para el rastreador, conceda los permisos Describe (Describir) y Alter (Modificar) para example_table al rol de IAM asociado al rastreador.

Para los trabajos de ETL que digan example_table, otorgue los permisos Describe (Describir) y Select (Seleccionar) para example_table al rol de IAM asociado al trabajo. Si el trabajo de ETL está actualizando example_table, otorgue los permisos Alter (Modificar) para example_table al rol de IAM asociado al trabajo.

  1. Abra la consola de Lake Formation.
  2. En el panel de navegación, en Permissions (Permisos), elija Data lake permissions (Permisos de lago de datos).
  3. Elija Grant (Otorgar).
  4. En Principals (Entidades principales), elija IAM users and roles (Usuarios y roles de IAM).
  5. En IAM users and roles (Usuarios y roles de IAM), elija el rol de IAM.
  6. En LF-Tags or catalog resources (Etiquetas LF o recursos del catálogo), elija Named data catalog resources (Recursos del catálogo de datos con nombre).
  7. En Databases (Bses de datos), elija la base de datos en la que escribe el rastreador.
  8. En el caso de Tables-optional (Tablas-opcional), elija la tabla que está accediendo el rastreador.
  9. En Table permissions (Permisos de la tabla), elija Select (Seleccionar), Describe (Describir) o Alter (Modificar) según su caso de uso.
  10. Si necesita que el rol de IAM otorgue permisos a otras funciones de su cuenta, seleccione los permisos requeridos en Grantable permissions (Permisos otorgables).
  11. Elija Grant (Otorgar).

Problemas de acceso con los permisos de IAM de Lake Formation

Si el error está provocado por problemas de permisos de IAM para Lake Formation, aparecerá un mensaje de error similar a uno de los siguientes:

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

Aparece este error cuando la función de trabajo de AWS Glue o la función de rastreador de AWS Glue no tienen suficientes permisos de IAM. El trabajo o el rol deben tener permiso para comprobar si Lake Formation puede aprovisionar credenciales temporales para el rol y la ubicación de Amazon S3.

  1. Abra la consola de IAM.
  2. Cree una política de IAM para su función de rastreador de AWS Glue o de trabajo de AWS Glue.
  3. Agregue el permiso LakeFormation:GetDataAccess como la acción para el recurso en la política. Nota: La API de LakeFormation:GetDataAccess debe usar el comodín como recurso.
  4. Adjunte la política a su función de rastreador de AWS Glue o de trabajo de AWS Glue.

Problemas de acceso con la ruta de Amazon S3

Si el error está provocado por problemas en las rutas de Amazon S3, el mensaje de error tiene un aspecto similar al siguiente. El error incluye la ruta de 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/

Esto significa que el rol de IAM que está asociado al rastreador o trabajo de ETL no tiene el permiso necesario para acceder a la ruta de Amazon S3.

Para resolver este error, complete estos pasos:

  1. Abra la consola de Lake Formation.
  2. En el panel de navegación, en Register and ingest (Registrar e incorporar), elija Data lake locations (Ubicaciones de lagos de datos).
  3. Compruebe que la ruta de Amazon S3 o el prefijo de la ruta mencionada en el mensaje de error sea una ubicación registrada en la lista Data lake locations (Ubicaciones de lagos de datos).
  4. Si la ruta o el prefijo de Amazon S3 en el mensaje de error no se enumeran en la lista Data lake locations (Ubicaciones de lagos de datos), elija Register location (Registrar ubicación).
  5. Para la ruta de Amazon S3, elija Browse (Examinar) y, a continuación, elija la ruta de Amazon S3 correcta.
  6. En IAM role (Rol de IAM), deje la selección predeterminada AWSServiceRoleForLakeFormationDataAccess. Si necesita usar un rol de IAM personalizado, asegúrese de que se cumplen los requisitos pertinentes. Importante: Al registrar una ubicación de Amazon S3, Lake Formation asume el rol de IAM anterior. Esto otorga credenciales temporales a los servicios integrados de AWS que acceden a los datos de esa ubicación. Compruebe que el rol de IAM asociado a la ubicación registrada de Amazon S3 tenga los permisos necesarios para leer y escribir en el bucket de S3. Esto evita el error AccessDenied.
  7. En el panel de navegación, en Permissions (Permisos), elija Data lake locations (Ubicaciones de lagos de datos).
  8. Elija Grant (Otorgar).
  9. En Grant permissions (Otorgar permisos), seleccione My account (Mi cuenta).
  10. En Usuarios y roles de IAM, elija el rol de IAM al que desea concederle acceso.
  11. Elija Grant (Otorgar).

Información relacionada

Administración de permisos de Lake Formation

Registro de una ubicación de Simple Storage Service (Amazon S3)

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año