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