配置 Amazon EMR 集群的可发现性(面向管理员) - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

配置 Amazon EMR 集群的可发现性(面向管理员)

此部分详细介绍如何从 SageMaker Studio 配置现有 Amazon EMR 集群的可发现性。集群可以部署在与 Studio 相同的 Amazon 账户中(单个账户选项卡),也可以部署在不同的账户中(跨账户选项卡)。

Single Account

将以下权限附加到访问您集群的 SageMaker Studio 执行角色。

以下列表提供了所需权限的明细。

  • AllowSagemakerProjectManagement 允许创建 SageMaker 项目。在 Studio 中,对 Amazon Service Catalog 的访问权限通过项目授予。

  • AllowClusterDetailsDiscoveryAllowClusterDiscovery 允许发现并连接到 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 角色(控制台)

    1. 添加策略,定义以下权限。

      • AllowClusterDetailsDiscoveryAllowClusterDiscovery,以允许发现并连接到 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": "*" } ] }
    2. 要向可信账户(部署 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 集群。