本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 Amazon EMR 配置 IAM 服务角色对 AWS 服务和资源的权限
Amazon EMR 和应用程序(如 Hadoop 和 Spark)在运行时需要访问其它 AWS 资源和执行操作的权限。Amazon EMR 中的每个集群都必须有一个服务角色和一个用于 Amazon EC2 实例配置文件的角色。有关更多信息,请参阅《IAM 用户指南》中的 IAM 角色和使用实例配置文件。挂载到这些角色的 IAM policy 为集群提供了代表用户与其它 AWS 服务进行互操作的权限。
如果您在 Amazon EMR 中的集群使用了自动伸缩,则需要一个额外的角色,即 Auto Scaling 角色。如果您使用 EMR 笔记本电脑,则必须担任 EMR Notebooks 的 AWS 服务角色。
Amazon EMR 为确定权限的每个角色提供默认角色和默认托管式策略。托管策略由创建和维护 AWS,因此如果服务需求发生变化,它们会自动更新。请参阅《IAM 用户指南》中的AWS 托管式策略。
如果您是首次在账户中创建集群或 Notebook,那么适用于 Amazon EMR 的角色尚不存在。创建角色后,您可以在 IAM 控制台中查看角色、附加到这些角色的策略以及策略允许或拒绝的权限(https://console.aws.amazon.com/iam/
修改基于身份的策略以获取传递 Amazon EMR 服务角色的权限
Amazon EMR 完全权限默认托管策略包含 iam:PassRole
安全配置,包括以下内容:
iam:PassRole
权限仅适用于特定默认 Amazon EMR 角色。iam:PassedToService
允许您仅将策略用于指定 AWS 服务(例如elasticmapreduce.amazonaws.com
和)的条件ec2.amazonaws.com
。
您可以在 IAM 控制台中查看 Amazon EMRFull AccessPolicy _v2 和 Amazon P EMRService olicy_v2
服务角色摘要
下表列出了与 Amazon EMR 关联的 IAM 服务角色,以供快速参考。
函数 | 默认角色 | 描述 | 默认托管式策略 |
---|---|---|---|
|
允许 Amazon EMR 在配置资源和执行 AWS 服务级别操作时代表您调用其他服务。所有集群都需要该角色。 |
重要请求竞价型实例需要服务相关角色。如果此角色不存在,Amazon EMR 服务角色必须拥有创建它的权限,否则会出现权限错误。如果您计划请求竞价型实例,您必须更新此策略,以包含一个允许创建此服务相关角色的语句。有关更多信息,请参阅 Amazon EMR 的服务角色(EMR 角色) Amazon EC2 用户指南中的竞价型实例请求的服务相关角色。 |
|
|
在集群实例上运行在 Hadoop 生态系统之上的应用程序进程在调用其他 AWS 服务时会使用此角色。要使用 EMRFS 访问 Amazon S3 中的数据,您可以根据数据在 Amazon S3 中的位置指定代入不同的角色。例如,多个团队可以访问单个 Amazon S3 数据“存储账户”。有关更多信息,请参阅为处理 EMRFS 对 Amazon S3 的请求配置 IAM 角色。所有集群都需要该角色。 |
|
|
|
允许用于动态扩展环境的其它操作。只有在 Amazon EMR 中使用自动伸缩的集群才需要。有关更多信息,请参阅将自动扩展与 Amazon EMR 中实例组的自定义策略结合使用。 |
|
|
|
提供 EMR 笔记本访问其他 AWS 资源和执行操作所需的权限。仅在使用 EMR Notebooks 时需要。 |
默认情况下也附加
|
|
|
Amazon EMR 自动创建服务相关角色。如果 Amazon EMR 服务无法清理亚马逊 EC2 资源,则 Amazon EMR 可以使用此角色进行清理。如果集群使用竞价型实例,则附加到 Amazon EMR 的服务角色(EMR 角色)的权限策略必须允许创建服务相关角色。有关更多信息,请参阅 对 Amazon EMR 使用服务相关角色。 |
|