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, Concesiones de acceso a Amazon S3 proporciona una solución de control de acceso escalable para aumentar el acceso a los datos de Amazon S3 desde EMR sin servidor. Si cuenta con una configuración de permisos compleja o amplia de datos de S3, puede utilizar Concesiones de acceso para escalar los permisos de datos de S3 para usuarios, roles y 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 Managing access with S3 Access Grants for Amazon EMR en la Guía de administración de Amazon EMR y Administración del 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.
-
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 usar Concesiones de acceso a S3,
s3:GetDataAccessys3: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 especifica roles de IAM para la ejecución del trabajo que contienen permisos para acceder directamente a S3, los usuarios pueden acceder a los datos que permita el rol incluso si no cuentan con el permiso de Concesiones de acceso a S3.
-
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 encon valores adecuados para su caso de uso.red textaws emr-serverless start-job-run \ --application-idapplication-id\ --execution-role-arnjob-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 usar Concesiones de acceso a Amazon S3 con EMR sin servidor, consulte S3 Access Grants considerations with Amazon EMR en la Guía de administración de Amazon EMR.