

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

# 使用 EMR Serverless 的服务相关角色
<a name="using-service-linked-roles"></a>

[Amazon EMR 无服务器使用 AWS Identity and Access Management (IAM) 服务相关角色。](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)服务相关角色是一种独特的 IAM 角色类型，直接关联到 EMR Serverless。服务相关角色由 EMR Serverless 预定义，包括该服务代表您调用 AWS 其他服务所需的所有权限。

服务相关角色使设置 EMR Serverless 变得更加容易，因为您无需手动添加必要的权限。EMR Serverless 定义了其服务相关角色的权限，除非另有定义，否则只有 EMR Serverless 可以代入其角色。定义的权限包括信任策略和权限策略，以及不能附加到任何其他 IAM 实体的权限策略。

只有在首先删除相关资源后，您才能删除服务关联角色。这可以保护您的 EMR Serverless 资源，因为您不会无意中删除对资源的访问权限。

有关支持服务相关角色的其他服务的信息，请参阅[与 IAM 配合使用的AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，并检查**服务相关角色**列中显示为**是**的服务。选择**是**和链接，访问该服务的服务相关角色文档。

## EMR Serverless 的服务相关角色权限
<a name="slr-permissions"></a>

EMR Serverless 使用名为的服务相关角色使其**AWSServiceRoleForAmazonEMRServerless**能够代表您进行呼叫 AWS APIs 。

 AWSServiceRoleForAmazonEMRServerless 服务相关角色信任以下服务来代入该角色：
+ `ops.emr-serverless.amazonaws.com`

名为 `AmazonEMRServerlessServiceRolePolicy` 的角色权限策略允许 EMR Serverless 对指定资源完成以下操作。

**注意**  
托管策略内容发生变化，此处显示的策略可能已过时。在 [Amazon EMRServerless ServiceRolePolicy](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonEMRServerlessServiceRolePolicy) 中查看 up-to-date政策最多的内容 AWS 管理控制台。
+ 操作：`ec2:CreateNetworkInterface`
+ 操作：`ec2:DeleteNetworkInterface`
+ 操作：`ec2:DescribeNetworkInterfaces`
+ 操作：`ec2:DescribeSecurityGroups`
+ 操作：`ec2:DescribeSubnets`
+ 操作：`ec2:DescribeVpcs`
+ 操作：`ec2:DescribeDhcpOptions`
+ 操作：`ec2:DescribeRouteTables`
+ 操作：`cloudwatch:PutMetricData`

以下是完整的 `AmazonEMRServerlessServiceRolePolicy` 策略。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EC2PolicyStatement",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:DeleteNetworkInterface",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets",
        "ec2:DescribeVpcs",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeRouteTables"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "CloudWatchPolicyStatement",
      "Effect": "Allow",
      "Action": [
        "cloudwatch:PutMetricData"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "cloudwatch:namespace": [
            "AWS/EMRServerless",
            "AWS/Usage"
          ]
        }
      }
    }
  ]
}
```

------

以下信任策略附加到此角色，允许 EMR Serverless 主体代入此角色。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sts:AssumeRole"
      ],
      "Resource": "arn:aws:iam::123456789012:role/aws-service-role/emr-serverless.amazonaws.com/AWSServiceRoleForEMRServerless",
      "Sid": "AllowSTSAssumerole"
    }
  ]
}
```

------

您必须配置权限，允许 IAM 实体（如用户、组或角色）创建、编辑或删除服务关联角色。有关更多信息，请参阅《IAM 用户指南》**中的[服务相关角色权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 为 EMR Serverless 创建服务相关角色
<a name="create-slr"></a>

您无需手动创建服务关联角色。当您在（ AWS 管理控制台 使用 EMR Studio）、或 API AWS 中创建新的 EMR 无服务器应用程序时，EMR Serverless 会为您创建服务相关角色。 AWS CLI您必须配置权限，允许 IAM 实体（如用户、组或角色）创建、编辑或删除服务关联角色。

**使用 IAM 创建 AWSServiceRoleForAmazonEMRServerless 服务相关角色**

将以下语句添加到需要创建服务相关角色的 IAM 实体的权限策略。

```
{
    "Effect": "Allow",
    "Action": [
        "iam:CreateServiceLinkedRole"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/ops.emr-serverless.amazonaws.com/AWSServiceRoleForAmazonEMRServerless*",
    "Condition": {"StringLike": {"iam:AWSServiceName": "ops.emr-serverless.amazonaws.com"}}
}
```

如果您删除此服务相关角色，然后需要再次创建，请使用相同流程在账户中重新创建此角色。当您创建新的 EMR Serverless 应用程序时，EMR Serverless 会再次为您创建服务相关角色。

您还可以使用 IAM 控制台通过 **EMR Serverless** 用例创建服务相关角色。在 AWS CLI 或 AWS API 中，使用服务名称创建服务相关角色。`ops.emr-serverless.amazonaws.com`有关更多信息，请参阅《IAM 用户指南》**中的[创建服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role)。如果您删除了此服务相关角色，请使用同样的过程再次创建角色。

## 编辑 EMR Serverless 的服务相关角色
<a name="edit-slr"></a>

EMR Serverless 不允许您编辑 AWSServiceRoleForAmazonEMRServerless 服务相关角色，因为可能会有多个实体引用该角色。您无法编辑 EMR Serverless 服务相关角色使用的 AWS拥有的 IAM 策略，因为它包含 EMR Serverless 所需的所有必要权限。不过，您可以使用 IAM 编辑角色的说明。

**使用 IAM 编辑 AWSServiceRoleForAmazonEMRServerless 服务相关角色的描述**

将以下语句添加到需要编辑服务相关角色的描述的 IAM 实体的权限策略。

```
{
    "Effect": "Allow",
    "Action": [
        "iam: UpdateRoleDescription"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/ops.emr-serverless.amazonaws.com/AWSServiceRoleForAmazonEMRServerless*",
    "Condition": {"StringLike": {"iam:AWSServiceName": "ops.emr-serverless.amazonaws.com"}}
}
```

有关更多信息，请参阅《IAM 用户指南》**中的[编辑服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 删除 EMR Serverless 的服务相关角色
<a name="delete-slr"></a>

如果不再需要使用某个需要服务相关角色的特征或服务，我们建议您删除该角色。这样可避免出现未被主动监控或维护的未使用实体。但是，请先删除所有区域中的所有 EMR Serverless 应用程序，然后删除服务相关角色。

**注意**  
如果在尝试删除与角色关联的资源时，EMR Serverless 服务正在使用该角色，那么删除可能会失败。如果发生这种情况，请等待几分钟后重试。

**使用 IAM 删除 AWSServiceRoleForAmazonEMRServerless 服务相关角色**

将以下语句添加到需要删除服务相关角色的 IAM 实体的权限策略。

```
{
    "Effect": "Allow",
    "Action": [
        "iam:DeleteServiceLinkedRole",
        "iam:GetServiceLinkedRoleDeletionStatus"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/ops.emr-serverless.amazonaws.com/AWSServiceRoleForAmazonEMRServerless*",
    "Condition": {"StringLike": {"iam:AWSServiceName": "ops.emr-serverless.amazonaws.com"}}
}
```

**使用 IAM 手动删除服务关联角色**

使用 IAM 控制台 AWS CLI、或 AWS API 删除 AWSServiceRoleForAmazonEMRServerless 服务相关角色。有关更多信息，请参阅《IAM 用户指南》**中的[删除服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## EMR Serverless 服务相关角色的支持区域
<a name="slr-regions"></a>

EMR Serverless 支持在提供服务的所有区域使用服务相关角色。有关更多信息，请参阅 [AWS 区域和端点](https://docs.aws.amazon.com/general/latest/gr/rande.html)。