View a markdown version of this page

MLflow アプリの IAM アクセス許可を設定する - Amazon SageMaker AI

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

MLflow アプリの IAM アクセス許可を設定する

Amazon SageMaker AI で MLflow Apps の使用を開始するには、必要な IAM サービスロールを設定する必要があります。

Studio で実験にアクセスするための新しい Amazon SageMaker AI ドメインを作成する場合は、ドメインの設定中に必要な IAM アクセス許可を設定できます。詳細については、「新しいドメインの作成時に MLflow IAM アクセス許可を設定する」を参照してください。

IAM コンソールを使用してアクセス許可を設定するには、「IAM コンソールで必要な IAM サービスロールを作成する」を参照してください。

sagemaker-mlflow アクションに対する認証コントロールを設定する必要があります。必要に応じて、さらに詳細な認証コントロールを定義して、アクションごとの MLflow アクセス許可を制御できます。詳細については、「アクションごとの認証コントロールを作成する」を参照してください。

新しいドメインの作成時に MLflow IAM アクセス許可を設定する

組織の新しい Amazon SageMaker AI ドメインを設定するときは、[ユーザーと ML アクティビティ] 設定を通じて、ドメインサービスロールの IAM アクセス許可を設定できます。

  1. SageMaker AI コンソールを使用して新しいドメインを設定します。[SageMaker AI Domain をセットアップ] ページで、[組織向けの設定] を選択します。詳細については、「コンソールを使用したカスタムセットアップ」を参照してください。

  2. ユーザーと ML アクティビティを設定するときは、MLflow の次の ML アクティビティから選択します。MLflow の使用MLflow アプリの管理MLflow AWS のサービスに必要なアクセス。これらのアクティビティの詳細については、この手順の後の説明を参照してください。

  3. 新しいドメインの設定と作成を完了します。

Amazon SageMaker Role Manager では、次の MLflow ML アクティビティを使用できます。

  • MLflow を使用: この ML アクティビティは、MLflow で実験、実行、モデルを管理するために、MLflow REST API を呼び出すアクセス許可をドメインサービスロールに付与します。

  • MLflow アプリの管理: この ML アクティビティは、MLflow アプリを作成、更新、削除するアクセス許可をドメインサービスロールに付与します。

  • MLflow Apps AWS のサービス に必要なアクセス: この ML アクティビティは、Amazon S3 と SageMaker AI Model Registry にアクセスするために必要なドメインサービスロールのアクセス許可を提供します。これにより、ドメインサービスロールを追跡サーバーサービスロールとして使用できるようになります。

Role Manager の ML アクティビティの詳細については、「ML アクティビティリファレンス」を参照してください。

IAM コンソールで必要な IAM サービスロールを作成する

ドメインサービスロールを作成または更新しなかった場合は、MLflow アプリを作成して使用するには、代わりに IAM コンソールで次のサービスロールを作成する必要があります。

  • アプリが SageMaker AI リソースにアクセスするために使用できる MLflow アプリ IAM サービスロール

  • SageMaker AI が MLflow リソースの作成と管理に使用できる、SageMaker AI の IAM サービスロール

MLflow App IAM サービスロールの IAM ポリシー

MLflow アプリの IAM サービスロールは、Amazon S3 や SageMaker Model Registry など、必要なリソースにアクセスするためにアプリによって使用されます。

アプリの IAM サービスロールを作成するときは、次の IAM 信頼ポリシーを使用します。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

IAM コンソールで、アプリサービスロールに次のアクセス許可ポリシーを追加します。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:Put*", "s3:List*", "sagemaker:AddTags", "sagemaker:CreateModelPackageGroup", "sagemaker:CreateModelPackage", "sagemaker:UpdateModelPackage", "sagemaker:DescribeModelPackageGroup" ], "Resource": "*" } ] }

SageMaker AI の IAM サービスロールの IAM ポリシー

SageMaker AI サービスロールは、MLflow アプリにアクセスするクライアントによって使用され、MLflow REST APIs を呼び出すためのアクセス許可が必要です。SageMaker AI サービスロールには、アプリケーションを作成、更新、削除するための SageMaker API アクセス許可も必要です。

新しいロールを作成するか、既存のロールを更新できます。SageMaker AI サービスロールには、次のポリシーが必要です。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker-mlflow:*", "sagemaker:CreateMlflowTrackingServer", "sagemaker:ListMlflowTrackingServers", "sagemaker:UpdateMlflowTrackingServer", "sagemaker:DeleteMlflowTrackingServer", "sagemaker:StartMlflowTrackingServer", "sagemaker:StopMlflowTrackingServer", "sagemaker:CreatePresignedMlflowTrackingServerUrl" ], "Resource": "*" } ] }

アクションごとの認証コントロールを作成する

の認可コントロールを設定する必要があります。またsagemaker-mlflow、オプションでアクション固有の認可コントロールを設定して、ユーザーが MLflow アプリに対して持つより詳細な MLflow アクセス許可を管理できます。

注記

次の手順では、MLflow アプリの ARN が既に利用可能であることを前提としています。

MLflow アプリでサポートされているデータプレーン IAM アクション

認証アクセスコントロールでは、次の SageMaker AI MLflow アクションがサポートされています。

  • sagemaker:CallMlflowAppApi

Model Registry の同期とライフサイクル管理のための IAM アクセス許可

MLflow モデルを SageMaker AI Model Registry に登録する場合、MLflow App IAM サービスロールには、モデル登録、ライフサイクル管理、系統追跡を実行するための次のアクセス許可が必要です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateModelPackageGroup", "sagemaker:DescribeModelPackageGroup", "sagemaker:CreateModelPackage", "sagemaker:UpdateModelPackage", "sagemaker:AddTags" ], "Resource": "*" }, { "Sid": "S3ArtifactAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": "*" }, { "Sid": "LineageTracking", "Effect": "Allow", "Action": [ "sagemaker:CreateAction", "sagemaker:AddAssociation" ], "Resource": "*" } ] }

次の表は、各アクセス許可が何を有効にするかを示しています。

アクション 目的
sagemaker:CreateModelPackageGroup 新しいモデル名を登録するときにモデルパッケージグループを作成します。
sagemaker:DescribeModelPackageGroup モデルパッケージグループを作成する前に、モデルパッケージグループが既に存在するかどうかを確認します。
sagemaker:CreateModelPackage モデルバージョンを登録するときにモデルパッケージ (バージョン) を作成します。
sagemaker:UpdateModelPackage ライフサイクルエイリアスを設定するときに、モデルパッケージのライフサイクルステージとステータスを更新します。
sagemaker:AddTags MLflow モデルにリンクされたメタデータを使用してモデルパッケージにタグを付けます。
s3:GetObject 登録中に Amazon S3 から推論仕様と評価アーティファクトを読み取ります。
sagemaker:CreateAction, sagemaker:AddAssociation MLflow モデルと SageMaker AI モデルパッケージの間に系統の関連付けを作成します。欠落している場合、系統はサイレントにスキップされます。

IAM 条件キーによるライフサイクル移行の制限

IAM 条件キーを使用して、ロールが実行できるライフサイクル移行を制御できます。sagemaker:UpdateModelPackage アクションでは、次の条件キーを使用できます。

  • sagemaker:ModelLifeCycle/stage — 設定中のライフサイクルステージ。値: stagingproduction

  • sagemaker:ModelLifeCycle/stageStatus — 設定中のライフサイクルステータス。値: pendingactive

例: 本番稼働用プロモーションを拒否する

次のポリシーは、ロールがモデルをproductionステージに昇格できないようにします。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "sagemaker:UpdateModelPackage", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ModelLifeCycle/stage": "production" } } } ] }

例: ステージング/保留中の移行のみを許可する

次のポリシーは、モデルを pendingステータスのstagingステージにのみ設定するようにロールを制限します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:UpdateModelPackage", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ModelLifeCycle/stage": "staging", "sagemaker:ModelLifeCycle/stageStatus": "pending" } } } ] }