トレーニングに認証が必要な Docker レジストリの使用 - Amazon SageMaker

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

トレーニングに認証が必要な Docker レジストリの使用

Docker レジストリに認証が必要な場合は、 にアクセス認証情報を提供する 関数を作成 AWS Lambda する必要があります SageMaker。次に、トレーニングジョブを作成し、create_training_job API 内でこの Lambda 関数の ARN を指定します。最後に、VPC がインターネット経由でトラフィックを送信せずに Lambda 関数と通信できるように、オプションでインターフェイス VPC エンドポイントを作成できます。次のガイドでは、Lambda 関数を作成し、正しいロールを割り当て、インターフェイス VPC エンドポイントを作成する方法を示しています。

Lambda 関数を作成する

アクセス認証情報を に渡し、レスポンスを返す SageMaker AWS Lambda 関数を作成します。次のコード例では、次のように Lambda 関数ハンドラーを作成します。

def handler(event, context): response = { "Credentials": {"Username": "username", "Password": "password"} } return response

プライベート Docker レジストリの設定に使用される認証の種類によって、Lambda 関数から返されるレスポンスの内容が次のように決まります。

  • プライベート Docker レジストリが基本認証を使用する場合は、Lambda 関数はレジストリの認証に必要なユーザー名とパスワードを返します。

  • プライベート Docker レジストリがベアラートークン認証を使用する場合は、ユーザー名とパスワードが認証サーバーに送信され、認証サーバーは、ベアラートークンが返します。その後、このトークンはプライベート Docker レジストリの認証に使用されます。

注記

同じアカウントのレジストリに複数の Lambda 関数があり、トレーニングジョブの実行ロールが同じ場合、レジストリ 1 のトレーニングジョブは他のレジストリの Lambda 関数にアクセスできます。

Lambda 関数への適切なロールのアクセス許可の付与

create_training_job API で使用する IAMroleには、 AWS Lambda 関数を呼び出すアクセス許可が必要です。次のコード例は、IAM ロールのアクセス許可ポリシーを拡張して、myLambdaFunction を呼び出す方法を示しています。

{ "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:*:function:*myLambdaFunction*" ] }

ロールのアクセス許可ポリシーの編集の詳細については、「AWS Identity and Access Management ユーザーガイド」の「ロールのアクセス許可ポリシーの変更 (コンソール)」を参照してください。

注記

AmazonSageMakerFullAccess マネージドポリシーがアタッチされた IAM ロールには、名前SageMakerに「」が含まれる Lambda 関数を呼び出すアクセス許可があります。

Lambda のインターフェイス VPC エンドポイントを作成する

インターフェイスエンドポイントを作成すると、Amazon VPC がインターネット経由でトラフィックを送信せずに Lambda 関数と通信できます。詳細については、AWS Lambda デベロッパーガイドの「Lambda のインターフェイス VPC エンドポイントの設定」を参照してください。

インターフェイスエンドポイントが作成されると、 SageMaker トレーニングは VPC 経由で にリクエストを送信して Lambda 関数を呼び出しますlambda.region.amazonaws.com。インターフェイスエンドポイントの作成時に DNS 名の有効化を選択した場合、Amazon Route 53 は呼び出しを Lambda インターフェイスエンドポイントにルーティングします。別の DNS プロバイダーを使用する場合は、lambda.region.amazonaws.com を Lambda インターフェイスエンドポイントにマッピングする必要があります。