创建 EMR Studio - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

创建 EMR Studio

您可以使用 Amazon EMR 控制台或 Amazon CLI为您的团队创建 EMR Studio。您也可以使用 AWS::EMR::Studio 资源模板通过 Amazon CloudFormation 创建 Studio。

Prerequisites

在创建 EMR Studio 之前,您需要具备以下条件:

  • 为 EMR Studio 设置的身份验证。有关更多信息,请参阅 为 Amazon EMR Studio 选择身份验证模式

  • 创建和管理 EMR Studio 所需的权限。有关更多信息,请参阅 创建和管理 EMR Studio 所需的权限

  • 为 Amazon EMR Studio 设置的 IAM 服务角色、IAM 权限策略和安全组。有关更多信息,请参阅 配置 EMR Studio 安全性

  • 一个指定的 Amazon S3 存储桶,EMR Studio 可以在其中备份 Studio 中的 Workspaces 和笔记本文件。您的 EMR Studio 服务角色必须对您选择的存储桶具有读写访问权限。

  • 为 Studio 指定的 Amazon Virtual Private Cloud (VPC)。如果您计划通过 EMR Studio 使用 Amazon EMR on EKS,请选择同一 VPC 作为您的 Amazon EKS 集群 Worker 节点。

  • 最多可有五个您指定的 VPC 的子网与 Studio 关联。如果您计划使用公共托管的 Git 存储库,则使用可以通过网络地址转换 (NAT) 访问互联网的私有子网。

    注意

    EMR Studio 和用于注册虚拟集群的 Amazon EKS 集群之间必须至少有一个子网。否则,托管式终端节点将不会作为选项显示在 Studio Workspaces 中。您可以创建 Amazon EKS 集群并将其与属于 Studio 的子网关联,或创建 Studio 并指定您的 EKS 集群子网。

  • Amazon Command Line Interface 版本 1.18.184 或更高版本,或者版本 2.1.4 或更高版本(如果您想使用 Amazon CLI)。使用 Studio 指定的 Amazon 账户的凭证。

  • 以下 EMR Studio 资源进行了标记,以便 EMR Studio 服务角色可以识别和访问它们。如果您使用的自定义服务角色不应用基于标签的访问控制,则可以跳过此步骤。应用标签密钥 "for-use-with-amazon-emr-managed-policies" 然后将其值设置为 "true"

    • 您的 VPC

    • 您希望与 Studio 关联的每个子网

    • 您的 EMR Studio 安全组(如果使用自定义安全组)

    • Studio 用户可能用于将 Git 存储库链接到 Workspace 的任何现有 Amazon Secrets Manager 密钥。

    您可以在Amazon Web Services Management Console中,使用相关资源屏幕上的 Tags (标签) 选项卡将标签应用于资源。

重要

在创建 Studio 之前,请确保在浏览器中禁用了 FoxyProxy 或 SwitchyOmega 等代理管理工具。当您选择 Create Studio (创建 Studio) 时,活动代理可能会导致错误,并导致出现 Network Failure (网络故障) 错误消息。

Instructions

Console

使用 EMR 控制台创建 EMR Studio

  1. 通过以下链接打开 Amazon EMR 控制台:https://console.aws.amazon.com/elasticmapreduce/home

  2. 从左侧导航中选择 EMR Studio

  3. 选择 Create Studio (创建 Studio) 以打开 Create a Studio (创建 Studio) 页面。

  4. 输入 Studio name (Studio 名称) 和可选 Description (描述)

  5. 如果您针对 Studio 使用 IAM 身份验证,则可以选择添加新标签将您选择的一个或多个键值标签添加到 Studio。您可以使用标签向指定用户授予访问 Studio 的权限。有关更多信息,请参阅 将用户或组分配到 EMR Studio

    您还可以添加标签以帮助您管理、识别、组织和筛选 Studios。有关更多信息,请参阅标记Amazon资源

  6. Networking (联网) 下,从下拉列表中为 Studio 选择 Amazon Virtual Private Cloud (VPC)。

  7. Subnets (子网) 下,在您的 VPC 中选择最多五个子网以与 Studio 关联。创建 Studio 后,您可以选择添加更多子网。

  8. 对于 Security groups (安全组),选择默认安全组或自定义安全组。有关更多信息,请参阅 定义安全组以控制 EMR Studio 网络流量

    如果选择... 请执行此操作...
    默认 EMR Studio 安全组

    要为 Studio 启用基于 Git 的存储库链接,请选择 Enable clusters/endpoints and Git repository (启用集群/终端节点和 Git 存储库)。否则,请选择 Enable clusters/endpoints (启用集群/终端节点)

    您 Studio 的自定义安全组
    • Cluster/endpoint security group (集群/终端节点安全组) 下,从下拉列表中选择您配置的引擎安全组。您的 Studio 使用此安全组来允许来自附加 Workspaces 的入站访问。

    • Workspace security group (Workspace 安全组) 下,从下拉列表中选择您配置的 Workspace 安全组。您的 Studio 使用此安全组和 Workspaces 来提供对附加 Amazon EMR 集群和公共托管 Git 存储库的出站访问。

  9. 身份验证中,为 Studio 选择身份验证模式并根据下表提供信息。要了解有关 EMR Studio 身份验证的更多信息,请参阅 为 Amazon EMR Studio 选择身份验证模式

    如果您使用... 请执行此操作...
    IAM 身份验证或联合身份验证

    选择 Studio 的登录方法。

    如果您希望联合身份用户使用 Studio URL 和您的身份提供商 (IdP) 的凭据登录,请从下拉列表中选择您的 IdP,然后输入您的身份提供商 (IdP) 登录 URL以及RelayState参数名称。

    有关 IdP 身份验证 URL 和 RelayState 名称的列表,请参阅 身份提供商 RelayState 参数和身份验证 URL

    然后,从下拉列表选择您的 EMR Studio 服务角色。有关更多信息,请参阅 创建 EMR Studio 服务角色

    Amazon Web Services SSO 身份验证 选择您的 EMR Studio服务角色用户角色。有关更多信息,请参阅 创建 EMR Studio 服务角色创建 Amazon Web Services SSO 身份验证模式的 EMR Studio 用户角色
  10. S3 Workspace 存储中,选择 Browse S3 (浏览 S3) 以选择您指定用于备份 Workspaces 和笔记本文件的 Amazon S3 存储桶。

    注意

    您的 EMR Studio 服务角色必须对您选择的存储桶具有读写访问权限。

  11. 选择 Create Studio (创建 Studio) 完成并导航到 Studio 页面。您的新 Studio 在列表中,其中包含 Studio name (Studio 名称)Creation date (日期创建)Studio access URL (Studio 访问 URL) 等详细信息。

    重要

    确保在浏览器中禁用了 FoxyProxy 或 SwitchyOmega 等代理管理工具。当您选择 Create Studio (创建 Studio) 时,活动代理可能会导致错误,并导致出现 Network Failure (网络故障) 错误消息。

创建 Studio 后,请按照将用户或组分配到 EMR Studio中的说明进行操作。

CLI

使用 create-studio Amazon CLI 命令。为以下示例的选项插入您自己的值。有关 create-studio 命令的更多信息,请参阅 Amazon CLI 命令参考

例 用于创建具有 IAM 身份验证模式的 EMR Studio 的 CLI 命令

以下示例 Amazon CLI 命令创建使用 IAM 身份验证模式的 EMR Studio。当您为 Studio 使用 IAM 身份验证或联合身份验证时,您不需要指定 --user-role

要允许联合身份用户使用 Studio URL 和身份提供商 (IdP) 的凭据登录,请指定您的 --idp-auth-url--idp-relay-state-parameter-name--idp-auth-url是您的 IdP 用于登录的 URL,--idp-relay-state-parameter-name是您的 IdP 用于其 RelayState 参数的名称。例如,RelayStateTargetSource

有关 IdP 身份验证 URL 和 RelayState 名称的列表,请参阅 身份提供商 RelayState 参数和身份验证 URL

有关 IAM 身份验证的更多信息,请参阅 Amazon EMR Studio 的 IAM 身份验证模式

aws emr create-studio \ --name <example-studio-name> \ --auth-mode IAM \ --vpc-id <example-vpc-id> \ --subnet-ids <subnet-id-1> <subnet-id-2>... <subnet-id-5> \ --service-role <example-studio-service-role-name> \ --workspace-security-group-id <example-workspace-sg-id> \ --engine-security-group-id <example-engine-sg-id> \ --default-s3-location <example-s3-location> \ --idp-auth-url <https://EXAMPLE/login/> \ --idp-relay-state-parameter-name <example-RelayState>

例 使用 Amazon Web Services SSO 身份验证模式创建 EMR Studio 的 CLI 命令

以下 Amazon CLI 示例命令创建使用 Amazon Web Services SSO 身份验证模式的 EMR Studio。当您使用 Amazon Web Services SSO 身份验证时,则必须指定 --user-role

有关 Amazon Web Services SSO 身份验证的更多信息,请参阅 Amazon EMR Studio 的 SSO 身份验证模式

aws emr create-studio \ --name <example-studio-name> \ --auth-mode SSO \ --vpc-id <example-vpc-id> \ --subnet-ids <subnet-id-1> <subnet-id-2>... <subnet-id-5> \ --service-role <example-studio-service-role-name> \ --user-role <example-studio-user-role-name> \ --workspace-security-group-id <example-workspace-sg-id> \ --engine-security-group-id <example-engine-sg-id> \ --default-s3-location <example-s3-location>
注意

为了便于读取,包含 Linux 行继续符 (\)。它们可以通过 Linux 命令删除或使用。对于 Windows,请将它们删除或替换为脱字符 (^)。

例 用于aws emr create-studio的 CLI 输出

以下是您创建 Studio 之后出现的输出示例。

{ StudioId: "es-123XXXXXXXXX", Url: "https://es-123XXXXXXXXX.emrstudio-prod.us-east-1.amazonaws.com" }

身份提供商 RelayState 参数和身份验证 URL

当您使用 IAM 联合身份验证,并且希望用户使用您的 Studio URL 和身份提供商 (IdP) 的凭证登录时,您可以指定身份提供商 (IdP) 登录 URL 和当您创建 EMR Studio时的 RelayState 参数名称。

下表列出了一些常用身份提供商的标准身份验证 URL 和 RelayState 参数名称。

身份提供商 参数 身份验证 URL
Auth0 RelayState https://<sub_domain>.auth0.com/samlp/<app_id>
Google 账户 RelayState https://accounts.google.com/o/saml2/initsso?idpid=<idp_id>&spid=<sp_id>&forceauthn=false
Microsoft Azure RelayState https://myapps.microsoft.com/signin/<app_name>/<app_id>?tenantId=<tenant_id>
Okta RelayState https://<sub_domain>.okta.com/app/<app_name>/<app_id>/sso/saml
PingFederate TargetResource https://<host>/idp/<idp_id>/startSSO.ping?PartnerSpId=<sp_id>
PingOne TargetResource https://sso.connect.pingidentity.com/sso/sp/initsso?saasid=<app_id>&idpid=<idp_id>