設定 的IAM許可 MLflow - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 的IAM許可 MLflow

您必須設定必要的IAM服務角色,才能在 Amazon MLflow中開始使用 SageMaker。

如果您建立新的 Amazon SageMaker 網域以在 Studio 中存取實驗,您可以在網域設定期間設定必要的IAM許可。如需詳細資訊,請參閱建立新網域時設定MLflowIAM許可

若要使用IAM主控台設定許可,請參閱 在IAM主控台中建立必要的IAM服務角色

您必須設定sagemaker-mlflow動作的授權控制。您可以選擇性地定義更精細的授權控制,以管理動作特定的MLflow許可。如需詳細資訊,請參閱建立動作特定的授權控制項

建立新網域時設定MLflowIAM許可

為組織設定新的 Amazon SageMaker 網域時,您可以透過使用者和 ML 活動設定來設定網域服務角色的IAM許可。

設定新網域 SageMaker 時,設定使用 MLflow 與 的IAM許可
  1. 使用 SageMaker 主控台設定新網域。在設定 SageMaker網域頁面上,選擇為組織設定 。如需詳細資訊,請參閱使用主控台自訂設定

  2. 設定使用者和 ML 活動 時,請從下列 ML 活動中選擇MLflow:使用 MLflow管理MLflow追蹤伺服器 AWS 服務所需的存取MLflow。如需這些活動的詳細資訊,請參閱此程序後面的說明。

  3. 完成新網域的設定和建立。

下列 MLflow ML 活動可在 Amazon SageMaker Role Manager 中使用:

  • 使用 MLflow:此 ML 活動會授予網域服務角色呼叫許可,MLflowRESTAPIs以在 中管理實驗、執行和模型MLflow。

  • 管理MLflow追蹤伺服器 :此 ML 活動授予網域服務角色許可,以建立、更新、啟動、停止和刪除追蹤伺服器。

  • AWS 服務 所需的存取MLflow:此 ML 活動提供存取 Amazon S3 和 SageMaker 模型登錄檔所需的網域服務角色許可。這可讓您使用網域服務角色作為追蹤伺服器服務角色。

如需 Role Manager 中 ML 活動的詳細資訊,請參閱 機器學習 (ML) 活動參考

在IAM主控台中建立必要的IAM服務角色

如果您未建立或更新網域服務角色,則必須改為在IAM主控台中建立下列服務角色,才能建立和使用MLflow追蹤伺服器:

  • 追蹤伺服器可用來存取 SageMaker 資源的追蹤伺服器IAM服務角色

  • SageMaker 可用來建立和管理MLflow資源 SageMaker IAM的服務角色

IAM 追蹤伺服器IAM服務角色的政策

追蹤伺服器會使用追蹤伺服器IAM服務角色來存取所需的資源,例如 Amazon S3 和 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": "*" } ] }

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許可。

注意

下列步驟假設您已有ARN適用於MLflow追蹤伺服器的 。若要了解如何建立追蹤伺服器,請參閱 使用 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