

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

# 对 Amazon EMR on EKS 使用服务相关角色
<a name="using-service-linked-roles"></a>

EKS 上的 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 角色，它与 Amazon EMR on EKS 直接相关。服务相关角色由 Amazon EMR 在 EKS 上预定义，包括该服务代表您调用 AWS 其他服务所需的所有权限。

服务相关角色可让您更轻松地设置 Amazon EMR on EKS，因为您不必手动添加必要的权限。Amazon EMR on EKS 定义其服务相关角色的权限，除非另外定义，否则只有 Amazon EMR on EKS 可以承担该角色。定义的权限包括信任策略和权限策略，以及不能附加到任何其它 IAM 实体的权限策略。

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

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

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

EKS 上的 Amazon EMR 使用名为的服务相关角色。**AWSServiceRoleForAmazonEMRContainers**

`AWSServiceRoleForAmazonEMRContainers` 服务相关角色信任以下服务代入该角色：
+ `emr-containers.amazonaws.com`

角色权限策略 `AmazonEMRContainersServiceRolePolicy` 允许 Amazon EMR on EKS 完成对指定资源的一组操作，如以下策略声明所示。

**注意**  
托管策略内容会发生变化，因此此处显示的政策可能有所变化 out-of-date。在《*AWS 托管 up-to-date政策参考指南》EMRContainersServiceRolePolicy中查看 [Amazon](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEMRContainersServiceRolePolicy.html) 上最多的政策*文档。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "eks:DescribeCluster",
        "eks:ListNodeGroups",
        "eks:DescribeNodeGroup",
        "ec2:DescribeRouteTables",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups",
        "elasticloadbalancing:DescribeInstanceHealth",
        "elasticloadbalancing:DescribeLoadBalancers",
        "elasticloadbalancing:DescribeTargetGroups",
        "elasticloadbalancing:DescribeTargetHealth",
        "eks:ListPodIdentityAssociations",
        "eks:DescribePodIdentityAssociation"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowEKSDescribecluster"
    },
    {
      "Effect": "Allow",
      "Action": [
        "acm:ImportCertificate",
        "acm:AddTagsToCertificate"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/emr-container:endpoint:managed-certificate": "true"
        }
      },
      "Sid": "AllowACMImportcertificate"
    },
    {
      "Effect": "Allow",
      "Action": [
        "acm:DeleteCertificate"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/emr-container:endpoint:managed-certificate": "true"
        }
      },
      "Sid": "AllowACMDeletecertificate"
    }
  ]
}
```

------

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

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

您无需手动创建服务关联角色。当您创建虚拟集群时，Amazon EMR on EKS 会为您创建服务相关角色。

如果您删除该服务关联角色，然后需要再次创建，您可以使用相同流程在账户中重新创建此角色。当您创建虚拟集群时，Amazon EMR on EKS 会再次为您创建服务相关角色。

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

## 为 Amazon EMR on EKS 编辑服务相关角色
<a name="edit-slr"></a>

Amazon EMR on EKS 不允许您编辑 `AWSServiceRoleForAmazonEMRContainers` 服务相关角色。创建服务关联角色后，您将无法更改角色的名称，因为可能有多种实体引用该角色。但是可以使用 IAM 编辑角色描述。有关更多信息，请参阅《IAM 用户指南》**中的[编辑服务关联角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 删除适用于 Amazon EMR on EKS 的服务相关角色
<a name="delete-slr"></a>

如果不再需要使用某个需要服务关联角色的功能或服务，我们建议您删除该角色。这样就没有未被主动监控或维护的未使用实体。但是，必须先清除服务相关角色的资源，然后才能手动删除它。

**注意**  
如果在您试图删除资源时，Amazon EMR on EKS 服务正在使用该角色，则删除操作可能会失败。如果发生这种情况，请等待几分钟后重试。

**要删除 `AWSServiceRoleForAmazonEMRContainers` 使用的 Amazon EMR on EKS 资源**

1. 打开 Amazon EMR 控制台。

1. 选择一个虚拟集群。

1. 在 `Virtual Cluster` 页面上，选择 **Delete (删除)**。

1. 对您账户中的任何其它虚拟集群重复此步骤。

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

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

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

Amazon EMR on EKS 支持在该服务可用的所有区域中使用服务相关角色。有关更多信息，请参阅 [Amazon EMR on EKS 服务端点和限额](service-quotas.md)。