本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置列出 Amazon EMR 集群
管理员可以将 Studio 配置为允许用户查看他们有权访问的 Amazon EMR 集群列表,从而允许他们连接到这些集群。集群可以部署在与 Studio 相同的 AWS 账户中(选择单一账户选项卡),也可以部署在不同的账户中(选择跨账户选项卡)。
注意
Studio 目前不支持访问在与部署 Studio 的 AWS 账户不同的账户中创建的 Amazon EMR 集群。跨账户访问仅在 Studio Classic 中可用。
- Single account
-
如果您的 Amazon EMR 集群和 Studio 或 Studio Classic 部署在同一个 AWS 账户中,请向访问您的集群的 SageMaker 执行角色授予以下权限。
注意
你应该考虑什么执行角色?
Studio UI 根据与启动它的用户配置文件关联的执行角色来确定其权限。用户界面会在启动时设置这些权限。但是,启动的空间 JupyterLab 或 Studio Classic 应用程序可以拥有单独的权限。
为了跨应用程序(例如 Studio 用户界面和 Studio Classic)一致地访问 Amazon EMR 模板和集群,请在域、用户配置文件或空间级别向所有角色授予相同的权限子集。 JupyterLab这些权限应允许发现和配置 Amazon EMR 集群。
-
查找您的域名、用户个人资料或空间的执行角色。有关如何检索执行角色的信息,请参阅获取你的执行角色。
-
使用 https://console.aws.amazon.com/sagemaker/
打开 IAM 控制台。 -
选择 “角色”,然后在 “搜索” 字段中键入角色名称来搜索您创建的角色。
-
点击链接进入您的职位。
-
选择添加权限,然后选择创建内联策略。
-
在 JSON 选项卡中,添加以下 JSON 策略及其权限:
所提供的 JSON 中定义的 IAM 策略授予这些权限。
在将对
账单列表复制到角色的内联政策之前,请将工作室
区域和工作室 AWS 账户替换为实际区域和账户 ID 值。{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource": [ "arn:aws:elasticmapreduce:
studio-region
:studio-account
:cluster/*" ] }, { "Sid": "AllowClusterDetailsDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstances", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeSecurityConfiguration" ], "Resource": [ "arn:aws:elasticmapreduce:studio-region
:studio-account
:cluster/*" ] }, { "Sid": "AllowClusterDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:ListClusters" ], "Resource": "*" }, { "Sid": "AllowSagemakerProjectManagement", "Effect": "Allow", "Action": [ "sagemaker:CreateProject", "sagemaker:DeleteProject" ], "Resource": "arn:aws:sagemaker:studio-region
:studio-account
:project/*" } ] } -
命名您的策略并选择创建策略。
-
- Cross account
-
如果您的 Amazon EMR 集群和 Studio 或 Studio Classic 部署在不同的 AWS 账户中,则需要为两个账户配置权限。
在亚马逊 EMR 账户上
在部署 Amazon EMR 的账户(也称为信任账户)上,使用以下配置创建名为
ASSUMABLE-ROLE
的自定义 IAM 角色:-
权限:向授予必要的权限
ASSUMABLE-ROLE
以允许访问 Amazon EMR 资源。 -
信任关系:配置的信任策略
ASSUMABLE-ROLE
以允许从需要访问权限的 Studio 帐户担任角色。
通过担任该角色,Studio 或 Studio Classic 可以临时访问其在 Amazon EMR 中所需的权限。
-
为该角色创建新策略。
-
使用 https://console.aws.amazon.com/sagemaker/
打开 IAM 控制台。 -
在左侧菜单中,选择策略,然后选择创建策略。
-
在 JSON 选项卡中,添加以下 JSON 策略及其权限:
-
AllowClusterDetailsDiscovery
和AllowClusterDiscovery
,以允许发现并连接到 Amazon EMR 集群。 -
AllowPresignedUrl
,以允许创建用于访问 Spark UI 的预签名 URL。
将 JSON 复制到您的政策之前,请将
emr-
region 和 emr-account 替换为您的实际区域和 AWS 账户 ID 值。{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource": [ "arn:aws:elasticmapreduce:
emr-region
:emr-account
:cluster/*" ] }, { "Sid": "AllowClusterDetailsDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstances", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeSecurityConfiguration" ], "Resource": [ "arn:aws:elasticmapreduce:emr-region
:emr-account
:cluster/*" ] }, { "Sid": "AllowClusterDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:ListClusters" ], "Resource": "*" } ] } -
-
命名您的策略并选择创建策略。
-
-
创建名为的自定义 IAM 角色
ASSUMABLE-ROLE
,然后将您的新策略附加到该角色。-
在 IAM 控制台中,选择左侧菜单中的角色,然后选择创建角色。
-
对于 “可信实体类型”,选择 “AWS 帐户”,然后选择 “下一步”。
-
选择您刚刚创建的权限,然后选择 “下一步”。
-
命名您的角色,
ASSUMABLE-ROLE
然后选择 “步骤 1:选择可信实体” 右侧的 “编辑” 按钮。 -
对于 “可信实体类型”,选择 “自定义信任策略”,然后粘贴以下信任关系。这会向部署 Studio 的账户(可信账户)授予担任此角色的权限。
将
工作室账户
替换为其实际 AWS 账户 ID。选择下一步。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
studio-account
:root" }, "Action": "sts:AssumeRole" } ] } -
再次找到并选择您刚刚创建的权限,然后选择 “下一步”。
-
您的信任策略应使用您粘贴的最新 JSON 进行更新。选择 创建角色。
-
在 Studio 账号上
在部署 Studio 或 Studio Classic 的账户(也称为可信账户)上,使用以下内联策略更新访问集群的 SageMaker 执行角色。
该政策应允许跨账户扮演角色以发现其他账户中的资源。
注意
你应该考虑什么执行角色?
Studio UI 根据与启动它的用户配置文件关联的执行角色来确定其权限。用户界面会在启动时设置这些权限。但是,启动的空间 JupyterLab 或 Studio Classic 应用程序可以拥有单独的权限。
为了跨应用程序(例如 Studio 用户界面和 Studio Classic)一致地访问 Amazon EMR 模板和集群,请在域、用户配置文件或空间级别向所有角色授予相同的权限子集。 JupyterLab这些权限应允许发现和配置 Amazon EMR 集群。
-
查找您的域名、用户个人资料或空间的执行角色。有关如何检索执行角色的信息,请参阅获取你的执行角色。
-
使用 https://console.aws.amazon.com/sagemaker/
打开 IAM 控制台。 -
选择 “角色”,然后在 “搜索” 字段中键入角色名称来搜索您创建的角色。
-
点击链接进入您的职位。
-
在您的执行角色详细信息页面上,选择添加权限,然后选择创建内联策略。
-
在 JSON 选项卡中,添加以下 JSON 策略。将 JSON 复制到您的政策之前,请将 emr
-
account 替换为您实际的亚马逊 EMR 账户 ID 值。{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleAssumptionForCrossAccountDiscovery", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": ["arn:aws:iam::
emr-account
:role/ASSUMABLE-ROLE
" ] }] } -
选择 “下一步”,然后提供策略名称。
-
选择 创建策略。
-
要允许列出与 Studio 同一个账户中部署的 Amazon EMR 集群,请向你的 Studio 执行角色添加额外的内联策略,如的 “单一账户” 选项卡中所定义。配置列出 Amazon EMR 集群
在 Jupyter 服务器启动时传递角色的 ARN
最后,请参阅,了解跨账户访问的其他配置如何向您的 Studio 执行角色
ASSUMABLE-ROLE
提供的 ARN。ARN 在启动时由 Jupyter 服务器加载。Studio 使用的执行角色使用该跨账户角色来发现信任账户中的 Amazon EMR 集群。 -
访问了解列出 Studio 或 Studio Classic 中的亚马逊 EMR 集群如何通过 Studio 或 Studio Classic 笔记本电脑发现并连接到 Amazon EMR 集群。