Uso de Concesiones de acceso a Amazon S3 con EMR sin servidor - 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.

Uso de Concesiones de acceso a Amazon S3 con EMR sin servidor

Información general de Concesiones de acceso a S3 para EMR sin servidor

Con las versiones 6.15.0 y posteriores de Amazon EMR, las subvenciones de acceso de Amazon S3 proporcionan una solución de control de acceso escalable para aumentar el acceso a sus datos de Amazon S3 desde EMR Serverless. Si tiene una configuración de permisos compleja o grande para sus datos de S3, utilice Access Grants para escalar los permisos de datos de S3 para los usuarios, las funciones y las aplicaciones.

Utilice S3 Access Grants para incrementar el acceso a los datos de Amazon S3, más allá de los permisos que conceden el rol de tiempo de ejecución o los roles de IAM asociados a las identidades con acceso su clúster de Amazon EMR sin servidor.

Para obtener más información, consulte Administrar el acceso con S3 Access Grants para Amazon EMR en la Guía de administración de Amazon EMR y Administrar el acceso con S3 Access Grants en la Guía del usuario de Amazon Simple Storage Service.

En esta sección, se describe cómo lanzar una aplicación EMR sin servidor que utilice S3 Access Grants para proporcionar acceso a los datos en Amazon S3. Para conocer los pasos para utilizar S3 Access Grants con otras implementaciones de Amazon EMR, consulte la siguiente documentación:

Lanzamiento de una aplicación de EMR sin servidor con Concesiones de acceso a S3

Puede habilitar S3 Access Grants en EMR sin servidor y ejecutar una aplicación Spark. Cuando su aplicación solicita datos de S3, Amazon S3 brinda credenciales temporales que se limitan al bucket, al prefijo o al objeto.

  1. Configure un rol de ejecución de trabajos para su aplicación EMR sin servidor. Incluya los permisos de IAM necesarios para ejecutar los trabajos de Spark y utilizar S3 Access Grants, y: s3:GetDataAccess s3:GetAccessGrantsInstanceForPrefix

    { "Effect": "Allow", "Action": [ "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix" ], "Resource": [ //LIST ALL INSTANCE ARNS THAT THE ROLE IS ALLOWED TO QUERY "arn:aws_partition:s3:Region:account-id1:access-grants/default", "arn:aws_partition:s3:Region:account-id2:access-grants/default" ] }
    nota

    Si especificas funciones de IAM para la ejecución de tareas que tengan permisos adicionales para acceder directamente a S3, los usuarios podrán acceder a los datos permitidos por la función aunque no tengan el permiso de S3 Access Grants.

  2. Inicie la aplicación EMR sin servidor con una etiqueta de versión de Amazon EMR de 6.15.0 o superior y la clasificación spark-defaults, como se muestra en el siguiente ejemplo. Reemplace los valores en red text con valores adecuados para su caso de uso.

    aws emr-serverless start-job-run \ --application-id application-id \ --execution-role-arn job-role-arn \ --job-driver '{ "sparkSubmit": { "entryPoint": "s3://us-east-1.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py", "entryPointArguments": ["s3://amzn-s3-demo-destination-bucket1/wordcount_output"], "sparkSubmitParameters": "--conf spark.executor.cores=1 --conf spark.executor.memory=4g --conf spark.driver.cores=1 --conf spark.driver.memory=4g --conf spark.executor.instances=1" } }' \ --configuration-overrides '{ "applicationConfiguration": [{ "classification": "spark-defaults", "properties": { "spark.hadoop.fs.s3.s3AccessGrants.enabled": "true", "spark.hadoop.fs.s3.s3AccessGrants.fallbackToIAM": "false" } }] }'

Consideraciones sobre el uso de S3 Access Grants con EMR sin servidor

Para obtener información importante sobre soporte, compatibilidad y comportamiento al utilizar Amazon S3 Access Grants con EMR Serverless, consulte Consideraciones sobre S3 Access Grants con Amazon EMR en la Guía de administración de Amazon EMR.