

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

# 讓 SageMaker AI 處理任務可以存取 Amazon VPC 中的資源
<a name="process-vpc"></a>

若要控制對資料和處理任務的存取，請使用私有子網路建立 Amazon VPC。如需 VPC 在建立和設定方面的資訊，請參閱 [Amazon VPC 使用者指南](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-getting-started.html)中 *Amazon VPC 入門*的相關文章。

您可以使用 VPC 流量日誌，監控所有傳出傳入處理容器的網路流量。如需詳細資訊，請參閱 *Amazon VPC 使用者指南*中的 [VPC 流量日誌](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/flow-logs.html)。

本文件說明如何為處理任務新增 Amazon VPC 組態。

## 設定處理任務以存取 Amazon VPC
<a name="process-vpc-configure"></a>

您可以在 VPC 內指定子網路和安全群組 ID 來設定處理任務。您不需要為處理容器指定子網路。Amazon SageMaker AI 會自動從 Amazon ECR 提取處理容器。如需此處理容器的更多相關資訊，請參閱[使用 SageMaker Processing 的資料轉換工作負載](processing-job.md)。

建立處理任務時，您可以使用 SageMaker AI 主控台或 API，在您的 VPC 中指定子網路和安全群組。

若要使用 API，請在 [CreateProcessingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html) 作業的 `NetworkConfig.VpcConfig` 參數中指定子網路和安全群組 ID。SageMaker AI 會使用子網路和安全群組詳細資料來建立網路介面，並將其連接至處理容器。網路介面在您的 VPC 內提供具有網路連線的處理容器。這可讓處理任務連線至您的 VPC 中存在的資源。

以下為您包含在對 `CreateProcessingJob` 作業的呼叫內的 `VpcConfig` 參數的範例：

```
VpcConfig: {
    "Subnets": [
        "subnet-0123456789abcdef0",
        "subnet-0123456789abcdef1",
        "subnet-0123456789abcdef2"
    ],    
    "SecurityGroupIds": [
        "sg-0123456789abcdef0"
    ]
}
```

## 為 SageMaker AI Processing 設定您的私有 VPC
<a name="process-vpc-vpc"></a>

在為您的 SageMaker AI 處理任務設定私有 VPC 時，請使用以下指導方針。如需如何設定 VPC 的相關資訊，請參閱 *Amazon VPC 使用者指南*中的[使用 VPC 和子網路](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/working-with-vpcs.html)的相關文章。

**Topics**
+ [確保子網路擁有充足的 IP 地址](#process-vpc-ip)
+ [建立 Amazon S3 VPC 端點](#process-vpc-s3)
+ [使用自訂端點政策來限制存取 S3](#process-vpc-policy)
+ [設定路由表](#process-vpc-route-table)
+ [設定 VPC 安全群組](#process-vpc-groups)
+ [連線至您的 VPC 外部的資源](#process-vpc-nat)
+ [使用 CloudWatch Logs 和指標監控 Amazon SageMaker Processing 任務](#process-vpc-cloudwatch)

### 確保子網路擁有充足的 IP 地址
<a name="process-vpc-ip"></a>

您的 VPC 子網路應至少具有兩個私有 IP 地址，以供處理任務中的各個執行個體使用。如需詳細資訊，請參閱 *Amazon VPC 使用者指南*中的[IPv4 的 VPC 與子網路的大小調整](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html#vpc-sizing-ipv4)的相關文章。

### 建立 Amazon S3 VPC 端點
<a name="process-vpc-s3"></a>

如果您將您的 VPC 設定為讓處理容器無法存取網際網路，除非您建立的 VPC 端點允許存取，否則也會無法連線至包含資料的 Amazon S3 儲存貯體。建立 VPC 端點可讓您的處理容器存取您存放資料的儲存貯體。建議也建立一個自訂政策，只允許來自您私有 VPC 的請求存取您的 S3 儲存貯體。如需詳細資訊，請參閱 [Amazon S3 的端點](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints-s3.html)。

**建立 S3 VPC 端點：**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在導覽窗格中，選擇**端點**，然後選擇**建立端點**

1. 對於**服務名稱)**，選擇 **com.amazonaws.*region*.s3**，其中 *region* 是您的 VPC 所在區域的名稱。

1. 對於 **VPC**，選擇您要用於此端點的 VPC。

1. 針對**設定路由表**，選取要供端點使用的路由表。每個 VPC 服務會自動將路由新增到您選擇的路由表，以便將任何 S3 流量導向新的端點。

1. 對於**政策**，選擇**完整存取**，以允許 VPC 內的任何使用者或服務完整存取 S3 服務。選擇**自訂**，以進一步限制存取權。如需相關資訊，請參閱[使用自訂端點政策來限制存取 S3](#process-vpc-policy)。

### 使用自訂端點政策來限制存取 S3
<a name="process-vpc-policy"></a>

預設端點政策可讓您的 VPC 中的任何使用者或服務完整存取 S3。若要進一步限制存取 S3，請建立自訂端點政策。如需詳細資訊，請參[ Amazon S3 使用端點政策](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html#vpc-endpoints-policies-s3)。您也可以使用儲存貯體政策，以限制只有來自 Amazon VPC 流量才能存取您的 S3 儲存貯體。如需資訊，請參閱[使用 Amazon S3 儲存貯體政策](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html#vpc-endpoints-s3-bucket-policies)。

#### 限制在處理容器上安裝套件
<a name="process-vpc-policy-repos"></a>

預設端點政策允許使用者在處理容器上安裝來自 Amazon Linux 和 Amazon Linux 2 儲存庫的套件。如果不希望使用者從該儲存庫安裝套件，請建立自訂端點政策，明確拒絕至 Amazon Linux 和 Amazon Linux 2 儲存庫的存取。以下為拒絕存取上述儲存庫的政策範例：

```
{ 
    "Statement": [ 
      { 
        "Sid": "AmazonLinuxAMIRepositoryAccess",
        "Principal": "*",
        "Action": [ 
            "s3:GetObject" 
        ],
        "Effect": "Deny",
        "Resource": [
            "arn:aws:s3:::packages.*.amazonaws.com/*",
            "arn:aws:s3:::repo.*.amazonaws.com/*"
        ] 
      } 
    ] 
} 

{ 
    "Statement": [ 
        { "Sid": "AmazonLinux2AMIRepositoryAccess",
          "Principal": "*",
          "Action": [ 
              "s3:GetObject" 
              ],
          "Effect": "Deny",
          "Resource": [
              "arn:aws:s3:::amazonlinux.*.amazonaws.com/*" 
              ] 
         } 
    ] 
}
```

### 設定路由表
<a name="process-vpc-route-table"></a>

請為端點路由表使用預設的 DNS 設定，如此才能解析標準 Amazon S3 URL (例如 `http://s3-aws-region.amazonaws.com/amzn-s3-demo-bucket`)。若未使用預設的 DNS 設定，請將端點路由表設定妥當，確保您用來指定處理任務的資料所在位置的 URL 可解析。如需 VPC 端點路由表的相關資訊，請參閱 *Amazon VPC 使用者指南*中的[閘道端點路由](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpce-gateway.html#vpc-endpoints-routing)的相關文章。

### 設定 VPC 安全群組
<a name="process-vpc-groups"></a>

在分散式處理中，必須允許同一處理任務內不同容器之間的通訊。若要執行此操作，請為安全群組設定規則，允許相同安全群組成員彼此間的傳入連線。如需詳細資訊，請參閱[安全群組規則](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html#SecurityGroupRules)。

### 連線至您的 VPC 外部的資源
<a name="process-vpc-nat"></a>

如果您要將模型連接到模型執行的 VPC 以外的資源，請執行下列其中一個動作：
+ **連線至其他 AWS 服務** – 如果您的模型需要存取支援界面 Amazon VPC 端點 AWS 的服務，請建立端點以連線至該服務。如需支援介面端點的服務清單，請參閱 AWS PrivateLink 《 使用者指南》中的[AWS 與 整合的 服務 AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/aws-services-privatelink-support.html)。如需有關建立介面 VPC 端點的資訊，請參閱 AWS PrivateLink 《 使用者指南》中的[使用介面 VPC 端點存取 AWS 服務](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)。
+ **透過網際網路連線到資源** - 如果您的模型在沒有可存取網際網路的 Amazon VPC 中的執行個體子網路上執行，則模型將無法存取網際網路上的資源。如果您的模型需要存取不支援介面 VPC 端點的 AWS 服務，或存取 外部的資源 AWS，請確定您在可使用公有子網路中公有 NAT 閘道存取網際網路的私有子網路中執行模型。在私有子網路中執行模型之後，請設定您的安全群組和網路存取控制清單 (NACL)，以允許從私有子網路到公用子網路中公用 NAT 閘道的輸出連線。如需詳細資訊，請參閱 Amazon VPC 使用者指南中的 [NAT 閘道](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html )。

### 使用 CloudWatch Logs 和指標監控 Amazon SageMaker Processing 任務
<a name="process-vpc-cloudwatch"></a>

Amazon SageMaker AI 提供 Amazon CloudWatch 日誌和指標，以監控訓練任務。CloudWatch 提供 CPU、GPU、記憶體、GPU 記憶體和磁碟指標，以及事件記錄。如需監控 Amazon SageMaker 執行任務的更多相關資訊，請參閱[Amazon CloudWatch 中的 Amazon SageMaker AI 指標](monitoring-cloudwatch.md)和[SageMaker AI 任務指標](monitoring-cloudwatch.md#cloudwatch-metrics-jobs)。