本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用运行时角色运行 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:GetClusterSessionCredentials
API上调用。您还必须先配置 为亚马逊EC2或亚马逊配置 EMR Studio 用户权限 EKS,用户才能开始使用 Studio。
警告
要授予此权限,请在向呼叫者授予调用权限时根据elasticmapreduce:ExecutionRoleArn
上下文密钥创建条件GetClusterSessionCredentials
APIs。以下示例演示了如何执行此操作。
{ "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集群 小节。
-
首先,完成 Amazon EMR 步骤的运行时角色 小节中的先决条件。
-
然后,启动具有以下设置的集群,以便在 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.Type
值EMR
。
在工作区中使用具有运行时角色的EMR集群
设置并启动集群后,您可以将启用运行时角色的集群与 EMR Studio Workspace 配合使用。
-
创建新 Workspace 或启动现有 Workspace。有关更多信息,请参阅 创建EMR工作室工作区。
-
在打开的工作空间的左侧边栏中选择EMR集群选项卡,展开计算类型部分,然后从集群开启EC2菜单中选择您的EMR集群,从运行时角色菜单中选择运行时角色。
-
选择附加将具有运行时系统角色的集群附加到 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。