View a markdown version of this page

Acceso basado en rutas de S3 mediante Lake Formation para Amazon EMR Spark - Amazon EMR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Acceso basado en rutas de S3 mediante Lake Formation para Amazon EMR Spark

Con las versiones 7.13.0 y posteriores de Amazon EMR, puede usar el complemento AWS Lake Formation Access Grants para obtener credenciales temporales para las rutas de S3 registradas en Lake Formation. Esto permite que las consultas de Spark que hacen referencia directamente a las rutas de S3 utilicen Formation-vended las credenciales de Lake, además de la venta de credenciales basada en nombres de tablas que ofrece Full Table Access (FTA). Para obtener más información, consulte Acceso a las ubicaciones de Amazon S3.

El complemento Lake Formation Access Grants se integra con el sistema de archivos S3A de Spark. Cuando está habilitado, S3A usa el complemento para llamar a la GetTemporaryDataLocationCredentials API de Lake Formation y obtener credenciales temporales para las rutas de S3 que pertenecen a las tablas de Lake. Formation-registered

Este complemento es útil cuando tus trabajos de Spark leen o escriben datos haciendo referencia directamente a las rutas de S3 (por ejemplospark.read.parquet("s3a://my-bucket/my-table/")) en lugar de usar nombres de tablas. El plugin también admite el recurso opcional a las credenciales de rol de IAM o de acceso a S3 Access Grants cuando se deniega el acceso a Lake Formation.

Relación con el acceso completo a la tabla (FTA)

La función de acceso completo a las tablas existente utiliza la GetTemporaryGlueTableCredentials API, que vende las credenciales en función de los nombres de las tablas. El complemento Lake Formation Access Grants utiliza la GetTemporaryDataLocationCredentials API, que vende las credenciales en función de las rutas de S3.

Puede usar ambas funciones a la vez. Cuando ambas están habilitadas, las credenciales de FTA tienen prioridad para las consultas de nombres de tablas, mientras que el complemento gestiona las consultas directas de ruta de S3.

Requisitos previos

Antes de usar el complemento Lake Formation Access Grants, completa los siguientes pasos:

  • Configure el acceso completo a tablas (FTA) para su entorno de Amazon EMR. Para obtener instrucciones, consulte Configuración del acceso completo a la tabla de Lake Formation.

  • En la consola de Lake Formation, registre la ruta S3 con la cuenta del propietario:

    1. Navegue hasta las ubicaciones de Data Lake.

    2. Seleccione la ubicación y habilite Registrar la ruta S3 con la cuenta de propietario.

  • Otorgue al rol de ejecución los permisos apropiados de Lake Formation de la tabla:

    • Para leer los datos de la tabla, conceda al rol de tiempo de ejecución el SELECT permiso completo sobre la tabla.

    • Para modificar los datos de la tabla, conceda el SUPER permiso al rol de tiempo de ejecución sobre la tabla.

Habilita el complemento Lake Formation Access Grants

Para habilitar el complemento, establece las siguientes propiedades de configuración del S3A en tu sesión de Spark:

Lake Formation Access otorga propiedades de configuración al complemento
Propiedad Predeterminado Description (Descripción)
fs.s3a.lakeformation.access.grants.enabled FALSE Activa el complemento Lake Formation Access Grants.
fs.s3a.lakeformation.access.grants.fallback.to.iam FALSE Permite recurrir a S3 Access Grants o a las credenciales de rol de IAM si Lake Formation deniega el acceso.

Comportamiento alternativo

Cuando fs.s3a.lakeformation.access.grants.fallback.to.iam se establece entrue, el complemento utiliza una cadena alternativa si Lake Formation deniega el acceso. Esto es útil en situaciones en las que algunas rutas de S3 están registradas en Lake Formation y otras se administran mediante políticas de IAM o subvenciones de acceso a S3.

Cuando la opción alternativa está habilitada, el complemento intenta obtener las credenciales en el siguiente orden:

  1. Lake Formation: el complemento llama GetTemporaryDataLocationCredentials. Si Lake Formation concede el acceso, el complemento devuelve esas credenciales.

  2. Concesiones de acceso a S3: si Lake Formation deniega el acceso, el complemento comprueba si S3 Access Grants puede proporcionar credenciales para la ruta solicitada. Si una instancia de S3 Access Grants cubre la ruta y la persona que llama tiene una autorización coincidente, el complemento usa esas credenciales.

  3. Función de IAM: si tanto Lake Formation como S3 Access Grants deniegan el acceso, el complemento vuelve a utilizar las credenciales de la función de IAM adjuntas al trabajo.

Consideraciones y limitaciones

  • El complemento admite los formatos de tabla Apache Hive, Apache Hudi y Delta Lake. Apache Iceberg no es compatible actualmente.

  • El complemento no es compatible actualmente con el modo Amazon EMR Spark Fine-Grained Access Control (FGAC).

  • Path-based La venta de credenciales requiere un mapeo 1:1 entre una tabla y su ubicación en S3 en el catálogo de datos de Glue. AWS