Uso da Concessão de Acesso do Amazon S3 com o EMR Sem Servidor - Amazon EMR

Uso da Concessão de Acesso do Amazon S3 com o EMR Sem Servidor

Visão geral da Concessão de Acesso do S3 para o EMR Sem Servidor

Com as versões 6.15.0 e superiores do Amazon EMR, a Concessão de Acesso do Amazon S3 oferece uma solução de controle de acesso escalável para aumentar o acesso aos seus dados do Amazon S3 a partir do EMR Sem Servidor. Se você tiver uma configuração de permissão complexa ou grande para os dados do S3, use a funcionalidade Concessão de Acesso para escalar as permissões de dados do S3 para usuários, perfis e aplicações.

Use a Concessão de Acesso do S3 para aumentar o acesso aos dados do Amazon S3 além das permissões concedidas pelo perfil de runtime ou pelos perfis do IAM que estão anexados às identidades com acesso à aplicação do EMR Sem Servidor.

Para obter mais informações, consulte Gerenciar o acesso com a Concessão de Acesso do S3 para Amazon EMR, no Guia de gerenciamento do Amazon EMR, e Gerenciar o acesso com a Concessão de Acesso do S3, no Guia do usuário do Amazon Simple Storage Service.

Esta seção descreve como iniciar uma aplicação do EMR Sem Servidor que usa a Concessão de Acesso do S3 para fornecer acesso aos dados no Amazon S3. Para ver as etapas de uso do S3 Access Grants com outras implantações do Amazon EMR, consulte a seguinte documentação:

Launch an EMR Serverless application with S3 Access Grants for data management

Você pode habilitar a Concessão de Acesso do S3 no EMR Sem Servidor e executar uma aplicação do Spark. Quando sua aplicação solicita dados do S3, o Amazon S3 fornece credenciais temporárias que têm como escopo o bucket, prefixo ou objeto específico.

  1. Configure um perfil de execução de trabalhos para a aplicação do EMR Sem Servidor. Inclua as permissões do IAM necessárias para executar os trabalhos do Spark, e use a Concessão de Acesso do S3, s3:GetDataAccess e 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

    Se você especificar perfis do IAM para a execução de trabalhos que tenham permissões adicionais de acesso direto ao S3, os usuários poderão acessar os dados permitidos pelo perfil mesmo que não tenham permissão da Concessão de Acesso do S3.

  2. Inicie a aplicação do EMR Sem Servidor com um rótulo de lançamento 6.15.0 ou superior do Amazon EMR e a classificação spark-defaults, conforme mostra o exemplo a seguir. Substitua os valores em red text pelos valores apropriados ao seu cenário 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" } }] }'

Considerações sobre a Concessão de Acesso do S3 com o EMR Sem Servidor

Para obter informações importantes sobre suporte, compatibilidade e comportamento ao usar a Concessão de Acesso do Amazon S3 com o EMR Sem Servidor, consulte Considerações sobre a Concessão de Acesso do S3 com o Amazon EMR no Guia de gerenciamento do Amazon EMR.