

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

# 从 VPC 内连接到 SageMaker Amazon AI 资源
<a name="infrastructure-connect-to-resources"></a>

**重要**  
以下信息适用于亚马逊 SageMaker Studio 和亚马逊 Studio Class SageMaker ic。在 VPC 中连接资源的概念同样适用于 Studio 和 Studio Classic。

默认情况下，Amazon SageMaker Studio 和 SageMaker AI 笔记本实例允许直接访问互联网。 SageMaker AI 允许您下载常用的软件包和笔记本、自定义开发环境并高效工作。但是，这可能会为未经授权访问您的数据提供机会。例如，如果您将恶意代码作为公开的笔记本或源存储库安装在计算机上，它就可能访问您的数据。您可以通过在[亚马逊虚拟私有云（亚马逊 VPC）](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)中启动 Studio 和 A SageMaker I 笔记本实例来限制哪些流量可以访问互联网。

亚马逊虚拟私有云 Amazon Virtual Private Cloud 是专用于您的 AWS 账户的虚拟网络。通过 Amazon VPC，您可以控制 Studio 和笔记本实例的网络访问和互联网连接。您可以取消直接互联网访问，以增加另一层安全性。

以下主题介绍了如何将 Studio 实例和笔记本实例连接到 VPC 中的资源。

**Topics**
+ [将 VPC 中的 Amazon SageMaker Studio 连接到外部资源](studio-updated-and-internet-access.md)
+ [将 VPC 中的 Studio 笔记本连接到外部资源](studio-notebooks-and-internet-access.md)
+ [将 VPC 中的笔记本实例连接到外部资源](appendix-notebook-and-internet-access.md)

# 将 VPC 中的 Amazon SageMaker Studio 连接到外部资源
<a name="studio-updated-and-internet-access"></a>

**重要**  
截至 2023 年 11 月 30 日，之前的亚马逊 SageMaker Studio 体验现在被命名为 Amazon St SageMaker udio Classic。以下部分专门介绍如何使用更新后的 Studio 体验。有关使用 Studio Classic 应用程序的信息，请参阅 [亚马逊 SageMaker Studio 经典版](studio.md)。

以下主题提供了有关如何将 VPC 中的 Amazon SageMaker Studio 连接到外部资源的信息。

**Topics**
+ [与互联网的默认通信](#studio-notebooks-and-internet-access-default-setting)
+ [与互联网的 `VPC only` 通信](#studio-notebooks-and-internet-access-vpc-only)

## 与互联网的默认通信
<a name="studio-notebooks-and-internet-access-default-setting"></a>

默认情况下，Amazon SageMaker Studio 提供了一个网络接口，允许通过 SageMaker AI 管理的 VPC 与互联网进行通信。流 CloudWatch 向 Amazon S3 等 AWS 服务的流量通过互联网网关，访问 SageMaker AI API 和 A SageMaker I 运行时的流量也是如此。域和您的 Amazon EFS 卷之间的流量会经过您在登录域或调用 API 时指定的 VPC。[CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)

## 与互联网的 `VPC only` 通信
<a name="studio-notebooks-and-internet-access-vpc-only"></a>

为防止 SageMaker AI 向 Studio 提供互联网接入，您可以在加入 Studi [o 或调用 [CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)API 时指定`VPC only`网络访问类型来](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-vpc.html)禁用互联网接入。因此，除非您的 VPC 具有指向 SageMaker API 和运行时的接口终端节点，或者具有互联网访问权限的 NAT 网关，并且您的安全组允许出站连接，否则您将无法运行 Studio。

**注意**  
创建域后，可以使用 [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html) 命令中的 `--app-network-access-type` 参数更改网络访问类型。

### 使用 `VPC only` 模式的要求
<a name="studio-notebooks-and-internet-access-vpc-only-requirements"></a>

当您选择 `VpcOnly` 时，请按照以下步骤操作：

1. 您只能使用私有子网。您不能在 `VpcOnly` 模式下使用公有子网。

1. 确保您的子网具有所需数量的 IP 地址。每个用户预计需要的 IP 地址数量可能因使用案例而异。我们建议每位用户使用 2 到 4 个 IP 地址。域的总 IP 地址容量是创建域时为每个子网提供的可用 IP 地址的总和。确保您估算的 IP 地址使用量不超过您提供的子网数量所支持的容量。此外，使用分布在多个可用区的子网有助于提高 IP 地址的可用性。有关更多信息，请参阅的 [VPC 和子网大小 IPv4](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#vpc-sizing-ipv4)。
**注意**  
如果实例在共享硬件上运行，您只能配置默认租赁 VPC 的子网。有关租期属性的更多信息 VPCs，请参阅[专用实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html)。

1. 
**警告**  
使用 `VpcOnly` 模式时，您对域的网络配置拥有部分所有权。我们推荐的安全最佳实践是，对安全组规则提供的入站和出站访问应用最低权限。过于宽松的入站规则配置可能会让拥有 VPC 访问权限的用户在未经身份验证的情况下与其他用户配置文件的应用程序进行交互。

   使用允许以下流量的入站和出站规则设置一个或多个安全组：
   + 域和 Amazon EFS 卷之间[通过 2049 端口 TCP 传输的 NFS 流量](https://docs.aws.amazon.com/efs/latest/ug/network-access.html)。
   + [安全组内的 TCP 流量](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-other-instances)。这是 Jupyter Server 应用程序和 Kernel Gateway 应用程序之间的连接所需。您必须至少允许 `8192-65535` 范围内的端口访问。

   为每个用户配置文件创建不同的安全组，并添加来自同一安全组的入站访问权限。我们不建议对用户配置文件重复使用域级安全组。如果域级安全组允许对其自身进行入站访问，则该域中的所有应用程序都将有权访问域中的所有其他应用程序。

1. 如果要允许互联网访问，则必须使用可访问互联网的 [NAT 网关](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-working-with)，例如通过[互联网网关](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)。

1. 如果您不想允许访问互联网，请[创建接口 VPC 终端节点](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html) (AWS PrivateLink)，以允许 Studio 使用相应的服务名称访问以下服务。您还必须将 VPC 的安全组与这些端点关联起来。
   + SageMaker API: `com.amazonaws.region.sagemaker.api`。
   + SageMaker AI 运行时:`com.amazonaws.region.sagemaker.runtime`. 这是运行端点调用所必需的。
   + Amazon S3：`com.amazonaws.region.s3`。
   + SageMaker 项目：`com.amazonaws.region.servicecatalog`。
   + SageMaker 工作室：`aws.sagemaker.region.studio`。
   + 您需要的任何其他 AWS 服务。

    如果您使用 [SageMaker Python 软件开发工具包](https://sagemaker.readthedocs.io/en/stable/)运行远程训练作业，则还必须创建以下 Amazon VPC 终端节点。
   + AWS Security Token Service: `com.amazonaws.region.sts`
   + Amazon CloudWatch: `com.amazonaws.region.logs`。 这是允许 SageMaker Python SDK 从中获取远程训练作业状态所必需的 Amazon CloudWatch。

1. 如果从内部网络以 `VpcOnly` 模式使用域，请在浏览器中运行 Studio 的主机网络与目标 Amazon VPC 之间建立专用连接。这是必需的，因为 Studio 用户界面使用带有临时 AWS 证书的 API 调用来调用 AWS 端点。这些临时凭证与登录用户配置文件的执行角色相关联。如果域是在本地网络中以`VpcOnly`模式配置的，则执行角色可能会定义 IAM 策略条件，强制仅通过配置的 Amazon VPC 端点执行 AWS 服务 API 调用。这会导致从 Studio 用户界面执行的 API 调用失败。我们建议使用 [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) 或 [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) 连接来解决这个问题。

**注意**  
对于在 VPC 模式下工作的客户，公司防火墙可能会导致 Studio 或应用程序出现连接问题。如果在防火墙后面使用 Studio 时遇到上述问题，请进行以下检查。  
确认 Studio 网址和 URLs 所有应用程序的网址是否在网络的许可名单中。例如：  

  ```
  *.studio.region.sagemaker.aws
  *.console.aws.a2z.com
  ```
确认 websocket 连接未被阻止。Jupyter 使用 websockets。

**有关更多信息**
+ [您的 VPC 的安全组](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)
+ [在您的 VPC 中连接到 SageMaker AI](interface-vpc-endpoint.md)
+ [带有公有和私有子网的 VPC（NAT）](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html)

# 将 VPC 中的 Studio 笔记本连接到外部资源
<a name="studio-notebooks-and-internet-access"></a>

以下主题介绍了如何将 VPC 中的 Studio 笔记本连接到外部资源。

## 与互联网的默认通信
<a name="studio-notebooks-and-internet-access-default"></a>

默认情况下， SageMaker Studio 提供网络接口，允许通过 SageMaker AI 管理的 VPC 与互联网通信。Amazon S3 等 AWS CloudWatch服务的流量通过互联网网关传输。访问 SageMaker API 和 SageMaker AI 运行时的流量也会通过互联网网关。域和 Amazon EFS 卷之间的流量通过您在加入 Studio 或调用 API 时识别的 VPC。[CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)下图演示了默认配置。

![\[SageMaker Studio VPC 图表描绘了直接互联网接入的使用情况。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/studio-vpc-internet.png)


## 与互联网的 `VPC only` 通信
<a name="studio-notebooks-and-internet-access-vpc"></a>

要阻止 SageMaker AI 向您的 Studio 笔记本电脑提供互联网接入，请通过指定`VPC only`网络访问类型来禁用互联网接入。当您加入 [Studio 或调用 [CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)API 时，](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-vpc.html)请指定此网络访问类型。因此，如果不这样做，您就无法运行 Studio 笔记本：
+ 您的 VPC 具有指向 SageMaker API 和运行时的接口终端节点，或者具有互联网访问权限的 NAT 网关
+ 您的安全组允许出站连接

下图显示了使用仅 VPC 模式的配置。

![\[SageMaker Studio VPC 图表描绘了仅限 VPC 模式的使用情况。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/studio/studio-vpc-private.png)


### 使用 `VPC only` 模式的要求
<a name="studio-notebooks-and-internet-access-vpc-requirements"></a>

当您选择 `VpcOnly` 时，请按照以下步骤操作：

1. 您只能使用私有子网。您不能在 `VpcOnly` 模式下使用公有子网。

1. 确保您的子网具有所需数量的 IP 地址。每个用户预计需要的 IP 地址数量可能因使用案例而异。我们建议每位用户使用 2 到 4 个 IP 地址。Studio 域的 IP 地址总容量是创建域时为每个子网提供的可用 IP 地址的总和。确保您的 IP 地址使用量不超过您提供的子网数量所支持的容量。此外，使用分布在多个可用区的子网也有助于提高 IP 地址的可用性。有关更多信息，请参阅的 [VPC 和子网大小 IPv4](https://docs.aws.amazon.com/vpc/latest/userguide/how-it-works.html#vpc-sizing-ipv4)。
**注意**  
如果实例在共享硬件上运行，您只能配置默认租赁 VPC 的子网。有关租期属性的更多信息 VPCs，请参阅[专用实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html)。

1. 
**警告**  
使用 `VpcOnly` 模式时，您对域的网络配置拥有部分所有权。我们推荐的安全最佳实践是，对安全组规则提供的入站和出站访问应用最低权限。过于宽松的入站规则配置可能会让拥有 VPC 访问权限的用户在未经身份验证的情况下与其他用户配置文件的应用程序进行交互。

   使用允许以下流量的入站和出站规则设置一个或多个安全组：
   + 域和 Amazon EFS 卷之间[通过 2049 端口 TCP 传输的 NFS 流量](https://docs.aws.amazon.com/efs/latest/ug/network-access.html)。
   + [安全组内的 TCP 流量](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-other-instances)。这是 Jupyter Server 应用程序和 Kernel Gateway 应用程序之间的连接所需。您必须至少允许 `8192-65535` 范围内的端口访问。

   为每个用户配置文件创建不同的安全组，并添加来自同一安全组的入站访问权限。我们不建议对用户配置文件重复使用域级安全组。如果域级安全组允许对自身进行入站访问，那么域中的所有应用程序都可以访问域中的所有其他应用程序。

1. 如果要允许互联网访问，则必须使用可访问互联网的 [NAT 网关](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-working-with)，例如通过[互联网网关](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)。

1. 要移除互联网访问权限，请[创建接口 VPC 终端节点](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) (AWS PrivateLink)，以允许 Studio 使用相应的服务名称访问以下服务。您还必须将 VPC 的安全组与这些端点关联起来。
   + SageMaker API: `com.amazonaws.region.sagemaker.api` 
   + SageMaker AI 运行时:`com.amazonaws.region.sagemaker.runtime`. 这是运行 Studio 笔记本、训练和托管模型所需。
   + Amazon S3：`com.amazonaws.region.s3`。
   + 要使用 SageMaker 项目，请执行以下操作：`com.amazonaws.region.servicecatalog`。
   + 您需要的任何其他 AWS 服务。

    如果您使用 [SageMaker Python 软件开发工具包](https://sagemaker.readthedocs.io/en/stable/)运行远程训练作业，则还必须创建以下 Amazon VPC 终端节点。
   + AWS Security Token Service: `com.amazonaws.region.sts`
   + Amazon CloudWatch: `com.amazonaws.region.logs`。 这是允许 SageMaker Python SDK 从中获取远程训练作业状态所必需的 Amazon CloudWatch。

**注意**  
对于在 VPC 模式下工作的客户，公司防火墙可能会导致 SageMaker Studio 或 JupyterServer 与之间的连接出现问题。 KernelGateway如果您在防火墙后面使用 SageMaker Studio 时遇到其中一个问题，请进行以下检查。  
检查 Studio URL 是否在您的网络允许列表中。
检查 WebSocket 连接是否被阻止。Jupyter 在后台使用 WebSocket。如果 KernelGateway 应用程序是 InService，则 JupyterServer 可能无法连接到 KernelGateway。打开系统终端时也应该会出现这个问题。

**有关更多信息**
+ [使用私有 VPC 保护亚马逊 SageMaker Studio 的连接](https://aws.amazon.com/blogs/machine-learning/securing-amazon-sagemaker-studio-connectivity-using-a-private-vpc)。
+ [您的 VPC 的安全组](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)
+ [在您的 VPC 中连接到 SageMaker AI](interface-vpc-endpoint.md)
+ [带有公有和私有子网的 VPC（NAT）](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html)

# 将 VPC 中的笔记本实例连接到外部资源
<a name="appendix-notebook-and-internet-access"></a>

以下主题提供了有关如何将 VPC 中的笔记本实例连接到外部资源的信息。

## 与互联网的默认通信
<a name="appendix-notebook-and-internet-access-default"></a>

当您的笔记本电脑允许*直接访问互联网*时， SageMaker AI 会提供一个网络接口，允许笔记本电脑通过 SageMaker AI 管理的 VPC 与互联网通信。您的 VPC 的 CIDR 中的流量将通过在 VPC 中创建的弹性网络接口。所有其他流量都通过 SageMaker 人工智能创建的网络接口，该接口本质上是通过公共互联网。到网关 VPC 端点（如 Amazon S3 和 DynamoDB）的流量将通过公共互联网，而到接口 VPC 端点的流量仍通过您的 VPC。如果要使用网关 VPC 端点，您可能希望禁用直接互联网访问。

## 与互联网的仅 VPC 通信
<a name="appendix-notebook-and-internet-access-default-vpc"></a>

要禁用直接互联网访问，您可以为笔记本实例指定一个 VPC。这样做可以阻止 SageMaker AI 为你的笔记本实例提供互联网访问权限。因此，除非您的 VPC 具有接口端点 (AWS PrivateLink) 或 NAT 网关，并且安全组允许出站连接，否则，笔记本实例无法训练或托管模型。

有关创建用于笔记本实例的 VPC 接口终端节点的信息，请参阅[通过 VPC 接口终端节点连接到笔记本实例](notebook-interface-endpoint.md)。 AWS PrivateLink 有关为 VPC 设置 NAT 网关的信息，请参阅《Amazon Virtual Private Cloud 用户指南》**中的[带有公有子网和私有子网 (NAT) 的 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-example-private-subnets-nat.html)。有关安全组的信息，请参阅[您的 VPC 的安全组](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html)。有关每种联网模式下的联网配置和本地配置网络的更多信息，请参阅[了解 Amazon SageMaker 笔记本实例联网配置和高级路由选项](https://aws.amazon.com/blogs/machine-learning/understanding-amazon-sagemaker-notebook-instance-networking-configurations-and-advanced-routing-options/)。

**警告**  
当您将 VPC 用于笔记本实例时，您将部分拥有该实例的网络配置权限。作为安全最佳实践，我们建议您为通过安全组规则允许的入站和出站访问配置最低权限。如果您应用过于宽松的入站规则配置，则有权访问 VPC 的用户无需身份验证，即可访问您的 Jupyter Notebook。

## 安全和共享笔记本实例
<a name="appendix-notebook-and-single-user"></a>

 SageMaker 笔记本实例的设计最适合个人用户。它旨在为数据科学家和其他用户提供管理开发环境的最强大功能。

笔记本实例用户具有安装程序包和其他相关软件的根访问权限。对于连接到包含敏感信息的 VPC 的笔记本实例，建议您在授予其相关的个人访问权限时谨慎处理。例如，您可以通过 IAM 策略向用户授予对笔记本实例的访问权限，具体方式是允许用户创建预签名笔记本 URL，如下例所示：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sagemaker:CreatePresignedNotebookInstanceUrl",
            "Resource": "arn:aws:sagemaker:us-east-1:111122223333:notebook-instance/myNotebookInstance"
        }
    ]
}
```

------

 