本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Amazon S3 访问权限管控与 EMR Serverless 结合使用
EMR Serverless 的 S3 Access Grants 概述
在 Amazon EMR 6.15.0 及更高版本中,Amazon S3 访问权限管控提供了一种可扩展的访问控制解决方案,您可以使用该解决方案来增强对 Amazon EMR 中 Amazon S3 数据的访问。如果您的 S3 数据有复杂或大规模的权限配置,则可以使用 Access Grants 来扩展用户、角色和应用程序的 S3 数据权限。
使用 S3 Access Grants 可增强对 Amazon S3 数据的访问,以超出运行时系统角色或 IAM 角色授予的权限,这些权限附加在可访问 EMR Serverless 应用程序的身份上。
有关更多信息,请参阅《Amazon EMR 管理指南》中的使用 Amazon EMR 的 S3 Access Grants 管理访问权限和《Amazon Simple Storage Service 用户指南》中的使用 S3 Access Grants 管理访问权限。
本节介绍了如何启动 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 Access Grants、
s3:GetDataAccess
和s3:GetAccessGrantsInstanceForPrefix
所需的 IAM 权限:{ "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 Access Grants 授予的权限,也能访问该角色允许的数据。
-
启动 EMR Serverless 应用程序时,请使用 6.15.0 或更高版本的 Amazon EMR 发行版标签和
spark-defaults
分类,如下面的示例所示。将
中的值替换为适合您的使用场景的适当值。red text
aws emr-serverless start-job-run \ --application-id
application-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 结合使用时的重要支持、兼容性和行为信息,请参阅《Amazon EMR 管理指南》中的 将 S3 Access Grants 与 EMR Serverless 结合使用时的注意事项。