翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 ドメインのセットアップページで、組織のセットアップを選択します。詳細については、「コンソールを使用したカスタムセットアップ」を参照してください。
-
ユーザーと 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 APIs を呼び出すためのアクセス許可が必要です。SageMaker AI サービスロールには、追跡サーバーを作成、表示、更新、開始、停止、削除するための SageMaker API アクセス許可も必要です。
新しいロールを作成するか、既存のロールを更新できます。SageMaker AI サービスロールには、次のポリシーが必要です。
アクションごとの認証コントロールを作成する
sagemaker-mlflow
用の認証コントロールを設定する必要があります。必要に応じて、MLflow 追跡サーバーに対してユーザーが持つ MLflow アクセス許可を細かく制御するために、アクションごとの認証コントロールを設定することもできます。
注記
次の手順では、MLflow 追跡サーバーの ARN が既に使用可能であることを前提としています。追跡サーバーを作成する方法については、「Studio を使用して追跡サーバーを作成する」または「を使用して追跡サーバーを作成する AWS CLI」を参照してください。
次のコマンドは、使用可能なすべての SageMaker AI MLflow アクションの IAM アクセス許可をトラッキングサーバーmlflow-policy.json
に提供する というファイルを作成します。ユーザーが実行できる特定のアクションを選択する形で、ユーザーに持たせるアクセス許可を制限することもできます。使用可能なアクションのリストについては、「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-name
MLflowPolicy
\ --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