讓 SageMaker AI 託管端點存取 Amazon VPC 中的資源 - Amazon SageMaker AI

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

讓 SageMaker AI 託管端點存取 Amazon VPC 中的資源

設定適用於 Amazon VPC 存取的模型

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

注意

您必須在私有 VPC 內建立兩個位於不同可用區域的子網路,即使只擁有一個託管執行個體也必須如此做。

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

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

設定 SageMaker AI 託管的私有 VPC

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

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

不使用 Elastic Fabric Adapter (EFA) 的訓練執行個體至少應具有 2 個私有 IP 地址。使用 EFA 的訓練執行個體至少應具有 5 個私有 IP 地址。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的多個 IP 地址

建立 Amazon S3 VPC 端點

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

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

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

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

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

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

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

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

預設端點政策可讓您的 VPC 中的任何使用者或服務完整存取 Amazon Simple Storage Service (Amazon S3)。若要進一步限制存取 Amazon 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/*" ] } ] }

將 VPC 中執行容器的端點存取許可新增至自訂的 IAM 政策

SageMakerFullAccess 受管政策包含使用模型所需要的許可,這些模型是針對 Amazon VPC 存取及端點所設定。這些許可允許 SageMaker AI 建立彈性網路介面,並將其連接到在 VPC 中執行的模型容器。如果您使用自己的 IAM 政策,您必須將以下許可新增至該政策,才能使用針對 VPC 存取設定的模型。

{ "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" ], "Resource": "*" } ] }

如需 SageMakerFullAccess 受管政策的更多相關資訊,請參閱AWS 受管政策:AmazonSageMakerFullAccess

設定路由表

請為端點路由表使用預設的 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 端點 AWS 的服務,請建立端點以連線至該服務。如需支援介面端點的服務之清單,請參閱 Amazon VPC 使用者指南中的 VPC 端點的相關文章。如需有關建立介面 VPC 端點的資訊,請參閱《Amazon VPC 使用者指南》中的介面 VPC 端點 (AWS PrivateLink)

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