Amazon EMR Studio 工作原理 - Amazon EMR

Amazon EMR Studio 工作原理

Amazon EMR Studio 是您为用户团队创建的 Amazon EMR 资源。EMR Studio 是一种基于 Web 的独立集成开发环境,适用于依托 Amazon EMR 集群运行的 Jupyter notebook。用户使用其公司凭证登录 Studio。

您创建的每个 EMR Studio 都使用以下 AWS 资源:

  • 含有子网的 Amazon Virtual Private Cloud (VPC) - 用户可在指定 VPC 中的 Amazon EMR 和 Amazon EMR on EKS 集群上运行 Studio 内核和应用程序。EMR Studio 可以连接到您在创建 Studio 时指定的子网中的任何集群。

  • IAM 角色和权限策略 - 要管理用户权限,您可以创建附加到用户的 IAM 身份或 IAM 用户角色的 IAM 权限策略。EMR Studio 还使用 IAM 服务角色和安全组与其他 AWS 服务进行互操作。有关更多信息,请参阅 访问控制定义安全组以控制 EMR Studio 网络流量

  • 安全组 - EMR Studio 使用安全组在 Studio 和 EMR 集群之间建立安全的网络通道。

  • Amazon S3 备份位置 - EMR Studio 将笔记本作业保存在 Amazon S3 所在位置。

以下步骤概括了如何创建和管理 EMR Studio:

  1. 在您的 AWS 账户 中,使用 IAM 或 IAM Identity Center 身份验证创建 Studio。有关说明,请参阅设置 Amazon EMR Studio

  2. 将用户和组分配给 Studio。使用权限策略为每个用户设置细化权限。有关更多信息,请参阅主题 分配和管理 EMR Studio 用户

  3. 借助 AWS CloudTrail 事件开启监控 EMR Studio 操作。有关更多信息,请参阅 监控 Amazon EMR Studio 操作

  4. 通过集群模板和 Amazon EMR on EKS 托管式终端节点向 Studio 用户提供更多集群选项。有关更多信息,请参阅 为 Amazon EMR Studio 创建 AWS CloudFormation 模板为 Amazon EMR Studio 设置 Amazon EMR on EKS

身份验证和用户登录

Amazon EMR Studio 支持两种身份验证模式:IAM 身份验证模式和 IAM Identity Center 身份验证模式。IAM 模式使用 AWS Identity and Access Management(IAM),而 IAM Identity Center 模式使用 AWS IAM Identity Center (successor to AWS Single Sign-On)。创建 EMR Studio 时,您可以为 EMR Studio 的所有用户选择身份验证模式。

IAM 身份验证模式

通过 IAM 身份验证模式,您可以使用 IAM 身份验证或 IAM 联合身份验证。

IAM 身份验证允许您在 IAM 中管理其用户、组和角色等身份。您凭借 IAM 权限策略以及基于属性的访问控制 (ABAC),授予用户访问 Studio 的权限。

IAM 联合身份验证允许您在第三方身份提供商 (IdP) 和 AWS 之间建立信任,以便您可以通过自己的 IdP 管理用户身份。

IAM Identity Center 身份验证模式

IAM Identity Center 身份验证模式允许您给予用户联合访问 EMR Studio 的权限。您可以使用 IAM Identity Center 通过您的 IAM Identity Center 目录、现有公司目录或诸如 Azure Active Directory(AD)的外部 IdP 进行用户和组的身份验证。之后,您可以用身份提供商 (IdP) 管理用户。

EMR Studio 支持使用 IAM Identity Center 的以下身份提供商:

身份验证如何影响登录和用户分配

您为 EMR Studio 选择的身份验证模式会影响用户登录 Studio 的方式、将用户分配给 Studio 的方式以及您授权(授予权限)用户执行诸如创建新的 Amazon EMR 集群之类操作的方式。

下表根据身份验证模式概述了 EMR Studio 的登录方法。

身份验证模式提供的 EMR Studio 登录选项
身份验证模式 登录方法 描述
  • IAM(身份验证和联合身份验证)

  • IAM Identity Center

EMR Studio URL

用户使用 Studio 访问 URL 登录 Studio。例如:https://xxxxxxxxxxxxxxxxxxxxxxx.emrstudio-prod.us-east-1.amazonaws.com

使用 IAM 身份验证时,用户输入 IAM 凭证。当您使用 IAM 联合身份验证时或 IAM Identity Center 时,EMR Studio 将用户重定向到身份提供商的登录 URL 以输入凭证。

在联合身份验证的条件下,此登录选项称为服务提供商 (SP) 启动的登录。

  • IAM(联合身份验证)

  • IAM Identity Center

Identity provider (IdP)(身份提供商 (IdP))门户

用户登录身份提供商的门户网站,例如 Azure 门户,然后启动 Amazon EMR 控制台。启动 Amazon EMR 控制台之后,用户根据 Studios 列表选择并打开 Studio。

您还可以将 EMR Studio 配置为 SAML 应用程序,以便用户可以从身份提供商的门户网站登录到指定的 Studio。有关说明,请参阅在身份提供商 (IdP) 门户网站将 EMR Studio 配置为 SAML 应用程序

在联合身份验证条件下,此登录选项称为身份提供商 (IdP) 启动的登录。

  • IAM (身份验证)

AWS Management Console 用户使用 IAM 凭证登录 AWS Management Console 并通过 Studios 列表 在 Amazon EMR 控制台打开 Studio。

下表概述了在身份验证模式下针对 EMR Studio 进行的用户分配和授权。

在身份验证模式下进行 EMR Studio 用户分配和授权
身份验证模式 用户分配 用户授权

IAM(身份验证和联合身份验证)

在附加到 IAM 身份(用户、组或角色)的 IAM 权限策略中,允许IAM 的 CreateStudioPresignedUrl 操作。

对于联合身份用户,在您为用于联合身份验证的 IAM 角色配置的权限策略中,允许 IAM 的 CreateStudioPresignedUrl 操作。

使用基于属性的访问控制 (ABAC) 来指定用户可以访问的 Studio 或 Studios。

有关说明,请参阅将用户或组分配到 EMR Studio

定义允许某些 EMR Studio 操作的 IAM 权限策略。

对于本地 IAM 用户,请将 IAM 权限策略附加到 IAM 身份(用户、组或角色)。对于联合身份用户,在您为用于联合身份验证的 IAM 角色配置的权限策略中,允许执行 Studio 操作。

有关更多信息,请参阅配置 EMR Studio 用户权限

IAM Identity Center

通过将用户映射到具有指定会话策略的 Studio,将用户分配给 Studio。

有关说明,请参阅 将用户或组分配到 EMR Studio

定义允许某些 EMR Studio 操作的 IAM 会话策略。当您将用户分配给 Studio 时,请将会话策略映射到用户。

有关更多信息,请参阅IAM Identity Center 身份验证模式的用户权限

访问控制

在 Amazon EMR Studio,您可以配置用户授权(权限)AWS Identity and Access Management(IAM) 基于身份的策略。通过这些策略,您可以指定允许的操作和资源以及允许操作的条件。

IAM 身份验证模式的用户权限

在使用 EMR Studio 的 IAM 身份验证时,要设置用户权限,您必须允许 IAM 权限策略的elasticmapreduce:RunJobFlow 等操作。您可以创建一个或多个应用的权限策略。例如,您可以创建禁止用户创建新的 Amazon EMR 集群的基本策略,也可以创建允许创建集群的策略。有关 Studio 的所有操作列表,请参阅 EMR Studio 用户的 AWS Identity and Access Management 权限

IAM Identity Center 身份验证模式的用户权限

当您使用 IAM Identity Center 身份验证时,您可以创建单个 EMR Studio 用户角色。用户角色 是指 Studio 在用户登录时担任的专用 IAM 角色。

您可以将 IAM 会话策略附加到 EMR Studio 用户角色。会话策略是一种特殊的 IAM 权限策略,它限制了联合身份用户在 Studio 登录会话期间可以执行的操作。会话策略让您可以为用户或组设置特定的 EMR Studio 权限,而无需创建多个 IAM 角色。

当您将用户和组分配到 Studio 时,您可以将会话策略映射到该用户或组以应用精细的权限。您还可以随时更新用户或组的会话策略。Amazon EMR 存储您创建的每个会话策略映射。

有关会话策略的更多信息,请参阅《AWS Identity and Access Management 用户指南》中的策略与权限

Workspaces

Workspaces 是 Amazon EMR Studio 的主要构建块。要组织笔记本,用户必须在 Studio 创建一个或多个 Workspaces。

Workspace 类似于 JupyterLab 中的 Workspaces,因为它会保留笔记本作业的状态。然而,Workspace 用户界面通过其他工具扩展了开源 JupyterLab 界面,以帮助您创建和附加 EMR 集群、运行任务、探索示例笔记本和链接 Git 存储库。

下面的列表包括 EMR Studio Workspace 的主要功能:

  • Workspace 可见性是基于 Studio 的。您在 Studio 中创建的 Workspaces 在其他 Studio 中不可见。

  • 预设情况下,Workspace 是共享的,所有 Studio 用户都可以看到。但一次只能有一个用户打开一个 Workspace 并在其中工作。要与其他用户同时工作,您可以配置 Workspace 协作

  • 启用 Workspace 协作后,您可以同时与 Workspace 中的其他用户协作。有关更多信息,请参阅配置 Workspace 协作

  • Workspace 中的笔记本共享同一 EMR 集群以运行命令。您可以将 Workspace 附加到 Amazon EC2 上运行的 Amazon EMR 集群或附加到 Amazon EMR on EKS 虚拟集群和托管式终端节点上。

  • Workspace 可以切换到与 Studio 子网关联的另一个可用区。您可以停止并重启 Workspace 以提示故障转移过程。当您重启 Workspace 时,如果 Studio 被配置为拥有对多个可用区的访问权限,则 EMR Studio 将在 Studio VPC 的其他可用区中启动该 Workspace。如果 Studio 只有一个可用区,则 EMR Studio 将尝试在其他子网中启动该 Workspace。有关更多信息,请参阅解决 Workspace 连接问题

  • Workspace 可以连接到与 Studio 关联的任何子网中的集群。

有关创建和配置 EMR Studio Workspaces 的更多信息,请参阅学习 WorkSpace 基础知识

Amazon EMR Studio 中的笔记本存储

当您使用 Workspace 时,EMR Studio 会定期将您的笔记本文件中的单元格自动保存到与您的 Studio 关联的 Amazon S3 位置。此备份过程可以保留会话之间的工作,以便您以后可以在不向 Git 存储库提交更改的情况下再返回。有关更多信息,请参阅 保存 Workspace 内容

当您从 Workspace 中删除笔记本文件时,EMR Studio 会为您从 Amazon S3 中删除备份版本。但是,如果您删除 Workspace 而没有先删除其笔记本文件,则笔记本文件会保留在 Amazon S3 中并继续产生存储费用。要了解更多信息,请参阅“删除 Workspace 和笔记本文件”。