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

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

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

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

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

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

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

新しいドメインを作成するときにMLflowIAMアクセス許可を設定する

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

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

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

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

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

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

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

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

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

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

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

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

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

IAM 追跡サーバーIAMサービスロールのポリシー

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

追跡サーバー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": "*" } ] }

IAM 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": "*" } ] }

アクション固有の承認コントロールを作成する

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

注記

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

次のコマンドは、 という名前のファイルを作成しmlflow-policy.json、すべての利用可能な SageMaker MLflowアクションに対するIAMアクセス許可をトラッキングサーバーに提供します。オプションで、ユーザーに実行させたい特定のアクションを選択することで、ユーザーに付与されるアクセス許可を制限できます。使用可能なアクションのリストについては、「IAM でサポートされているアクション MLflow」を参照してください。

# 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

IAM でサポートされているアクション MLflow

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