¿Por qué mi rastreador o mi trabajo de ETL de AWS Glue Crawler falla con el error “Insufficient Lake Formation permission(s)” (Permisos de Lake Formation insuficientes)?

Última actualización: 15/02/2022

Mi rastreador o mi trabajo de ETL de AWS Glue Crawler falla con el error “Insufficient Lake Formation permission(s)” (Permisos de Lake Formation insuficientes). Sin embargo, el rol de AWS Identity and Access Management (IAM) asociado con el rastreador de AWS Glue o el trabajo de ETL de AWS Glue tiene los permisos de IAM necesarios.

Descripción corta

El acceso a los recursos de AWS Glue Data Catalog y Amazon Simple Storage Service (Amazon S3) se administra no solo con políticas de IAM, sino también con permisos de AWS Lake Formation. Aparece el error Insufficient Lake Formation permission(s) (Permisos de Lake Formation insuficientes) cuando el rol de IAM asociado con el trabajo de ETL o el rastreador de AWS Glue no tiene los permisos necesarios para leer o escribir desde o hacia lo siguiente:

  • Base de datos/tabla del catálogo de datos
  • Datos subyacentes en Simple Storage Service (Amazon S3)

Resolución

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

Si el error se debe a problemas de acceso relacionados con la base de datos del catálogo de datos, el mensaje de error es similar al siguiente:

ERROR : Insufficient Lake Formation permission(s) on example-database (Database name: example-database)

Para resolver este error, inicie sesión en la consola de AWS Lake Formation con la función de administrador del lago de datos y, a continuación, conceda el permiso Create database (Crear base de datos) al rol de IAM que está asociado con el rastreador o el trabajo de ETL:

  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 IAM users and roles (Usuarios y roles de IAM), en la lista desplegable, seleccione el rol de IAM al que desea conceder el acceso.
  5. En Catalog permissions (Permisos de catálogo), seleccione Create database (Crear base de datos).
  6. Si necesita que el rol de IAM otorgue permisos a otros roles de su cuenta, seleccione Create database (Crear base de datos) en Grantable permissions (Permisos concedibles).
  7. Elija Grant (Conceder).

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

Si el error se debe a problemas de acceso relacionados con la tabla del catálogo de datos, el mensaje de error es similar al siguiente:

ERROR : 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:

  1. Abra la consola de AWS Lake Formation.
  2. En el panel de navegación, en Permissions (Permisos), elija Data lake permissions (Permisos de lago de datos).
  3. Elija Grant (Conceder).
  4. En Principals (Entidades principales) seleccione IAM users and roles (Usuarios y roles de IAM).
  5. En IAM users and roles (Usuarios y roles de IAM), seleccione el rol de IAM.
  6. En LF-Tags or catalog resources (Etiquetas LF o recursos del catálogo), seleccione Named data catalog resources (Recursos del catálogo de datos con nombre).
  7. En Databases (Bases de datos), seleccione la base de datos.
  8. En Database permissions (Permisos de base de datos), seleccione Create table (Crear tabla) o Super según el caso de uso.
  9. Si necesita que el rol de IAM otorgue permisos a otras funciones de su cuenta, seleccione los permisos requeridos en Grantable permissions (Permisos concedibles).
  10. Elija Grant (Conceder).

Problemas de acceso con la ruta de Simple Storage Service (Amazon S3)

Si el error se debe a problemas de acceso relacionados con la ruta de Simple Storage Service (Amazon S3), el mensaje de error incluye la ruta de S3 y tiene un aspecto similar al siguiente:

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

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 S3.

Para resolver este error, siga los siguientes pasos:

  1. Abra la consola de AWS Lake Formation.
  2. En el panel de navegación, en Register and ingest (Registrar e incorporar), elija Data lake locations (Ubicaciones de lago de datos).
    Puede ver las ubicaciones de los lagos de datos.
  3. Compruebe que la ruta de Simple Storage Service (Amazon S3) o el prefijo de la ruta de S3 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 S3 en el mensaje de error son diferentes de los que se enumeran en la lista Data lake locations (Ubicaciones de lagos de datos), elija Register location (Registrar ubicación).
  5. En Amazon S3 path (Ruta de Simple Storage Service [Amazon S3]), elija Browse (Examinar) y seleccione la ruta 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: Cuando registra una ubicación de S3, Lake Formation asume el rol de IAM anterior para otorgar credenciales temporales a los servicios de AWS integrados que acceden a los datos en esa ubicación. Por lo tanto, asegúrese de que el rol de IAM que está asociado al rastreador o trabajo de ETL tenga los permisos necesarios para leer o escribir en el bucket de S3 a fin de evitar el error AccessDenied.
  7. En el panel de navegación, en Permissions (Permisos), elija Data lake locations (Ubicaciones de lago de datos).
  8. Elija Grant (Conceder).
  9. En Grant permissions (Conceder permisos), seleccione My account (Mi cuenta).
  10. En IAM users and roles (Usuarios y roles de IAM), seleccione el rol de IAM al que desea conceder acceso.
  11. Elija Grant (Conceder).

¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?