

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

# 配置 IAM 服务角色以获得 Amazon EMR 对 Amazon 服务和资源的权限
<a name="emr-iam-roles"></a>

Amazon EMR 和应用程序（如 Hadoop 和 Spark）在运行时需要访问其它 Amazon 资源和执行操作的权限。Amazon EMR 中的每个集群必须有一个*服务角色*和一个适用于 Amazon EC2 *实例配置文件*的角色。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles.html)和[使用实例配置文件](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)。挂载到这些角色的 IAM policy 为集群提供了代表用户与其它 Amazon 服务进行互操作的权限。

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

Amazon EMR 为确定权限的每个角色提供默认角色和默认托管式策略。托管策略由创建和维护 Amazon，因此如果服务需求发生变化，它们会自动更新。请参阅《IAM 用户指南》**中的[Amazon 托管式策略](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies.html)。

如果您是首次在账户中创建集群或 Notebook，那么适用于 Amazon EMR 的角色尚不存在。创建角色后，您可以在 IAM 控制台中查看角色、附加到这些角色的策略以及策略允许或拒绝的权限（[https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/)）。您可以指定要创建和使用的 Amazon EMR 的默认角色，也可以创建自己的角色并在创建集群时分别指定它们以自定义权限，还可以指定在使用 Amazon CLI创建集群时要使用的默认角色。有关更多信息，请参阅 [使用 Amazon EMR 自定义 IAM 角色](emr-iam-roles-custom.md)。

## 修改基于身份的策略以获取传递 Amazon EMR 服务角色的权限
<a name="emr-iam-roles-passrole"></a>

Amazon EMR 完全权限默认托管策略包含 `iam:PassRole` 安全配置，包括以下内容：
+ `iam:PassRole` 权限仅适用于特定默认 Amazon EMR 角色。
+ `iam:PassedToService`允许您仅将策略用于指定 Amazon 服务（例如`elasticmapreduce.amazonaws.com`和）的条件`ec2.amazonaws.com`。

您可以在 IAM 控制台中查看 [Amazon EMRFull AccessPolicy \$1v2 和 Amazon P EMRService olicy\$1v2](https://console.amazonaws.cn/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEMRFullAccessPolicy_v2) [策略](https://console.amazonaws.cn/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEMRServicePolicy_v2)的 JSON 版本。建议您使用 v2 托管式策略创建新的集群。

## 服务角色摘要
<a name="emr-iam-roles-summary"></a>

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


| 函数 | 默认角色 | 说明 | 默认托管式策略 | 
| --- | --- | --- | --- | 
|  [Amazon EMR 的服务角色（EMR 角色）](emr-iam-role.md)  |  `EMR_DefaultRole_V2`  |  允许 Amazon EMR 在配置资源和执行 Amazon 服务级别操作时代表您调用其他服务。所有集群都需要该角色。  |  `AmazonEMRServicePolicy_v2`  请求竞价型实例需要服务相关角色。如果此角色不存在，Amazon EMR 服务角色必须拥有创建它的权限，否则会出现权限错误。如果您计划请求竞价型实例，您必须更新此策略，以包含一个允许创建此服务相关角色的语句。有关更多信息，请参阅《Amazon EC2 用户指南》**中的 [Amazon EMR 的服务角色（EMR 角色）](emr-iam-role.md) 和[竞价型实例请求的服务相关角色](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/spot-requests.html#service-linked-roles-spot-instance-requests)。   | 
| [集群 EC2 实例（EC2 实例配置文件）的服务角色](emr-iam-role-for-ec2.md) |  `EMR_EC2_DefaultRole`  |  在集群实例上运行在 Hadoop 生态系统之上的应用程序进程在调用其他 Amazon 服务时会使用此角色。要使用 EMRFS 访问 Amazon S3 中的数据，您可以根据数据在 Amazon S3 中的位置指定代入不同的角色。例如，多个团队可以访问单个 Amazon S3 数据“存储账户”。有关更多信息，请参阅[为处理 EMRFS 对 Amazon S3 的请求配置 IAM 角色](emr-emrfs-iam-roles.md)。所有集群都需要该角色。  |  `AmazonElasticMapReduceforEC2Role`（有关更多信息，请参阅 [集群 EC2 实例（EC2 实例配置文件）的服务角色](emr-iam-role-for-ec2.md)。）  | 
| [Amazon EMR 中的自动扩展服务角色（Auto Scaling 角色）](emr-iam-role-automatic-scaling.md) |  `EMR_AutoScaling_DefaultRole`  |  允许用于动态扩展环境的其它操作。只有在 Amazon EMR 中使用自动伸缩的集群才需要。有关更多信息，请参阅[将自动扩展与 Amazon EMR 中实例组的自定义策略结合使用](emr-automatic-scaling.md)。  |  `AmazonElasticMapReduceforAutoScalingRole`（有关更多信息，请参阅 [Amazon EMR 中的自动扩展服务角色（Auto Scaling 角色）](emr-iam-role-automatic-scaling.md)。）  | 
| [EMR Notebooks 的服务角色](emr-managed-notebooks-service-role.md) |  `EMR_Notebooks_DefaultRole`  |  提供 EMR 笔记本访问其他 Amazon 资源和执行操作所需的权限。仅在使用 EMR Notebooks 时需要。  |  `AmazonElasticMapReduceEditorsRole`（有关更多信息，请参阅 [EMR Notebooks 的服务角色](emr-managed-notebooks-service-role.md)。） 默认情况下也附加 `S3FullAccessPolicy`。本策略的内容如下所示。   JSON   

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:*"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowS3"
    }
  ]
}
```      | 
| [服务相关角色](using-service-linked-roles.md) | `AWSServiceRoleForEMRCleanup` | Amazon EMR 自动创建服务相关角色。如果 Amazon EMR 的服务失去了清除 Amazon EC2 资源的能力，Amazon EMR 可以使用此角色来进行清除操作。如果集群使用竞价型实例，则附加到 [Amazon EMR 的服务角色（EMR 角色）](emr-iam-role.md)的权限策略必须允许创建服务相关角色。有关更多信息，请参阅 [对 Amazon EMR 使用服务相关角色](using-service-linked-roles.md)。 | `AmazonEMRCleanupPolicy` | 

**Topics**
+ [修改基于身份的策略以获取传递 Amazon EMR 服务角色的权限](#emr-iam-roles-passrole)
+ [服务角色摘要](#emr-iam-roles-summary)
+ [Amazon EMR 使用的 IAM 服务角色](emr-iam-service-roles.md)
+ [使用 Amazon EMR 自定义 IAM 角色](emr-iam-roles-custom.md)
+ [为处理 EMRFS 对 Amazon S3 的请求配置 IAM 角色](emr-emrfs-iam-roles.md)
+ [使用基于资源的策略让 Amazon EMR 访问 Amazon Glue 数据目录](emr-iam-roles-glue.md)
+ [将 IAM 角色与直接调用 Amazon 服务的应用程序配合使用](emr-iam-roles-calling.md)
+ [允许用户和组创建和修改角色](emr-iam-roles-create-permissions.md)