为 Amazon EMR 配置 IAM 服务角色对 Amazon 服务和资源的权限 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为 Amazon EMR 配置 IAM 服务角色对 Amazon 服务和资源的权限

Amazon EMR 和应用程序(如 Hadoop 和 Spark)在运行时需要访问其它 Amazon 资源和执行操作的权限。Amazon EMR 中的每个集群必须有一个服务角色和一个适用于 Amazon EC2 实例配置文件的角色。有关更多信息,请参阅《IAM 用户指南》中的 IAM 角色使用实例配置文件。挂载到这些角色的 IAM policy 为集群提供了代表用户与其它 Amazon 服务进行互操作的权限。

如果您在 Amazon EMR 中的集群使用了自动伸缩,则需要一个额外的角色,即 Auto Scaling 角色。如果您使用 EMR 笔记本电脑,则必须担任 EMR Notebooks 的 Amazon 服务角色。

Amazon EMR 为确定权限的每个角色提供默认角色和默认托管式策略。托管策略由创建和维护 Amazon,因此如果服务需求发生变化,它们会自动更新。请参阅《IAM 用户指南》中的Amazon 托管式策略

如果您是首次在账户中创建集群或笔记本,那么适用于 Amazon EMR 的角色尚不存在。创建它们后,您可以在 IAM 控制台中(https://console.aws.amazon.com/iam/)查看角色、挂载到角色的策略以及策略允许或拒绝的权限。您可以指定要创建和使用的 Amazon EMR 的默认角色,也可以创建自己的角色并在创建集群时分别指定它们以自定义权限,还可以指定在使用 Amazon CLI创建集群时要使用的默认角色。有关更多信息,请参阅自定义 IAM 角色

修改基于身份的策略以获取传递 Amazon EMR 服务角色的权限

Amazon EMR 完全权限默认托管策略包含 iam:PassRole 安全配置,包括以下内容:

  • iam:PassRole 权限仅适用于特定默认 Amazon EMR 角色。

  • iam:PassedToService允许您仅将策略用于指定 Amazon 服务(例如elasticmapreduce.amazonaws.com和)的条件ec2.amazonaws.com

你可以在 IAM 控制台中查看 Amazonemr FullAccessPolicy _v2 和 AmazoneMR _v2 政策的 JSON 版本。ServicePolicy建议您使用 v2 托管式策略创建新的集群。

服务角色摘要

下表列出了与 Amazon EMR 关联的 IAM 服务角色,以供快速参考。

函数 默认角色 描述 默认托管式策略

Amazon EMR 的服务角色(EMR 角色)

EMR_DefaultRole_V2

允许 Amazon EMR 在配置资源和执行 Amazon 服务级别操作时代表您调用其他服务。所有集群都需要该角色。

AmazonEMRServicePolicy_v2

重要

请求竞价型实例需要服务相关角色。如果此角色不存在,Amazon EMR 服务角色必须拥有创建它的权限,否则会出现权限错误。如果您计划请求竞价型实例,您必须更新此策略,以包含一个允许创建此服务相关角色的语句。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的Amazon EMR 的服务角色(EMR 角色)和竞价型实例请求的服务相关角色

集群 EC2 实例(EC2 实例配置文件)的服务角色

EMR_EC2_DefaultRole

在集群实例上运行在 Hadoop 生态系统之上的应用程序进程在调用其他 Amazon 服务时会使用此角色。要使用 EMRFS 访问 Amazon S3 中的数据,您可以根据数据在 Amazon S3 中的位置指定代入不同的角色。例如,多个团队可以访问单个 Amazon S3 数据“存储账户”。有关更多信息,请参阅为处理 EMRFS 对 Amazon S3 的请求配置 IAM 角色。所有集群都需要该角色。

AmazonElasticMapReduceforEC2Role(有关更多信息,请参阅 集群 EC2 实例(EC2 实例配置文件)的服务角色。)

Amazon EMR 中的自动扩展服务角色(Auto Scaling 角色)

EMR_AutoScaling_DefaultRole

允许用于动态扩展环境的其它操作。只有在 Amazon EMR 中使用自动伸缩的集群才需要。有关更多信息,请参阅将自动伸缩与实例组的自定义策略结合使用

AmazonElasticMapReduceforAutoScalingRole(有关更多信息,请参阅 Amazon EMR 中的自动扩展服务角色(Auto Scaling 角色)。)

EMR Notebooks 的服务角色

EMR_Notebooks_DefaultRole

提供 EMR 笔记本访问其他 Amazon 资源和执行操作所需的权限。仅在使用 EMR Notebooks 时需要。

AmazonElasticMapReduceEditorsRole(有关更多信息,请参阅 EMR Notebooks 的服务角色。)

默认情况下也附加 S3FullAccessPolicy。本策略的内容如下所示。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } ] }

服务相关角色

AWSServiceRoleForEMRCleanup

Amazon EMR 自动创建服务相关角色。如果 Amazon EMR 的服务失去了清除 Amazon EC2 资源的能力,Amazon EMR 可以使用此角色来进行清除操作。如果集群使用竞价型实例,则附加到 Amazon EMR 的服务角色(EMR 角色)的权限策略必须允许创建服务相关角色。有关更多信息,请参阅使用适用于 Amazon EMR 的服务相关角色

AmazonEMRCleanupPolicy