翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
MLflow の IAM アクセス許可を設定する
まず、Amazon SageMaker AI で MLflow を使用するために必要な IAM サービスロールを設定する必要があります。
Studio で実験にアクセスするための新しい Amazon SageMaker AI ドメインを作成する場合は、ドメインの設定中に必要な IAM アクセス許可を設定できます。詳細については、「新しいドメインの作成時に MLflow IAM アクセス許可を設定する」を参照してください。
IAM コンソールを使用してアクセス許可を設定するには、「IAM コンソールで必要な IAM サービスロールを作成する」を参照してください。
sagemaker-mlflow アクションに対する認証コントロールを設定する必要があります。必要に応じて、さらに詳細な認証コントロールを定義して、アクションごとの MLflow アクセス許可を制御できます。詳細については、「アクションごとの認証コントロールを作成する」を参照してください。
新しいドメインの作成時に MLflow IAM アクセス許可を設定する
組織の新しい Amazon SageMaker AI ドメインを設定するときは、[ユーザーと ML アクティビティ] 設定を通じて、ドメインサービスロールの IAM アクセス許可を設定できます。
新しいドメインの設定時に SageMaker AI で MLflow を使用するための 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 AWS のサービスに必要なアクセス: この ML アクティビティは、Amazon S3 と SageMaker AI Model Registry にアクセスするために必要なドメインサービスロールのアクセス許可を提供します。これにより、ドメインサービスロールを追跡サーバーサービスロールとして使用できるようになります。
Role Manager の ML アクティビティの詳細については、「ML アクティビティリファレンス」を参照してください。
IAM コンソールで必要な IAM サービスロールを作成する
ドメインサービスロールを作成または更新していない場合は、MLflow 追跡サーバーを作成して使用するために、代わりに IAM コンソールで次のサービスロールを作成する必要があります。
追跡サーバーが SageMaker AI リソースへのアクセスに使用できる、追跡サーバーの IAM サービスロール
SageMaker AI が MLflow リソースの作成と管理に使用できる、SageMaker AI の IAM サービスロール
追跡サーバーの IAM サービスロールの IAM ポリシー
追跡サーバーの IAM サービスロールは、Amazon S3 や SageMaker Model Registry などの必要なリソースにアクセスするために追跡サーバーが使用します。
追跡サーバーの IAM サービスロールを作成するときは、次の IAM 信頼ポリシーを使用します。
IAM コンソールで、追跡サーバーのサービスロールに次のアクセス許可ポリシーを追加します。
SageMaker AI の IAM サービスロールの IAM ポリシー
SageMaker AI サービスロールは、MLflow 追跡サーバーにアクセスするクライアントが使用します。MLflow REST API を呼び出すためのアクセス許可が必要です。SageMaker AI サービスロールには、追跡サーバーを作成、表示、更新、起動、停止、削除するための SageMaker API アクセス許可も必要です。
新しいロールを作成するか、既存のロールを更新できます。SageMaker AI サービスロールには、次のポリシーが必要です。
アクションごとの認証コントロールを作成する
sagemaker-mlflow 用の認証コントロールを設定する必要があります。必要に応じて、MLflow 追跡サーバーに対してユーザーが持つ MLflow アクセス許可を細かく制御するために、アクションごとの認証コントロールを設定することもできます。
注記
次の手順では、MLflow 追跡サーバーの ARN が既に使用可能であることを前提としています。追跡サーバーを作成する方法については、「Studio を使用して追跡サーバーを作成する」または「を使用して追跡サーバーを作成する AWS CLI」を参照してください。
次のコマンドは、mlflow-policy.json というファイルを作成します。このファイルは、使用可能なすべての SageMaker AI MLflow アクションに対する IAM アクセス許可を追跡サーバーに付与します。ユーザーが実行できる特定のアクションを選択する形で、ユーザーに持たせるアクセス許可を制限することもできます。使用可能なアクションのリストについては、「MLflow でサポートされている IAM アクション」を参照してください。
# Replace "Resource":"*" with "Resource":"TrackingServerArn" # Replace "sagemaker-mlflow:*" with specific actions printf '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker-mlflow:*", "Resource": "*" } ] }' > mlflow-policy.json
AWS CLIで、mlflow-policy.json ファイルを使用して IAM ポリシーを作成します。
aws iam create-policy \ --policy-nameMLflowPolicy\ --policy-documentfile://mlflow-policy.json
アカウント ID を取得し、ポリシーを IAM ロールにアタッチします。
# Get your account ID aws sts get-caller-identity # Attach the IAM policy using your exported role and account ID aws iam attach-role-policy \ --role-name$role_name\ --policy-arn arn:aws:iam::123456789012:policy/MLflowPolicy
MLflow でサポートされている IAM アクション
認証アクセスコントロールでは、次の SageMaker AI MLflow アクションがサポートされています。
-
sagemaker-mlflow:AccessUI
-
sagemaker-mlflow:CreateExperiment
-
sagemaker-mlflow:SearchExperiments
-
sagemaker-mlflow:GetExperiment
-
sagemaker-mlflow:GetExperimentByName
-
sagemaker-mlflow:DeleteExperiment
-
sagemaker-mlflow:RestoreExperiment
-
sagemaker-mlflow:UpdateExperiment
-
sagemaker-mlflow:CreateRun
-
sagemaker-mlflow:DeleteRun
-
sagemaker-mlflow:RestoreRun
-
sagemaker-mlflow:GetRun
-
sagemaker-mlflow:LogMetric
-
sagemaker-mlflow:LogBatch
-
sagemaker-mlflow:LogModel
-
sagemaker-mlflow:LogInputs
-
sagemaker-mlflow:SetExperimentTag
-
sagemaker-mlflow:SetTag
-
sagemaker-mlflow:DeleteTag
-
sagemaker-mlflow:LogParam
-
sagemaker-mlflow:GetMetricHistory
-
sagemaker-mlflow:SearchRuns
-
sagemaker-mlflow:ListArtifacts
-
sagemaker-mlflow:UpdateRun
-
sagemaker-mlflow:CreateRegisteredModel
-
sagemaker-mlflow:GetRegisteredModel
-
sagemaker-mlflow:RenameRegisteredModel
-
sagemaker-mlflow:UpdateRegisteredModel
-
sagemaker-mlflow:DeleteRegisteredModel
-
sagemaker-mlflow:GetLatestModelVersions
-
sagemaker-mlflow:CreateModelVersion
-
sagemaker-mlflow:GetModelVersion
-
sagemaker-mlflow:UpdateModelVersion
-
sagemaker-mlflow:DeleteModelVersion
-
sagemaker-mlflow:SearchModelVersions
-
sagemaker-mlflow:GetDownloadURIForModelVersionArtifacts
-
sagemaker-mlflow:TransitionModelVersionStage
-
sagemaker-mlflow:SearchRegisteredModels
-
sagemaker-mlflow:SetRegisteredModelTag
-
sagemaker-mlflow:DeleteRegisteredModelTag
-
sagemaker-mlflow:DeleteModelVersionTag
-
sagemaker-mlflow:DeleteRegisteredModelAlias
-
sagemaker-mlflow:SetRegisteredModelAlias
-
sagemaker-mlflow:GetModelVersionByAlias
-
sagemaker-mlflow:FinalizeLoggedModel
-
sagemaker-mlflow:GetLoggedModel
-
sagemaker-mlflow:DeleteLoggedModel
-
sagemaker-mlflow:SearchLoggedModels
-
sagemaker-mlflow:SetLoggedModelTags
-
sagemaker-mlflow:DeleteLoggedModelTag
-
sagemaker-mlflow:ListLoggedModelArtifacts
-
sagemaker-mlflow:LogLoggedModelParams
-
sagemaker-mlflow:LogOutputs