允許批次轉換任務存取 Amazon VPC 中的資源 - Amazon SageMaker AI

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

允許批次轉換任務存取 Amazon VPC 中的資源

為了控制對您的資料和批次轉換任務的存取,建議您建立一個私有 Amazon VPC,並設定為任務無法經由公用網際網路存取。在建立模型時,可指定子網路和安全群組,便能設定您的私有 VPC 組態。然後,當您建立批次轉換任務時,請指定相同的模型。當您指定子網路和安全群組時,SageMaker AI 會在其中一個子網路中建立與安全群組相關聯的彈性網路介面。網路介面可讓您的模型容器連線至您的 VPC 內的資源。如需有關網路介面的資訊,請參閱 Amazon VPC 使用者指南中的彈性網路介面的相關文章。

本文件說明如何為批次轉換任務新增 Amazon VPC 組態。

設定批次轉換任務以存取 Amazon VPC

若要在私有 VPC 中指定子網路和安全群組,請使用 CreateModel API 的VpcConfig請求參數,或在 SageMaker AI 主控台中建立模型時提供此資訊。然後,當您在 SageMaker AI 主控台中建立轉換任務時,在 CreateTransformJob API 的ModelName請求參數或模型名稱欄位中指定相同的模型。SageMaker AI 使用此資訊來建立網路介面,並將其連接到模型容器。網路介面會為模型容器提供您的 VPC 內的網路連線,而不會連線至網際網路。也可以讓您的轉換任務連線至私有 VPC 內的資源。

以下為您包含在對 VpcConfig 的呼叫內的 CreateModel 參數的範例:

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

如果您是使用 CreateModel API 作業建立模型,則用來建立模型的 IAM 執行角色必須包含CreateModel API:執行角色許可中所述的許可,包括私有 VPC 所需的下列許可。

在主控台中建立模型時,如果您在模型設定區段中選取建立新角色,則用於建立角色的 AmazonSageMakerFullAccess 政策已包含這些許可限。如果您選取輸入自訂 IAM 角色 ARN使用現有的角色,則您指定的角色 ARN 必須具有附加下列許可的執行政策。

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups"

設定 SageMaker AI 批次轉換的私有 VPC

為 SageMaker AI 批次轉換任務設定私有 VPC 時,請使用下列準則。如需如何設定 VPC 的相關資訊,請參閱 Amazon VPC 使用者指南中的使用 VPC 和子網路的相關文章。

確保子網路擁有充足的 IP 地址

您的 VPC 子網路應至少擁有兩個可用的私有 IP 地址,以供轉換任務中的各個執行個體使用。如需詳細資訊,請參閱 Amazon VPC 使用者指南中的 IPv4 的 VPC 與子網路的大小調整的相關文章。

建立 Amazon S3 VPC 端點

如果您將您的 VPC 設定為讓模型容器無法存取網際網路,除非您建立的 VPC 端點允許存取,否則也會無法連線至包含資料的 Amazon S3 儲存貯體。建立 VPC 端點可讓模型容器存取您存放資料和模型成品的儲存貯體。建議也建立一個自訂政策,只允許來自您私有 VPC 的請求存取您的 S3 儲存貯體。如需詳細資訊,請參閱 Amazon S3 的端點

建立 S3 VPC 端點:
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇端點,然後選擇建立端點

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

  4. 對於 VPC,選擇您要用於此端點的 VPC。

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

  6. 對於政策,選擇完整存取,以允許 VPC 內的任何使用者或服務完整存取 S3 服務。選擇自訂,以進一步限制存取權。如需相關資訊,請參閱 使用自訂端點政策來限制存取 S3

使用自訂端點政策來限制存取 S3

預設端點政策可讓您的 VPC 中的任何使用者或服務完整存取 S3。若要進一步限制存取 S3,請建立自訂端點政策。如需詳細資訊,請參 Amazon S3 使用端點政策。您也可以使用儲存貯體政策,以限制只有來自 Amazon VPC 流量才能存取您的 S3 儲存貯體。如需資訊,請參閱使用 Amazon S3 儲存貯體政策

限制在模型容器上安裝套件

預設端點政策允許使用者在訓練容器上安裝來自 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/*" ] } ] }

設定路由表

請為端點路由表使用預設的 DNS 設定,如此才能解析標準 Amazon S3 URL (例如 http://s3-aws-region.amazonaws.com/amzn-s3-demo-bucket)。如果您未使用預設的 DNS 設定,請將端點路由表設定妥當,確保您用來指定批次轉換任務之資料所在位置的 URL 可解析。如需 VPC 端點路由表的相關資訊,請參閱 Amazon VPC 使用者指南中的閘道端點路由的相關文章。

設定 VPC 安全群組

在分散式批次轉換中,必須允許同一批次轉換任務內不同容器之間的通訊。若要執行此操作,請為安全群組設定規則,允許相同安全群組成員彼此間的傳入與傳出連線。相同安全群組的成員應該能夠在所有連接埠之間彼此通訊。如需詳細資訊,請參閱安全群組規則

連線至您的 VPC 外部的資源

如果您將您的 VPC 設為無網際網路存取權限,使用該 VPC 的批次轉換任務即無法存取您的 VPC 外部資源。如果您的批次轉換任務需要存取您的 VPC 外部的資源,請透過下列選項之一提供存取權限:

  • 如果您的批次轉換任務需要存取支援介面 VPC 端點 AWS 的服務,請建立端點以連線至該服務。如需支援介面端點的服務之清單,請參閱 Amazon VPC 使用者指南中的 VPC 端點的相關文章。如需有關建立介面 VPC 端點的資訊,請參閱《Amazon VPC 使用者指南》中的介面 VPC 端點 (AWS PrivateLink)

  • 如果您的批次轉換任務需要存取不支援介面 VPC 端點 AWS 的服務,或存取 外部的資源 AWS,請建立 NAT 閘道,並設定安全群組以允許傳出連線。如需替您的 VPC 設定 NAT 閘道的相關資訊,請參閱 Amazon Virtual Private Cloud 使用者指南中的案例 2:VPC 搭配公有與私有子網路 (NAT) 的相關文章。