

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

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

**注意**  
對於編譯任務，您只能使用任務在共用硬體執行所在的預設租用 VPC 來設定子網路。如需 VPC 租用屬性的詳細資訊，請參閱[專用執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html)。

## 設定編譯任務以存取 Amazon VPC
<a name="neo-vpc-configure"></a>

若要在私有 VPC 內指定子網路和安全群組，請使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCompilationJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCompilationJob.html) API 的 `VpcConfig` 請求參數，或在 SageMaker AI 主控台建立編譯任務時提供此資訊。SageMaker AI Neo 會使用此資訊來建立網路介面，並將其連接至您的編譯任務。網路介面會為編譯任務提供您的 VPC 內的網路連線，而不會連線至網際網路。也可以讓您的編譯任務連線至私有 VPC 內的資源。以下為您包含在對 `VpcConfig` 的呼叫內的 `CreateCompilationJob` 參數的範例：

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

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

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

**Topics**
+ [確保子網路擁有充足的 IP 地址](#neo-vpc-ip)
+ [建立 Amazon S3 VPC 端點](#neo-vpc-s3)
+ [使用自訂端點政策來限制存取 S3](#neo-vpc-policy)
+ [設定路由表](#neo-vpc-route-table)
+ [設定 VPC 安全群組](#neo-vpc-groups)

### 確保子網路擁有充足的 IP 地址
<a name="neo-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="neo-vpc-s3"></a>

如果您將您的 VPC 設定為封鎖模型容器存取網際網路，則除非您建立的 VPC 端點允許存取，否則 SageMaker Neo 會無法連線至包含模型的 Amazon S3 儲存貯體。建立 VPC 端點可讓 SageMaker Neo 編譯任務存取您存放資料和模型成品的儲存貯體。建議也建立一個自訂政策，只允許來自您私有 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. 選擇**閘道**類型。

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

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

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

### 使用自訂端點政策來限制存取 S3
<a name="neo-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)。以下是自訂政策範例：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": [
                "{{arn:aws:s3:::your-sample-bucket}}",
                "{{arn:aws:s3:::your-sample-bucket/*}}"
            ],
            "Condition": {
                "StringNotEquals": {
                    "aws:SourceVpce": [
                        "vpce-1a2b3c4d"
                    ]
                }
            }
        }
    ]
}
```

------

#### 針對在 Amazon VPC 中執行之編譯任務新增許可，來自定 IAM 政策
<a name="neo-vpc-custom-iam"></a>

`SageMakerFullAccess` 受管政策包含使用模型所需要的許可，這些模型是針對 Amazon VPC 存取及端點所設定。這些許可允許 SageMaker Neo 建立彈性網路介面，並將它附加到在 Amazon VPC 中執行的編譯任務。如果您使用自己的 IAM 政策，您必須將以下許可新增至該政策，才能使用針對 Amazon VPC 存取設定的模型。

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

****  

```
{"Version":"2012-10-17",		 	 	 
    "Statement": [
        {"Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcEndpoints",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeVpcs",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DeleteNetworkInterfacePermission",
                "ec2:DeleteNetworkInterface",
                "ec2:CreateNetworkInterfacePermission",
                "ec2:CreateNetworkInterface",
                "ec2:ModifyNetworkInterfaceAttribute"
            ],
            "Resource": "*"
        }
    ]
}
```

------

如需 `SageMakerFullAccess` 受管政策的更多相關資訊，請參閱[AWS 受管政策：AmazonSageMakerFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSageMakerFullAccess)。

### 設定路由表
<a name="neo-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="neo-vpc-groups"></a>

在編譯任務的安全群組中，您必須允許對 Amazon S3 Amazon VPC 端點的輸出通訊，以及用於編譯任務的子網路 CIDR 範圍。有關資訊，請參閱[安全組規則](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html#SecurityGroupRules)和[使用 Amazon VPC 終端節點控制服務存取](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints-access.html)。