

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將 VPC 中的 Amazon SageMaker Studio 筆記本連線至外部資源
<a name="studio-updated-and-internet-access"></a>

**重要**  
自 2023 年 11 月 30 日起，先前的 Amazon SageMaker Studio 體驗現在命名為 Amazon SageMaker Studio Classic。下節專門介紹如何使用更新的 Studio 體驗。如需使用 Studio Classic 應用程式的資訊，請參閱 [Amazon SageMaker Studio Classic](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 與網際網路進行通訊。Amazon S3 和 CloudWatch 等 AWS 服務的流量會經過網際網路閘道，存取 SageMaker AI API 和 SageMaker AI 執行期的流量也是如此。網域與 Amazon EFS 磁碟區之間的流量會經過您加入網域或呼叫 [CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html) API 時指定的 VPC。

## 與網際網路的 `VPC only` 通訊
<a name="studio-notebooks-and-internet-access-vpc-only"></a>

若要防止 SageMaker AI 提供對 Studio 的網際網路存取，您可以在[加入 Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-vpc.html) 或呼叫 [CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html) API 時指定 `VPC only` 網路存取類型來停用網際網路存取。因此除非您的 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 來設定子網路。如需 VPC 租用屬性的詳細資訊，請參閱[專用執行個體](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 Studio：`aws.sagemaker.region.studio`。
   + 您需要的任何其他 AWS 服務。

    如果您使用 [SageMaker Python SDK](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` 模式使用網域，請在瀏覽器和目標 Amazon VPC 中從執行 Studio 的主機網路建立私有連線。這是必要的，因為 Studio UI 使用具有臨時 AWS 登入資料的 API 呼叫叫用 AWS 端點。這些臨時憑證與已記錄使用者設定檔的執行角色相關聯。如果在內部部署網路中以 `VpcOnly` 模式設定網域，執行角色可能會定義 IAM 政策條件，僅透過設定的 Amazon VPC 端點強制執行 AWS 服務 API 呼叫。這會導致從 Studio UI 執行的 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 URL 和 URL 都在網路的允許清單中。例如：  

  ```
  *.studio.region.sagemaker.aws
  *.console.aws.a2z.com
  ```
驗證 websocket 連線是否未被封鎖。Jupyter 使用 Websocket。

**如需詳細資訊**
+ [您的 VPC 的安全群組](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)
+ [在您的 VPC 中連線到 SageMaker AI](interface-vpc-endpoint.md)
+ [具公有和私有子網路 (NAT) 的 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html)