配置 Amazon EMR 集群的可发现性(面向管理员)
此部分详细介绍如何从 SageMaker Studio 配置现有 Amazon EMR 集群的可发现性。集群可以部署在与 Studio 相同的 Amazon 账户中(单个账户选项卡),也可以部署在不同的账户中(跨账户选项卡)。
- Single Account
-
将以下权限附加到访问您集群的 SageMaker Studio 执行角色。
以下列表提供了所需权限的明细。
-
AllowSagemakerProjectManagement
允许创建 SageMaker 项目。在 Studio 中,对 Amazon Service Catalog 的访问权限通过项目授予。 -
AllowClusterDetailsDiscovery
和AllowClusterDiscovery
允许发现并连接到 Amazon EMR 集群。 -
AllowPresignedUrl
允许创建用于访问 Spark UI 的预签名网址。
以下是包含这些权限的综合 JSON。
{ "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:
region
:account-id
:cluster/*" ] }, { "Sid": "AllowClusterDetailsDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstances", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeSecurityConfiguration" ], "Resource": [ "arn:aws:elasticmapreduce:region
:account-id
:cluster/*" ] }, { "Sid": "AllowClusterDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:ListClusters" ], "Resource": "*" }, { "Sid": "AllowSagemakerProjectManagement", "Effect": "Allow", "Action": [ "sagemaker:CreateProject", "sagemaker:DeleteProject" ], "Resource": "arn:aws:sagemaker:region
:account-id
:project/*" }, ] } -
- Cross Accounts
-
如果您的 Amazon EMR 集群和 SageMaker Studio 部署在不同的 Amazon 账户中,则需要通过多个步骤配置权限。
-
在信任账户(部署 Amazon EMR 的账户)上,创建具有以下权限和信任关系的自定义 IAM 角色(在本页中称为
ASSUMABLE-ROLE
)。有关在 Amazon 账户上创建角色的信息,请参阅为创建 IAM 角色(控制台)。
-
添加策略,定义以下权限。
-
AllowClusterDetailsDiscovery
和AllowClusterDiscovery
,以允许发现并连接到 Amazon EMR 集群。 -
AllowPresignedUrl
,以允许创建用于访问 Spark UI 的预签名 URL。
以下是包含这些权限的综合 JSON。
{ "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": "*" } ] } -
-
要向可信账户(部署 SageMaker Studio 的账户)授予权限以代入信任账户中的角色,请添加以下信任关系。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
studio-account
:root" }, "Action": "sts:AssumeRole" } ] }
-
-
在可信账户(部署 SageMaker Studio 的账户)上,向 Studio 执行角色添加以下信任关系。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleAssumptionForCrossAccountDiscovery", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": ["arn:aws:iam::
emr-account
:role/ASSUMABLE-ROLE
" ] }] } -
最后,请参阅针对跨账户使用场景的其他配置(面向管理员)以了解如何向 Studio 执行角色提供
ASSUMABLE-ROLE
的 ARN。Studio Jupyter 服务器在启动时加载此角色的 ARN。Studio 执行角色代入该跨账户角色,在信任账户中发现并连接到 Amazon EMR 集群。
-
访问从 SageMaker Studio 发现 Amazon EMR 集群以了解如何从 Studio 笔记本发现和连接到 Amazon EMR 集群。