本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 的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許可
-
使用 SageMaker 主控台設定新網域。在設定 SageMaker網域頁面上,選擇為組織設定 。如需詳細資訊,請參閱使用主控台自訂設定。
-
設定使用者和 ML 活動 時,請從下列 ML 活動中選擇MLflow:使用 MLflow、管理MLflow追蹤伺服器 和 AWS 服務所需的存取MLflow。如需這些活動的詳細資訊,請參閱此程序後面的說明。
-
完成新網域的設定和建立。
下列 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-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
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