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

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

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

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

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

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

sagemaker-mlflow アクションの AuthZ コントロールを設定する必要があります。オプションで、より詳細な AuthZ コントロールを定義して、アクション固有の MLflow アクセス許可を管理できます。詳細については、「アクション固有の AuthZ コントロール」を参照してください。

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

組織の新しい Amazon SageMaker ドメインを設定する場合、ユーザーおよび ML アクティビティ設定を使用してドメインサービスロールの IAM アクセス許可を設定できます。

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

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

  • MLflow Tracking Servers の管理: この ML アクティビティは、追跡サーバーを作成、更新、開始、停止、削除するアクセス許可をドメインサービスロールに付与します。

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

MLflow ML アクティビティをドメインサービスロールに追加するには、次の手順に従います。

新しいドメインを設定する SageMaker ときに で MLflow を使用するための IAM アクセス許可を設定する
  1. SageMaker コンソールを使用して新しいドメインを設定します。「ドメインのセットアップ SageMaker」ページで、「組織のセットアップ」を選択します。詳細については、「コンソールを使用したカスタムセットアップ」を参照してください。

  2. ユーザーと ML アクティビティ を設定するときは、MLflow の次の ML アクティビティを選択します: MLflow を使用する、MLflow 追跡サーバーを管理するMLflow AWS のサービスに必要なアクセス

  3. 新しいドメインのセットアップと作成を完了します。

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

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

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

  • 追跡サーバーが SageMaker リソースへのアクセスに使用できる追跡サーバーの IAM サービスロール

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

追跡サーバーの IAM サービスロールを作成する

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

追跡サーバーの IAM サービスロールを作成するには、次の IAM 信頼ポリシーを作成します。

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

IAM コンソールで、次のポリシーを追跡サーバーサービスロールに追加します。

{ "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 IAM サービスロールを作成する

SageMaker サービスロールは、MLflow 追跡サーバーにアクセスするクライアントによって使用され、MLflow REST APIs を呼び出すためのアクセス許可が必要です。 SageMaker サービスロールには、追跡サーバーを作成、更新、起動、停止、削除するための SageMaker API アクセス許可も必要です。

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

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

アクション固有の AuthZ コントロール

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

注記

次の手順では、MLflow Tracking Server の ARN が既に利用可能であることを前提としています。追跡サーバーの作成方法については、Studio を使用して追跡サーバーを作成する「」または「」を参照してくださいを使用して追跡サーバーを作成する AWS CLI

次のコマンドは、すべての使用可能な SageMaker 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

mlflow-policy.json ファイルを使用して、 を使用して IAM ポリシーを作成します AWS CLI。

aws iam create-policy \ --policy-name MLflowPolicy \ --policy-document file://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 アクション

AuthZ アクセスコントロールでは、次の SageMaker 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