使用运行时角色运行 EMR Studio 工作区 - Amazon EMR

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

使用运行时角色运行 EMR Studio 工作区

注意

本页描述的运行时角色功能仅适用于在亚马逊上EMR运行的 AmazonEC2,并不涉及EMR无服务器交互式应用程序中的运行时角色功能。要详细了解如何在EMR无服务器中使用运行时角色,请参阅 Amazon Serverl EMR ess 用户指南中的 Job 运行时角色

运行时角色是一个 AWS Identity and Access Management (IAM) 角色,您可以在向 Amazon EMR 集群提交任务或查询时指定该角色。您提交到EMR集群的任务或查询使用运行时角色访问 AWS 资源,例如 Amazon S3 中的对象。

将 EMR Studio Workspace 附加到使用 Amazon EMR 6.11 或更高版本的EMR集群时,您可以为任务或查询选择一个运行时角色,供其在访问 AWS 资源时使用。但是,如果EMR集群不支持运行时角色,则EMR集群在访问 AWS 资源时不会担任该角色。

在 Amazon EMR Studio 工作区中使用运行时角色之前,管理员必须配置用户权限,以便 Studio 用户可以调用运行时角色。elasticmapreduce:GetClusterSessionCredentials API然后,启动一个具有运行时角色的新集群,您可以将其与 Amazon EMR Studio Workspace 配合使用。

为运行时系统角色配置用户权限

配置用户权限,以便 Studio 用户可以在用户想要使用的运行时角色elasticmapreduce:GetClusterSessionCredentialsAPI上调用。您还必须先配置 为亚马逊EC2或亚马逊配置 EMR Studio 用户权限 EKS,用户才能开始使用 Studio。

警告

要授予此权限,请在向呼叫者授予调用权限时根据elasticmapreduce:ExecutionRoleArn上下文密钥创建条件GetClusterSessionCredentialsAPIs。以下示例演示了如何执行此操作。

{ "Sid": "AllowSpecificExecRoleArn", "Effect": "Allow", "Action": [ "elasticmapreduce:GetClusterSessionCredentials" ], "Resource": "*", "Condition": { "StringEquals": { "elasticmapreduce:ExecutionRoleArn": [ "arn:aws:iam::111122223333:role/test-emr-demo1", "arn:aws:iam::111122223333:role/test-emr-demo2" ] } } }

以下示例演示如何允许IAM委托人使用名test-emr-demo3为运行时角色的角色。IAM此外,保单持有人只能使用EMR集群 ID 访问亚马逊集群j-123456789

{ "Sid":"AllowSpecificExecRoleArn", "Effect":"Allow", "Action":[ "elasticmapreduce:GetClusterSessionCredentials" ], "Resource": [ "arn:aws:elasticmapreduce:<region>:111122223333:cluster/j-123456789" ], "Condition":{ "StringEquals":{ "elasticmapreduce:ExecutionRoleArn":[ "arn:aws:iam::111122223333:role/test-emr-demo3" ] } } }

以下示例允许IAM委托人使用名称以字符串开头的任何IAM角色test-emr-demo4作为运行时角色。此外,保单持有人只能访问标有键值对的 Amazon EMR 集群。tagKey: tagValue

{ "Sid":"AllowSpecificExecRoleArn", "Effect":"Allow", "Action":[ "elasticmapreduce:GetClusterSessionCredentials" ], "Resource": "*", "Condition":{ "StringEquals":{ "elasticmapreduce:ResourceTag/tagKey": "tagValue" }, "StringLike":{ "elasticmapreduce:ExecutionRoleArn":[ "arn:aws:iam::111122223333:role/test-emr-demo4*" ] } } }

使用运行时系统角色启动新集群

现在,您已拥有所需的权限,可以启动一个具有运行时角色的新集群,您可以在 Amazon EMR Studio Workspace 中使用该角色。

如果已经启动具有运行时系统角色的新集群,则可跳至 在工作区中使用具有运行时角色的EMR集群 小节。

  1. 首先,完成 Amazon EMR 步骤的运行时角色 小节中的先决条件。

  2. 然后,启动具有以下设置的集群,以便在 Amazon EMR Studio 工作区中使用运行时角色。有关如何启动集群的说明,请参阅 指定 Amazon EMR 集群的安全配置

    • 对于发行版标签,选择 emr-6.11.0 或更高版本。

    • 选择 Spark、Livy 和 Jupyter Enterprise Gateway 作为集群应用程序。

    • 使用在上一步中创建的安全配置。

    • 或者,您可以为EMR集群启用 Lake Formation。有关更多信息,请参阅 使用 Amazon EMR 启用 Lake Formation

启动集群后,就可以将启用运行时角色的集群与 EMR Studio Workspace 一起使用了。

注意

当该ExecutionRoleArn值为时,该 StartNotebookExecutionAPI操作当前不支持该ExecutionEngineConfig.TypeEMR

在工作区中使用具有运行时角色的EMR集群

设置并启动集群后,您可以将启用运行时角色的集群与 EMR Studio Workspace 配合使用。

  1. 创建新 Workspace 或启动现有 Workspace。有关更多信息,请参阅 创建EMR工作室工作区

  2. 在打开的工作空间的左侧边栏中选择EMR集群选项卡,展开计算类型部分,然后从集群开启EC2菜单中选择您的EMR集群,从运行时角色菜单中选择运行时角色

    EMRStudio Workspace 用户界面基于 JupyterLab界面,左侧边栏上有图标表示的选项卡。
  3. 选择附加将具有运行时系统角色的集群附加到 Workspace。

注意

选择运行时角色时,请注意,该角色可能具有与之关联的底层托管策略。在大多数情况下,我们建议选择有限的资源,例如特定的笔记本电脑。例如,如果您选择的运行时角色包含所有笔记本的访问权限,则与该角色关联的托管策略将提供完全访问权限。

注意事项

在 Amazon EMR Studio Workspace 中使用支持运行时角色的集群时,请记住以下注意事项:

  • 只有将 EMR Studio Workspace 附加到使用 Amazon EMR 版本 6.11 或更高版本的EMR集群时,您才能选择运行时角色。

  • 只有在 Amazon 上运行的 Amazon 才支持此页面上描述的EMR运行时角色功能EC2,EMR无服务器交互式应用程序不支持该功能。要了解有关EMR无服务器运行时角色的更多信息,请参阅 Amazon Serverl EMR ess 用户指南中的 Job 运行时角色

  • 尽管在向集群提交作业时需要先配置其他权限,然后才能指定运行时角色,但无需其他权限即可访问由 EMR Studio Workspace 生成的文件。此类文件的权限与没有运行时系统角色的集群生成的文件相同。

  • 您不能在具有运行时角色的集群的 EMR Studio 工作区中使用SQL资源管理器。当工作区连接到EMR启用运行时角色EMR的集群时,Amazon 会在用户界面中禁用SQL资源管理器。

  • 在具有运行时角色的集群的 EMR Studio Workspace 中,您不能使用协作模式。当工作区连接到EMR启用运行时角色EMR的集群时,Amazon 会禁用工作区协作功能。只有连接了 Workspace 的用户才能访问 Workspace。

  • 您不能在启用了 Identity Center 可信IAM身份传播的 Studio 中使用运行时角色。

  • 您可能会遇到 Spark UI 发出的 Page may not be safe! 警告,来自使用亚马逊 7.4.0 及更低EMR版本的支持运行时角色的集群的 Spark UI。如果发生这种情况,请绕过警报继续查看 Spark UI。