

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

# 为 Amazon EMR 集群配置网络访问权限
<a name="studio-notebooks-emr-networking"></a>

在开始使用 Amazon EMR 或 EMR Serverless 执行 Studio 中的数据准备任务之前，请确保您或您的管理员已对网络进行了配置，以允许 Studio 和 Amazon EMR 之间进行通信。启用此通信后，您可以选择：
+ [使用 EMR Serverless 准备数据](studio-notebooks-emr-serverless.md)
+ [使用 Amazon EMR 准备数据](studio-notebooks-emr-cluster.md)

**注意**  
对于 EMR Serverless 用户来说，最简单的设置是在 Studio UI 中创建应用程序，无需修改**虚拟私有云（VPC）**选项的默认设置。这种方法允许在您 SageMaker 域的 VPC 中创建应用程序，无需进行额外的网络配置。如果您选择此选项，则可以跳过下面的网络设置部分。

根据 Studio 和 Amazon EMR 是部署在私有 [Amazon 虚拟私有云（VPC）](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)内还是通过互联网通信，联网说明也会有所不同。

默认情况下，Studio 或 Studio Classic 在[可访问互联网](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html#studio-notebooks-and-internet-access-default)的 AWS 托管 VPC 中运行。使用互联网连接时，Studio 和 Studio Classic 会通过互联网访问 AWS 资源，例如 Amazon S3 存储桶。但是，如果您有控制数据和作业容器访问的安全要求，我们建议您对 Studio 或 Studio Classic 和 Amazon EMR 进行配置，以便无法通过互联网访问您的数据和容器。要控制对资源的访问或在没有公共互联网访问的情况下运行 Studio 或 Studio Classic，您可以在加入 [Amazon A SageMaker I 域](gs-studio-onboard.md)时指定`VPC only`网络访问类型。在这种情况下，Studio 和 Studio Classic 都通过私有 [VPC 终端节点](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)与其他 AWS 服务建立连接。有关在`VPC only`模式下配置 Studio 或 Studio Classic 的信息，请参阅[将 VPC 中的 SageMaker Studio 或 Studio Classic 笔记本电脑连接到外部资源。](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html#studio-notebooks-and-internet-access-vpc-only) 。

前两节介绍如何在 VPCs 没有公共互联网接入的情况下确保 Studio 或 Studio Classic 与 Amazon EMR 之间的通信。最后一节介绍如何使用互联网连接确保 Studio 或 Studio Classic 与 Amazon EMR 之间的通信。在没有互联网访问权限的情况下连接 Studio 或 Studio Classic 和亚马逊 EMR 之前，请务必为亚马逊简单存储服务（数据存储）、亚马逊（记录和监控）和亚马逊 SageMaker 运行时 CloudWatch（基于角色的细粒度访问控制 (RBAC)）建立终端节点。

连接 Studio 或 Studio Classic 和 Amazon EMR：
+ 如果 Studio 或 Studio Classic 和 Amazon EMR 分开存放 VPCs，无论是在同一个 AWS 账户中还是在不同的账户中，请参阅。[Studio 和 Amazon EMR 是分开的 VPCs](#studio-notebooks-emr-networking-requirements-cross-vpc)
+ 如果 Studio 或 Studio Classic 与 Amazon EMR 位于同一 VPC 中，请参阅 [Studio 和 Amazon EMR 位于同一 VPC 中](#studio-notebooks-emr-networking-requirements-same-vpc)。
+ 如果您选择通过公共互联网连接 Studio 或 Studio Classic 和 Amazon EMR，请参阅 [Studio 和 Amazon EMR 通过公共互联网进行通信](#studio-notebooks-emr-networking-requirements-internet)。

## Studio 和 Amazon EMR 是分开的 VPCs
<a name="studio-notebooks-emr-networking-requirements-cross-vpc"></a>

要允许 Studio 或 Studio Classic 与 Amazon EMR 在单独部署时进行通信，请执行以下操作： VPCs

1. 首先 VPCs 通过 VPC 对等连接进行连接。

1. 更新每个 VPC 中的路由表，在 Studio 或 Studio Classic 子网与 Amazon EMR 子网之间双向路由网络流量。

1. 配置安全组以允许入站和出站流量。

无论资源部署在单个 AWS 账户（单账户用例）中，还是跨多个 AWS 账户（跨账户用例）部署，连接 Studio 或 Studio Classic 和 Amazon EMR 的步骤都是一样的。

1. 

**VPC 对等连接**

   创建 [VPC 对等连接](https://docs.aws.amazon.com/vpc/latest/peering/working-with-vpc-peering.html)以促进两者 VPCs （Studio 或 Studio Classic 和 Amazon EMR）之间的联网。

   1. 从您的 Studio 或 Studio Classic 账户，在 VPC 面板上选择 **对等连接**，然后选择**创建对等连接**。

   1. 创建请求，将 Studio 或 Studio Classic VPC 与 Amazon EMR VPC 对等。在其他 AWS 账户中请求对等时，请在选择要**与之建立对等关系的另一个 VPC 中选择另一个****账户**。

      对于跨账户对等互联，管理员必须接受来自 Amazon EMR 账户的请求。

      与私有子网建立对等连接时，您应在 VPC 对等连接级别启用私有 IP DNS 解析。

1. 

**路由表**

   在 Studio 或 Studio Classic 子网与 Amazon EMR 子网之间双向发送网络流量。

   建立对等连接后，管理员（在跨账户访问的每个账户上）可以将路由添加到私有子网路由表中，以路由 Studio 或 Studio Classic 与 Amazon EMR 子网之间的流量。您可以在 VPC 控制面板中，转到每个 VPC 的**路由表**部分来定义这些路由。

   下面的 Studio VPC 子网路由表示例显示了通过对等连接从 Studio 账户到 Amazon EMR VPC IP 范围（此处为 `2.0.1.0/24`）的出站路由。  
![\[Studio VPC 子网的路由表演示了通过对等连接，从 Studio 账户到 Amazon EMR VPC IP 范围（此处为 2.0.1.0/24）的出站路由。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-return-route.png)

   下图中 Amazon EMR VPC 子网的路由表演示了通过对等连接，从 Amazon EMR VPC 账户到 Studio VPC IP 范围（此处为 `10.0.20.0/24`）的返回路由示例。  
![\[Amazon EMR VPC 子网的路由表，显示通过对等连接从 Amazon EMR 账户到 Studio VPC IP 范围（此处为 10.0.20.0/24）的返回路由\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-outbound-route.png)

1. 

**安全组**

   最后，Studio 或 Studio Classic 域的安全组必须允许出站流量，Amazon EMR 主节点的安全组必须允许 *Apache Livy*、*Hive* 或 *Presto* 的入站流量。TCP 端口（分别为 `8998`、`10000` 和 `8889`）的入站流量。[Apache Livy](https://livy.apache.org/) 是一项可通过 REST 接口与 Amazon EMR 交互的服务。

下图显示了 Amazon VPC 设置的示例，该设置允许 JupyterLab或 Studio Classic 笔记本电脑通过服务目录中的 CloudFormation 模板预配置 Amazon EMR 集群，然后连接到同一账户中的亚马逊 EMR 集群。 AWS 该图进一步说明了在无法访问互联网时直接连接到各种 AWS 服务（例如 Amazon S3 或 Amazon CloudWatch）所需的终端节点。 VPCs 或者，必须使用 [NAT 网关](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-working-with)来允许多个 VPCs 私有子网中的实例在访问互联网时共享[互联网网关](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)提供的单个公有 IP 地址。

![\[架构图展示了一个简单 Amazon VPC 设置的示例，该设置允许 Studio 或 Studio Classic 笔记本电脑通过服务目录 CloudFormation 中的模板预配置 Amazon EMR 集群，然后连接到同一账户中的亚马逊 EMR 集群。 AWS 该图进一步说明了在无法访问互联网时直接连接到各种 AWS 服务（例如 Amazon S3 或 Amazon CloudWatch）所需的终端节点。 VPCs 或者，必须使用 NAT 网关来允许多个 VPCs 私有子网中的实例在访问互联网时共享互联网网关提供的单个公有 IP 地址。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-architecture-singleaccount-vpcendpoints.png)


## Studio 和 Amazon EMR 位于同一 VPC 中
<a name="studio-notebooks-emr-networking-requirements-same-vpc"></a>

如果 Studio 或 Studio Classic 和 Amazon EMR 位于不同的子网中，请在每个专用子网路由表中添加路由，以路由 Studio 或 Studio Classic 和 Amazon EMR 子网之间的流量。您可以在 VPC 控制面板中，转到每个 VPC 的**路由表**部分来定义这些路由。如果在同一 VPC 和同一子网中部署了 Studio 或 Studio Classic 和 Amazon EMR，则无需在 Studio 和 Amazon EMR 之间路由流量。

无论您是否需要更新路由表，Studio 或 Studio Classic 域的安全组都必须允许出站流量，而 Amazon EMR 主节点的安全组必须允许来自 Studio 或 Studio Classic 实例安全组的 *Apache Livy*、*Hive* 或 *Presto* TCP 端口（分别为 `8998`、`10000` 和 `8889`）的入站流量。[Apache Livy](https://livy.apache.org/) 是一项可通过 REST 接口与 Amazon EMR 交互的服务。

## Studio 和 Amazon EMR 通过公共互联网进行通信
<a name="studio-notebooks-emr-networking-requirements-internet"></a>

默认情况下，Studio 和 Studio Classic 提供网络接口，允许通过与 SageMaker 域关联的 VPC 中的互联网网关与互联网进行通信。如果您选择通过公共互联网连接 Amazon EMR，则 Amazon EMR 需要接受来自其互联网网关的 *Apache Livy*、*Hive* 或 *Presto* TCP 端口（分别为 `8998`、`10000` 和 `8889`）的入站流量。[Apache Livy](https://livy.apache.org/) 是一项可通过 REST 接口与 Amazon EMR 交互的服务。

请记住，您允许入站流量通过的任何端口，都代表着潜在的安全漏洞。请仔细检查自定义安全组，以确保您最大限度地减少漏洞。有关更多信息，请参阅[使用安全组控制网络流量](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-groups.html)。

或者，有关如何[在 Amazon EMR 上启用 Kerberos](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)、在私有子网中设置集群并使用[网络负载均衡器 (NLB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 仅公开特定端口来访问集群（通过安全组进行访问控制）的演练，请参阅[博客和白皮书](studio-notebooks-emr-resources.md)。

**注意**  
通过公共互联网连接到 Apache Livy 端点时，我们建议您使用 TLS 确保 Studio 或 Studio Classic 与 Amazon EMR 集群之间的通信安全。  
有关使用 Apache Livy 设置 HTTPS 的信息，请参阅[使用 Apache Livy 启用 HTTPS](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/enabling-https.html)。有关设置启用传输加密的 Amazon EMR 集群的信息，请参阅[为通过 Amazon EMR 加密来加密传输中数据提供证书](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-encryption-enable.html#emr-encryption-certificates)。此外，您还需要配置 Studio 或 Studio Classic 以访问 [通过 HTTPS 连接到 Amazon EMR 集群。](connect-emr-clusters.md#connect-emr-clusters-ssl) 中指定的证书键。