将 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 无法使用直接连接到 Internet Gateway (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 代码文档中的远程开发常见问题解答。以下是要求摘要:

  • 安装和更新 VS Code 远程服务器需要访问微软的 VS Code 服务器端点。

  • 要通过扩展面板安装 VS Code 扩展,需要访问 Visual Studio Marketplace 和相关的 CDN 端点(或者,可以在没有互联网连接的情况下使用 VSIX 文件手动安装扩展)。

  • 某些扩展可能需要访问其他端点才能下载其特定依赖项。有关其具体的连接要求,请参阅扩展程序的文档。

设置 Studio 远程访问网络

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

  • HTTP 代理

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

设置带有受控许可名单的 HTTP 代理

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

  1. 设置公有子网以运行 HTTP 代理(例如 Squid),您可以在其中配置允许哪些网站。确保 SageMaker 空格可以访问 HTTP 代理。

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

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

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

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

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

  2. 在本地启动启用了 SSH 的基于 Linux (x64) 的 Docker 容器,可以在本地启动,也可以通过可访问互联网的 Studio 空间启动。为简单起见,我们建议使用支持远程访问和互联网的临时 Studio 空间。

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

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

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

    确保在连接到远程容器后安装 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 客户端与远程服务器之间的兼容性。