

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon EMR Studio 工作原理
<a name="how-emr-studio-works"></a>

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

您创建的每个 EMR 工作室都使用以下资源： AWS 
+ **含有子网的 Amazon Virtual Private Cloud (VPC)** - 用户可在指定 VPC 中的 Amazon EMR 和 Amazon EMR on EKS 集群上运行 Studio 内核和应用程序。EMR Studio 可以连接到您在创建 Studio 时指定的子网中的任何集群。
+ **IAM 角色和权限策略**：要管理用户权限，您可以创建附加到用户的 IAM 身份或用户角色的 IAM 权限策略。EMR Studio 还使用 IAM 服务角色和安全组与其他服务进行互操作。 AWS 有关更多信息，请参阅[访问控制](#emr-studio-access-control)和[定义安全组以控制 EMR Studio 网络流量](emr-studio-security-groups.md)。
+ **安全组** - EMR Studio 使用安全组在 Studio 和 EMR 集群之间建立安全的网络通道。
+ **Amazon S3 备份位置** - EMR Studio 将 Notebook 作业保存在 Amazon S3 所在位置。

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

1. 使用 IAM 或 IAM 身份中心身份验证在您 AWS 账户 的 Studio 中创建。有关说明，请参阅[设置 EMR Studio](emr-studio-set-up.md)。

1. 将用户和组分配给 Studio。使用权限策略为每个用户设置细化权限。有关更多信息，请参阅主题 [分配和管理 EMR Studio 用户](emr-studio-manage-users.md)。

1. 开始使用事件监控 EMR Studio 的操作。 AWS CloudTrail 有关更多信息，请参阅 [监控 Amazon EMR Studio 操作](emr-studio-manage-studio.md#emr-studio-monitor)。

1. 通过集群模板和 Amazon EMR on EKS 托管式终端节点向 Studio 用户提供更多集群选项。

## 身份验证和用户登录
<a name="emr-studio-login"></a>

Amazon EMR Studio 支持两种身份验证模式：IAM 身份验证模式和 IAM Identity Center 身份验证模式。IAM 模式使用 AWS Identity and Access Management (IAM)，而 IAM 身份中心模式使用 AWS IAM Identity Center。创建 EMR Studio 时，您可以为 EMR Studio 的所有用户选择身份验证模式。

### IAM 身份验证模式
<a name="emr-studio-login-iam-mode"></a>

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

IAM *身份验证*允许您在 IAM 中管理其用户、组和角色等身份。您凭借 IAM 权限策略以及[基于属性的访问权限控制（ABAC）](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)，授予用户访问 Studio 的权限。

IAM *联合*允许您在第三方身份提供商 (IdP) 之间建立信任， AWS 以便您可以通过 IdP 管理用户身份。

### IAM Identity Center 身份验证模式
<a name="emr-studio-login-sso-mode"></a>

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

EMR Studio 支持使用 IAM Identity Center 的以下身份提供商：
+ **AWS Managed Microsoft AD 和自我管理的 Active Directory** — 有关更多信息，请参阅 [Connect 连接到你的 Microsoft AD 目录](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-ad.html)。
+ **基于 SAML 提供商**：有关完整列表，请参阅[支持的身份提供商](https://docs.aws.amazon.com/singlesignon/latest/userguide/supported-idps.html)。
+ **IAM Identity Center 目录**：有关更多信息，请参阅《AWS IAM Identity Center 用户指南》**中的[在 IAM Identity Center 中管理身份](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-sso.html)和[跨应用程序的可信身份传播](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation.html)。

### 身份验证如何影响登录和用户分配
<a name="emr-studio-login-auth-differences"></a>

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

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


**身份验证模式提供的 EMR Studio 登录选项**  

| 身份验证模式 | 登录方法 | 说明 | 
| --- | --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/emr/latest/ManagementGuide/how-emr-studio-works.html)  | 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) 启动的登录。  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/emr/latest/ManagementGuide/how-emr-studio-works.html)  | Identity provider (IdP)（身份提供商 (IdP)）门户 |  用户登录身份提供商的门户网站，例如 Azure 门户，然后启动 Amazon EMR 控制台。启动 Amazon EMR 控制台之后，用户根据 **Studios 列表**选择并打开 Studio。 您还可以将 EMR Studio 配置为 SAML 应用程序，以便用户可以从身份提供商的门户网站登录到指定的 Studio。有关说明，请参阅[在身份提供商 (IdP) 门户网站将 EMR Studio 配置为 SAML 应用程序](emr-studio-authentication.md#emr-studio-create-federation-deeplink)。 在联合身份验证条件下，此登录选项称为身份提供商 (IdP) 启动的登录。  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/emr/latest/ManagementGuide/how-emr-studio-works.html)  | AWS 管理控制台 | 用户 AWS 管理控制台 使用 IAM 凭证登录，然后从 Amazon EMR 控制台的 Stu dios 列表中打开 Studio。 | 

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


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

| 身份验证模式 | 用户分配 | 用户授权 | 
| --- | --- | --- | 
|  IAM（身份验证和联合身份验证）  |  在附加到 IAM 身份（用户、组或角色）的 IAM 权限策略中，允许IAM 的 `CreateStudioPresignedUrl` 操作。 对于联合身份用户，在您为用于联合身份验证的 IAM 角色配置的权限策略中，允许 IAM 的 `CreateStudioPresignedUrl` 操作。 使用基于属性的访问权限控制（ABAC）来指定用户可以访问的 Studio 或 Studios。 有关说明，请参阅[将用户或组分配到 EMR Studio](emr-studio-manage-users.md#emr-studio-assign-users-groups)。  |  定义允许某些 EMR Studio 操作的 IAM 权限策略。 对于本地用户，请将 IAM 权限策略附加到 IAM 身份（用户、组或角色）。对于联合身份用户，在您为用于联合身份验证的 IAM 角色配置的权限策略中，允许执行 Studio 操作。 有关更多信息，请参阅 [为 Amazon EC2 或 Amazon EKS 配置 EMR Studio 用户权限](emr-studio-user-permissions.md)。  | 
| IAM Identity Center |  对于在创建时将 `IdCUserAssignment` 设置为 `REQUIRED` 的 Studio，将用户映射到具有指定会话策略的 Studio。有关更多信息，请参阅 [将用户或组分配到 EMR Studio](emr-studio-manage-users.md#emr-studio-assign-users-groups)。 对于在创建时将 `IdCUserAssignment` 设置为 `OPTIONAL` 的 Studio，任何 Identity Center 用户或组都可以访问 Studio。  |  *可选：*定义允许某些 EMR Studio 操作的 IAM 会话策略。当您将用户分配给 Studio 时，请将会话策略映射到用户。 有关更多信息，请参阅 [IAM Identity Center 身份验证模式的用户权限](#emr-studio-sso-authorization)。  | 

## 访问控制
<a name="emr-studio-access-control"></a>

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

### IAM 身份验证模式的用户权限
<a name="emr-studio-iam-authorization"></a>

在使用 EMR Studio 的 IAM 身份验证时，要设置用户权限，您必须允许 IAM 权限策略的`elasticmapreduce:RunJobFlow` 等操作。您可以创建一个或多个应用的权限策略。例如，您可以创建禁止用户创建新的 Amazon EMR 集群的基本策略，也可以创建允许创建集群的策略。有关 Studio 的所有操作列表，请参阅 [AWS Identity and Access Management EMR Studio 用户的权限](emr-studio-user-permissions.md#emr-studio-iam-permissions-table)。

### IAM Identity Center 身份验证模式的用户权限
<a name="emr-studio-sso-authorization"></a>

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

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

当您[将用户和组分配](emr-studio-manage-users.md#emr-studio-assign-users-groups)到 Studio 时，您可以将会话策略映射到该用户或组以应用精细的权限。您还可以随时更新用户或组的会话策略。Amazon EMR 存储您创建的每个会话策略映射。

有关会话策略的更多信息，请参阅《AWS Identity and Access Management 用户指南》**中的[策略与权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)。

## Workspaces
<a name="emr-studio-workspaces"></a>

Workspaces 是 Amazon EMR Studio 的主要构建块。要组织 Notebook，用户必须在 Studio 创建一个或多个 Workspaces。有关更多信息，请参阅 [了解 EMR Studio Workspaces](emr-studio-configure-workspace.md)。

与[中的工作区](https://jupyterlab.readthedocs.io/en/latest/user/urls.html#managing-workspaces-ui)类似 JupyterLab，工作区可以保留笔记本工作的状态。但是，Workspace 用户界[JupyterLab](https://jupyterlab.readthedocs.io/en/latest/user/interface.html)面通过其他工具扩展了开源界面，允许您创建和连接 EMR 集群、运行作业、浏览示例笔记本以及链接 Git 存储库。

下面的列表包括 EMR Studio Workspace 的主要功能：
+ Workspace 可见性是基于 Studio 的。您在 Studio 中创建的 Workspaces 在其他 Studio 中不可见。
+ 预设情况下，Workspace 是共享的，所有 Studio 用户都可以看到。但一次只能有一个用户打开一个 Workspace 并在其中工作。要与其他用户同时工作，您可以[在 EMR Studio 中配置 Workspace 协作](emr-studio-workspace-collaboration.md)
+ 启用 Workspace 协作后，您可以同时与 Workspace 中的其他用户协作。有关更多信息，请参阅 [在 EMR Studio 中配置 Workspace 协作](emr-studio-workspace-collaboration.md)。
+ Workspace 中的 Notebook 共享同一 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 连接问题](emr-studio-workspace-stop-start.md)。
+ Workspace 可以连接到与 Studio 关联的任何子网中的集群。

有关创建和配置 EMR Studio Workspaces 的更多信息，请参阅[了解 EMR Studio Workspaces](emr-studio-configure-workspace.md)。

## Amazon EMR Studio 中的 Notebook 存储
<a name="emr-studio-storage"></a>

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

当您从 Workspace 中删除 Notebook 文件时，EMR Studio 会为您从 Amazon S3 中删除备份版本。但是，如果您删除 Workspace 而没有先删除其 Notebook 文件，则 Notebook 文件会保留在 Amazon S3 中并继续产生存储费用。要了解更多信息，请参阅[在 EMR Studio 中删除 Workspace 和 Notebook 文件](emr-studio-delete-workspace.md)。