将 Studio 设置为在 VPC 中使用无互联网访问权限的子网运行 - 亚马逊 SageMaker AI

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

将 Studio 设置为在 VPC 中使用无互联网访问权限的子网运行

本指南向您展示当您的亚马逊 A SageMaker SageMaker I 域在无法访问互联网的私有子网中运行时,如何通过 Visual Studio Code 连接到亚马逊 Studio 空间。您将了解在隔离的网络环境中建立安全远程连接所需的连接要求和设置选项。

您可以将 Amazon SageMaker Studio 配置为在仅限 VPC 模式下运行,子网无法访问互联网。此设置通过在隔离的网络环境中运行(所有流量均通过 VPC 传输),提高了机器学习工作负载的安全性。要在维护安全的同时启用外部通信,请将 VPC 终端节点用于AWS服务, PrivateLink 并为所需的AWS依赖项配置 VPC。

Studio 远程访问网络要求

VPC 模式限制:在 VPC 模式下,Studio 仅支持私有子网。Studio 无法与直接附加了互联网网关(IGW)的子网配合使用。远程 VS Code 连接与 SageMaker AI 具有相同的局限性。有关更多信息,请参阅将 VPC 中的 Studio 笔记本连接到外部资源

VPC PrivateLink 要求当 SageMaker AI 在私有子网中运行时,除了所需的标准 VPC 终端节点外,还要配置这些 SSM VPC 终端节点。 SageMaker有关更多信息,请参阅通过 VPC 端点连接 Studio

  • com.amazonaws.REGION.ssm

  • com.amazonaws.REGION.ssmmessages

VS Code 的特定网络要求

远程 VS Code 连接需要 VS Code 远程开发功能,而该功能需要特定的网络访问权限,以安装远程服务器和扩展。有关完整网络要求,请参阅 Visual Studio Code 文档中的远程开发常见问题。以下是要求汇总:

  • 需要获得对 Microsoft VS Code 服务器端点的访问权限,才能安装和更新 VS Code 远程服务器。

  • 需要获得对 Visual Studio Marketplace 和相关 CDN 端点的访问权限,才能通过扩展面板安装 VS Code 扩展(也可以在无互联网连接的情况下,使用 VSIX 文件手动安装扩展)。

  • 某些扩展可能需要对其他端点的访问权限才能下载其特定依赖项。请参阅扩展的文档以了解其特定的连接要求。

设置 Studio 远程访问网络

您可以通过两种方式将本地 Visual Studio Code 连接到私有子网中的 Studio 空间:

  • HTTP 代理

  • 预打包的 VS Code 远程服务器和扩展

设置带受控允许列表的 HTTP 代理

当你的 Studio 空间位于防火墙或代理后面时,允许访问 VS Code 服务器以及与扩展相关的端点 CDNs 和端点。

  1. 设置一个公有子网来运行 HTTP 代理(如 Squid),您可在该子网中配置允许访问的网站。确保 SageMaker 空格可以访问 HTTP 代理。

  2. 公有子网可以位于 Studio 使用的同一 VPC 中,也可以位于与 Amazon A SageMaker I 域 VPCs 使用的所有域名对等的单独的 VPC 中。

设置预打包的 Visual Studio Code 远程服务器和扩展

当 Studio 空间无法访问外部端点以下载 VS Code 远程服务器和扩展时,可以将其预打包。通过这种方法,您可以导出一个压缩包,其中包含特定版本的 VS Code 的 .VS Code-server 目录。然后,使用 A SageMaker I 生命周期配置 (LCC) 脚本将压缩包复制并提取到 Studio 空间的主目录 (/home/sagemaker-user) 中。这种基于 LCC 的解决方案既适用于AWS提供的映像,也适用于自定义映像。即便您未使用私有子网,此方法也能加快设置 VS Code 远程服务器与预安装的扩展。

预打包 VS Code 远程服务器和扩展的说明

  1. 在本地计算机上安装 VS Code。

  2. 在本地或通过具备互联网访问权限的 Studio 空间,启动一个已启用 SSH 的基于 Linux 的(x64)Docker 容器。为简便起见,我们建议使用一个已启用远程访问和互联网连接的临时 Studio 空间。

  3. 通过远程 SSH 将已安装的 VS Code 连接到本地 Docker 容器,或通过 Studio 远程 VS Code 功能连接到 Studio 空间。在连接过程中,VS Code 会将远程服务器安装到远程容器主目录下的 .VS Code-server 中。请参阅用于预打包 VS Code 远程服务器和扩展的 Dockerfile 用法示例了解更多信息。

  4. 远程连接后,请确保使用 VS Code Default 配置文件。

  5. 安装所需的 VS Code 扩展并验证其功能。例如,创建并运行笔记本以在 VS Code 远程服务器上安装与 Jupyter Notebook 相关的扩展。

    确保在连接到远程容器后安装AWS Toolkit for Visual Studio Code扩展程序

  6. $HOME/.VS Code-server 目录(例如 VS Code-server-with-extensions-for-1.100.2.tar.gz)归档至本地 Docker 容器或远程连接的 Studio 空间的终端中。

  7. 将压缩包上传到 Amazon S3。

  8. 创建一个 LCC 脚本LCC 脚本示例 (LCC-install-VS C ode-server-v 1.100.2))以便:

    • 从 Amazon S3 中下载特定归档。

    • 当私有子网中的 Studio 空间启动时,将其提取到主目录中。

  9. (可选)扩展 LCC 脚本以支持存储在用户特定 Amazon S3 文件夹中的各用户的 VS Code 服务器压缩包。

  10. (可选)维护可附加到空间的特定版本的 LCC 脚本(LCC 脚本示例 (LCC-install-VS C ode-server-v 1.100.2)),确保本地 VS Code 客户端与远程服务器之间的兼容性。