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

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, Amazon S3 Access Grants proporciona una solución de control de acceso escalable que puede utilizar 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 Access Grants 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 Administración del acceso con S3 Access Grants para 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.

  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, s3:GetDataAccess y 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 especifica roles de IAM para la ejecución del trabajo que contienen permisos para acceder directamente a S3, los usuarios podrán acceder a los datos que permita el rol incluso si no cuentan con 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 sin servidor, consulte Consideraciones sobre el uso de S3 Access Grants con Amazon EMR en la Guía de administración de Amazon EMR.