Habilite la formación de Lake Formation con Amazon EMR - 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.

Habilite la formación de Lake Formation con Amazon EMR

Con Amazon EMR 6.15.0 y versiones posteriores, cuando ejecutas trabajos de Spark EMR en Amazon en EC2 clústeres que acceden a los datos del catálogo de datos de AWS Glue, puedes utilizarlos AWS Lake Formation para aplicar permisos a nivel de tabla, fila, columna y celda en tablas basadas en Hudi, Iceberg o Delta Lake.

En esta sección, explicamos cómo crear una configuración de seguridad y cómo configurar Lake Formation para que funcione con AmazonEMR. También explicamos cómo lanzar un clúster con la configuración de seguridad que creó para Lake Formation.

Paso 1: Configura un rol de tiempo de ejecución para tu EMR clúster

Para usar un rol de tiempo de ejecución para su EMR clúster, debe crear una configuración de seguridad. Con una configuración de seguridad, puede aplicar opciones consistentes de seguridad, autorización y autenticación en todos sus clústeres.

  1. Cree un archivo denominado lf-runtime-roles-sec-cfg.json con la siguiente configuración de seguridad.

    { "AuthorizationConfiguration": { "IAMConfiguration": { "EnableApplicationScopedIAMRole": true, "ApplicationScopedIAMRoleConfiguration": { "PropagateSourceIdentity": true } }, "LakeFormationConfiguration": { "AuthorizedSessionTagValue": "Amazon EMR" } }, "EncryptionConfiguration": { "EnableInTransitEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": {<certificate-configuration>} } } }
  2. A continuación, para asegurarse de que la etiqueta de sesión puede autorizar Lake Formation, establezca la propiedad LakeFormationConfiguration/AuthorizedSessionTagValue en Amazon EMR.

  3. Usa el siguiente comando para crear la configuración de EMR seguridad de Amazon.

    aws emr create-security-configuration \ --name 'iamconfig-with-iam-lf' \ --security-configuration file://lf-runtime-roles-sec-cfg.json

    Como alternativa, puedes usar la EMRconsola de Amazon para crear una configuración de seguridad con ajustes personalizados.

Paso 2: lanza un EMR clúster de Amazon

Ahora está listo para lanzar un EMR clúster con la configuración de seguridad que creó en el paso anterior. Para obtener más información sobre las configuraciones de seguridad, consulte Uso de configuraciones de seguridad para configurar la seguridad del clúster y Funciones de tiempo de ejecución para Amazon EMR Steps.

Paso 3a: Configure los permisos de nivel de tabla basados en Lake Formation con los roles de Amazon Runtime EMR

Si no necesita un control de acceso detallado a nivel de columna, fila o celda, puede configurar permisos a nivel de tabla con el catálogo de datos de Glue. Para habilitar el acceso a nivel de tabla, vaya a la AWS Lake Formation consola y seleccione la opción de configuración de integración de aplicaciones en la sección Administración de la barra lateral. Luego, habilite la siguiente opción y elija Guardar:

Permitir que motores externos accedan a datos en las ubicaciones de Amazon S3 con acceso total a las tablas

Filtrado de datos externos de Lake Formation

Paso 3b: Configure los permisos a nivel de columna, fila o celda basados en Lake Formation con los roles de Amazon Runtime EMR

Para aplicar permisos a nivel de tabla y columna con Lake Formation, el administrador del lago de datos de Lake Formation debe establecer Amazon EMR como valor para la configuración de la etiqueta de sesión, AuthorizedSessionTagValue. Lake Formation usa esta etiqueta de sesión para autorizar a los intermediarios y proporcionar acceso al lago de datos. Puede configurar esta etiqueta de sesión en la sección Filtrado de datos externos de la consola de Lake Formation. Reemplazar 123456789012 con tu propio identificador. Cuenta de AWS

Filtrado de datos externos de Lake Formation

Paso 4: Configurar las subvenciones de AWS Glue and Lake Formation para las funciones EMR de Amazon Runtime

Para continuar con la configuración del control de acceso basado en Lake Formation con las funciones de Amazon EMR Runtime, debe configurar las subvenciones de AWS Glue and Lake Formation para las funciones EMR de Amazon Runtime. Para permitir que tus funciones en IAM tiempo de ejecución interactúen con Lake Formation, concédeles acceso con lakeformation:GetDataAccess yglue:Get*.

Los permisos de Lake Formation controlan el acceso a los recursos del catálogo de datos de AWS Glue, a las ubicaciones de Amazon S3 y a los datos subyacentes en esas ubicaciones. IAMlos permisos controlan el acceso a Lake Formation and AWS Glue APIs y a los recursos. Aunque es posible que tenga el permiso de Lake Formation para acceder a una tabla del catálogo de datos (SELECT), la operación fallará si no tiene el IAM permiso en el glue:Get*API. Para obtener más información sobre el control de acceso de Lake Formation, consulte Información general sobre el control de acceso de Lake Formation.

  1. Cree el archivo emr-runtime-roles-lake-formation-policy.json con el siguiente contenido.

    { "Version": "2012-10-17", "Statement": { "Sid": "LakeFormationManagedAccess", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:Get*", "glue:Create*", "glue:Update*" ], "Resource": "*" } }
  2. Cree la IAM política relacionada.

    aws iam create-policy \ --policy-name emr-runtime-roles-lake-formation-policy \ --policy-document file://emr-runtime-roles-lake-formation-policy.json
  3. Para asignar esta política a sus funciones IAM de tiempo de ejecución, siga los pasos que se indican en Administración de AWS Lake Formation permisos.

Ahora puede usar roles en tiempo de ejecución y Lake Formation para aplicar permisos de tabla y columna. También puedes usar una identidad de origen para controlar las acciones y supervisar las operaciones AWS CloudTrail. Para ver un end-to-end ejemplo detallado, consulta Introducir los roles de tiempo de ejecución para Amazon EMR steps.