SageMaker コンパイルジョブに Amazon VPC 内のリソースへのアクセスを許可する - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SageMaker コンパイルジョブに Amazon VPC 内のリソースへのアクセスを許可する

注記

コンパイルジョブの場合は、デフォルトのテナンシー VPC でのみサブネットを設定できます。このデフォルトでは、ジョブが共有ハードウェアで実行されます。VPC のテナンシー属性の詳細については、「ハードウェア専有インスタンス」を参照してください。

Amazon VPC アクセス用にコンパイルジョブを設定する

プライベート VPC でサブネットとセキュリティグループを指定するには、 CreateCompilationJob API の VpcConfig リクエストパラメータを使用するか、 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 アドレスが少なくとも 2 つ必要です。詳細については、Amazon VPC ユーザーガイドIPv4 用の VPC とサブネットのサイズ設定を参照してください。

Amazon S3 VPC エンドポイントを作成する

インターネットへのアクセスをブロックするように VPC を設定した場合、アクセスを許可する VPC エンドポイントを作成しない限り、 SageMaker Neo はモデルを含む Amazon S3 バケットに接続できません。VPC エンドポイントを作成することで、 SageMaker Neo コンパイルジョブが、データとモデルアーティファクトを保存するバケットにアクセスできるようになります。プライベート VPC からのリクエストのみに S3 バケットへのアクセスを許可するカスタムポリシーも作成することをお勧めします。詳細については、Amazon S3 のエンドポイントを参照してください。

S3 VPC エンドポイントを作成するには
  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで [エンドポイント] を選択し、[エンドポイントの作成] を選択します。

  3. [Service Name] (サービス名) で、com.amazonaws.region.s3 を検索します。この場合、region は VPC が存在するリージョンの名前になります。

  4. [Gateway] (ゲートウェイ) タイプを選択します。

  5. [VPC]] で、エンドポイントに使用する VPC を選択します。

  6. [Configure route tables] で、エンドポイントで使用するルートテーブルを選択します。VPC サービスで、選択した各ルートテーブルに、S3 トラフィックを新しいエンドポイントに向けるルートが自動的に追加されます。

  7. [ポリシー] で、[フルアクセス] を選択して、VPC 内の任意のユーザーまたはサービスによる S3 サービスへのフルアクセスを許可します。アクセスを詳細に制限するには、[カスタム] を選択します。詳細については、「カスタムエンドポイントポリシーを使用して S3 へのアクセスを制限する」を参照してください。

カスタムエンドポイントポリシーを使用して S3 へのアクセスを制限する

デフォルトのエンドポイントポリシーでは、VPC のすべてのユーザーまたはサービスに対して S3 へのフルアクセスが許可されています。S3 へのアクセスを詳細に制限するには、カスタムエンドポイントポリシーを作成します。詳細については、「Amazon S3 のエンドポイントポリシー」を参照してください。バケットポリシーを使って、S3 バケットへのアクセスを Amazon VPC からのトラフィックのみに制限することもできます。詳細については、「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 範囲へのアウトバウンド通信を許可する必要があります。詳細については、「セキュリティグループのルール」と「VPC エンドポイントでサービスへのアクセスを制御する」を参照してください。