讓 SageMaker 編譯任務存取 Amazon VPC 中的資源 - Amazon SageMaker

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

讓 SageMaker 編譯任務存取 Amazon VPC 中的資源

注意

對於編譯任務,您只能使用任務在共用硬體執行所在的預設租用 VPC 來設定子網路。如需 VPC 租用屬性的詳細資訊,請參閱專用執行個體

設定編譯任務以存取 Amazon VPC

若要在私人 VPC 中指定子網路和安全群組,請使用 CreateCompilationJobAPI 的 VpcConfig request 參數,或在主控台中建立編譯工作時提供此資訊。 SageMaker SageMaker Neo 使用此信息創建網絡接口並將其附加到您的編譯作業。網路介面會為編譯任務提供您的 VPC 內的網路連線,而不會連線至網際網路。也可以讓您的編譯任務連線至私有 VPC 內的資源。以下為您包含在對 VpcConfig 的呼叫內的 CreateCompilationJob 參數的範例:

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

設定您的私人 VPC 以進行編譯 SageMaker

為 SageMaker 編譯工作配置私人 VPC 時,請遵循下列準則。如需如何設定 VPC 的相關資訊,請參閱 Amazon VPC 使用者指南中的使用 VPC 和子網路的相關文章。

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

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

建立 Amazon S3 VPC 端點

如果您將 VPC 設定為封鎖對網際網路的存取,除非您建立允許存取的 VPC 端點,否則 SageMaker Neo 無法連線到包含您模型的 Amazon S3 儲存貯體。透過建立 VPC 端點,您可以允許 SageMaker Neo 編譯任務存取儲存資料和模型成品的值區。建議也建立一個自訂政策,只允許來自您私有 VPC 的請求存取您的 S3 儲存貯體。如需詳細資訊,請參閱 Amazon S3 的端點

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

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

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

  4. 選擇閘道類型。

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

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

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

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

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

{ "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-01234567890123456" ] } } } ] }

針對在 Amazon VPC 中執行之編譯任務新增許可,來自定 IAM 政策

SageMakerFullAccess 受管政策包含使用模型所需要的許可,這些模型是針對 Amazon VPC 存取及端點所設定。這些許可允許 SageMaker Neo 建立 elastic network interface,並將其附加到 Amazon VPC 中執行的編譯任務。如果您使用自己的 IAM 政策,您必須將以下許可新增至該政策,才能使用針對 Amazon 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", "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": "*" } ] }

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

設定路由表

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

設定 VPC 安全群組

在編譯任務的安全群組中,您必須允許對 Amazon S3 Amazon VPC 端點的輸出通訊,以及用於編譯任務的子網路 CIDR 範圍。有關資訊,請參閱安全組規則使用 Amazon VPC 終端節點控制服務存取