授予用户访问 Amazon EMR on EKS 的权限 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

授予用户访问 Amazon EMR on EKS 的权限

对于您在 Amazon EMR on EKS 执行的任何操作,您需要对该操作具有相应的 IAM 权限。您必须创建 IAM policy,以便您执行 Amazon EMR on EKS 操作,并将该策略附加到您使用的 IAM 用户或角色。

本主题提供了创建新策略并将其附加到用户的步骤。IAM policy 还涵盖了在 EKS 环境上设置 Amazon EMR 所需的基本权限。我们建议您尽可能根据您的业务需求来优化特定资源的权限。

在 IAM 控制台中创建新 IAM policy 并将其附加到用户

创建新 IAM policy
  1. 登录 Amazon Web Services Management Console 并打开 IAM 控制台,网址为 https://console.aws.amazon.com/iam/

  2. 在 IAM 控制台的导航窗格中,选择 Policies (策略)

  3. 策略页面上,选择 Create a policy (创建策略)

  4. Create Policy (创建策略) 窗口中,导航到 Edit JSON (编辑 JSON) 选项卡。创建包含一个或多个 JSON 语句的策略文档,如该过程以下示例所示。接下来,选择 Review policy (查看策略)

  5. Review Policy (查看策略) 屏幕上,输入您的 Policy Name (策略名称),例如 AmazonEMROnEKSPolicy。输入可选描述,然后选择 Create policy (创建策略)

将策略附加到用户或角色
  1. 登录 Amazon Web Services Management Console 并打开 IAM 控制台,网址为 https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Policies(策略)

  3. 在策略列表中,选中在前一部分中所创建策略旁边的复选框。您可以使用 Filter 菜单和搜索框来筛选策略列表。

  4. 选择 Policy actions(策略操作),然后选择 Attach(附加)

  5. 选择要将此策略附加到的用户或角色。您可以使用 Filter(筛选条件)菜单和搜索框来筛选委托人实体列表。在选择要将策略附加到的用户或角色后,选择 Attach policy (附加策略)

管理虚拟集群的权限

要管理您 Amazon 账户中的虚拟集群,请创建具有以下权限的 IAM 策略。这些权限允许您在 Amazon 账户中创建、列出、描述和删除虚拟集群。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "emr-containers.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "emr-containers:CreateVirtualCluster", "emr-containers:ListVirtualClusters", "emr-containers:DescribeVirtualCluster", "emr-containers:DeleteVirtualCluster" ], "Resource": "*" } ] }

Amazon EMR 已与 Amazon EKS 集群访问管理 (CAM) 集成,因此您可以自动配置必要的 AuthN 和 AuthZ 策略,以便在亚马逊 EKS 集群的命名空间中运行 Amazon EMR Spark 任务。为此,您必须具有以下权限:

{ "Effect": "Allow", "Action": [ "eks:DescribeAccessEntry", "eks:CreateAccessEntry", "eks:DeleteAccessEntry", "eks:ListAssociatedAccessPolicies", "eks:AssociateAccessPolicy", "eks:DisassociateAccessPolicy" ], "Resource": "*" }

有关更多信息,请参阅在 EKS 上自动启用 Amazon EMR 的集群访问权限

首次从 Amazon 账户调用该CreateVirtualCluster操作时,您还需要拥有在 EKS 上为 Amazon EMR 创建服务相关角色的CreateServiceLinkedRole权限。有关更多信息,请参阅 对 Amazon EMR on EKS 使用服务相关角色

提交任务的权限

要在您 Amazon 账户中的虚拟集群上提交任务,请创建具有以下权限的 IAM 策略。这些权限允许您启动、列出、描述和取消账户中所有虚拟集群的任务运行。您应该考虑添加列出或描述虚拟集群的权限,以便在提交任务之前检查虚拟集群的状态。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-containers:StartJobRun", "emr-containers:ListJobRuns", "emr-containers:DescribeJobRun", "emr-containers:CancelJobRun" ], "Resource": "*" } ] }

用于调试和监控的权限

要访问推送到 Amazon S3 的日志 CloudWatch,或者要在 Amazon EMR 控制台中查看应用程序事件日志,请创建具有以下权限的 IAM 策略。我们建议您尽可能根据您的业务需求来优化特定资源的权限。

重要

如果您尚未创建 Amazon S3 存储桶,您需要添加 s3:CreateBucket 权限以访问策略声明。如果您尚未创建日志组,则需要添加 logs:CreateLogGroup 到策略声明。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-containers:DescribeJobRun", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:Get*", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": "*" } ] }

有关如何配置任务运行以将日志推送到 Amazon S3 的更多信息 CloudWatch,请参阅将任务运行配置为使用 S3 日志和将任务运行配置为使用 CloudWatch 日志