本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在亚马逊开启的情况下使用 Amaz EMR on S3 访问授权 EKS
Amazon EMR 上的 S3 访问授权概述 EKS
在 Amazon 6.15.0 及更高EMR版本中,Amazon S3 访问授权提供了一种可扩展的访问控制解决方案,您可以使用该解决方案来增强对亚马逊上的 Amazon S3 数据的访问权限。EMR EKS如果您的 S3 数据有复杂或大规模的权限配置,则可以使用 Access Grants 来扩展用户、角色和应用程序的 S3 数据权限。
除了运行时角色或附加到有权访问您的 Amazon on EKS 集群的身份的IAM角色所授予的权限之外,使用 S3 访问权限授予对 Amaz EMR on S3 数据的访问权限。
有关更多信息,请参阅《亚马逊管理指南》EMR中的 “使用亚马逊的 S3 访问授权EMR管理访问权限” 和《亚马逊简单存储服务用户指南》中的 “使用 S3 访问权限管理访问权限”。
本页介绍通过 S3 访问权限授权集成,在 Amazon EMR 上EKS运行 Spark 任务的要求。启用 Amaz EMR on 后EKS,S3 访问权限授予需要在任务的执行角色中添加额外的IAM策略声明,并需要额外的覆盖配置StartJobRun
API。有关使用其他 Amazon EMR 部署设置 S3 访问权限授予的步骤,请参阅以下文档:
使用 S3 访问权限授予EMR在EKS集群上启动 Amazon,用于数据管理
您可以在 Amaz EMR on 上启用 S3 访问权限授予EKS并启动 Spark 任务。当您的应用程序请求获取 S3 数据时,Amazon S3 会提供限定于特定存储桶、前缀或对象的临时凭证。
-
在集EKS群上为您的 Amaz EMR on 设置任务执行角色。包括运行 Spark 作业所需的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 访问权限授予中定义了什么权限,用户都可能能够访问数据
-
将任务提交到您的 Amaz EMR on EKS 集群,其亚马逊EMR版本标签为 6.15 或更高版本,且
emrfs-site
分类为,如下例所示。将
中的值替换为适合您的使用场景的适当值。red text
{ "name": "
myjob
", "virtualClusterId": "123456
", "executionRoleArn": "iam_role_name_for_job_execution
", "releaseLabel": "emr-7.3.0-latest
", "jobDriver": { "sparkSubmitJobDriver": { "entryPoint": "entryPoint_location
", "entryPointArguments": ["argument1
", "argument2
"], "sparkSubmitParameters": "--classmain_class
" } }, "configurationOverrides": { "applicationConfiguration": [ { "classification": "emrfs-site", "properties": { "fs.s3.s3AccessGrants.enabled": "true", "fs.s3.s3AccessGrants.fallbackToIAM": "false" } } ], } }
Amazon 开启后的 S3 访问授权注意事项 EMR EKS
有关在亚马逊上使用 Amazon S3 访问授权时的重要支持、兼容性和行为信息EKS,请参阅EMR《亚马逊EMR管理指南》EMR中的 Amazon S3 访问权限授予注意事项。