翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 アクセス許可を設定できます。
-
SageMaker AI コンソールを使用して新しいドメインを設定します。[SageMaker AI Domain をセットアップ] ページで、[組織向けの設定] を選択します。詳細については、「コンソールを使用したカスタムセットアップ」を参照してください。
-
ユーザーと ML アクティビティを設定するときは、MLflow の次の ML アクティビティから選択します。MLflow の使用、MLflow アプリの管理、MLflow AWS のサービスに必要なアクセス。これらのアクティビティの詳細については、この手順の後の説明を参照してください。
-
新しいドメインの設定と作成を完了します。
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 信頼ポリシーを使用します。
IAM コンソールで、アプリサービスロールに次のアクセス許可ポリシーを追加します。
SageMaker AI の IAM サービスロールの IAM ポリシー
SageMaker AI サービスロールは、MLflow アプリにアクセスするクライアントによって使用され、MLflow REST APIs を呼び出すためのアクセス許可が必要です。SageMaker AI サービスロールには、アプリケーションを作成、更新、削除するための SageMaker API アクセス許可も必要です。
新しいロールを作成するか、既存のロールを更新できます。SageMaker AI サービスロールには、次のポリシーが必要です。
アクションごとの認証コントロールを作成する
の認可コントロールを設定する必要があります。また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— 設定中のライフサイクルステージ。値:staging、production。sagemaker:ModelLifeCycle/stageStatus— 設定中のライフサイクルステータス。値:pending、active。
例: 本番稼働用プロモーションを拒否する
次のポリシーは、ロールがモデルを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" } } } ] }