本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Amazon S3 访问权限管控与 EMR Serverless 结合使用
EMR Serverless 的 S3 Access Grants 概述
在 Amazon EMR 6.15.0 及更高版本中,Amazon S3 访问授权提供了一种可扩展的访问控制解决方案,用于增强从 EMR Serverless 访问您的 Amazon S3 数据的权限。如果您的 S3 数据有复杂或庞大的权限配置,请使用访问权限来扩展用户、角色和应用程序的 S3 数据权限。
使用 S3 Access Grants 可增强对 Amazon S3 数据的访问,以超出运行时系统角色或 IAM 角色授予的权限,这些权限附加在可访问 EMR Serverless 应用程序的身份上。
有关更多信息,请参阅《Amazon EMR 管理指南》中的 “使用 Amazon EMR 的 S3 访问权限管理访问权限” 和《亚马逊简单存储服务用户指南》中的 “使用 S3 访问权限管理访问权限”。
本节介绍了如何启动 EMR Serverless 应用程序,以使用 S3 Access Grants 提供对 Amazon S3 中数据的访问权限。有关将 S3 Access Grants 与其他 Amazon EMR 部署配合使用的步骤,请参阅以下文档:
利用 S3 Access Grants 启动 EMR Serverless 应用程序,以进行数据管理。
您可以在 EMR Serverless 上启用 S3 Access Grants,并启动 Spark 应用程序。当您的应用程序请求获取 S3 数据时,Amazon S3 会提供限定于特定存储桶、前缀或对象的临时凭证。
-
为 EMR Serverless 应用程序设置作业执行角色。包括您必须运行 Spark 任务和使用 S3 访问权限的必需的 IAM 权限,
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" ] }注意
如果您为任务执行指定的 IAM 角色具有直接访问 S3 的额外权限,那么即使用户没有 S3 访问权限授予的权限,他们也可以访问该角色允许的数据。
-
启动 EMR Serverless 应用程序时,请使用 6.15.0 或更高版本的 Amazon EMR 发行版标签和
spark-defaults分类,如下面的示例所示。将中的值替换为适合您的使用场景的适当值。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" } }] }'
将 S3 Access Grants 与 EMR Serverless 结合使用时的注意事项
有关将 Amazon S3 访问权限授予与 EMR Serverless 配合使用时的重要支持、兼容性和行为信息,请参阅《亚马逊 EMR 管理指南》中的 Amazon EMR 的 S3 访问权限授予注意事项。