本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为设置IAM权限 MLflow
要开始使用 Amazon A SageMaker I,您必须配置必要的IAM服务角色。MLflow
如果您创建了一个新的 Amazon SageMaker AI 域来访问您在 Studio 中的实验,则可以在域名设置期间配置必要的IAM权限。有关更多信息,请参阅 在创建新域时设置MLflowIAM权限。
要使用IAM控制台设置权限,请参阅在IAM控制台中创建必要的IAM服务角色。
您必须为 sagemaker-mlflow
操作配置授权控制。您可以选择定义更精细的授权控制来管理特定于操作MLflow的权限。有关更多信息,请参阅 创建针对特定操作的授权控制。
在创建新域时设置MLflowIAM权限
在为您的组织设置新的 SageMaker Amazon AI 域时,您可以通过用户和机器学习活动设置为您的域服务角色配置IAM权限。
在设置新域时配置MLflow与 SageMaker AI 配合使用的IAM权限
-
使用 SageMaker AI 控制台设置新域。在设置 SageMaker AI 域页面上,选择为组织设置。有关更多信息,请参阅 使用管理控制台进行自定义设置。
-
设置用户和机器学习活动时,请从以下机器学习活动中进行选择MLflow:使用MLflow、管理MLflow跟踪服务器和 AWS 服务所需的访问权限MLflow。有关这些活动的更多信息,请参阅本步骤后面的说明。
-
完成新域的设置和创建。
Amazon SageMaker 角色管理器中提供了以下MLflow机器学习活动:
使用 MLflow:此 ML 活动向域服务角色授予调用权限,以管理MLflowRESTAPIs中的实验、运行和模型MLflow。
管理MLflow跟踪服务器:此 ML 活动向域服务角色授予创建、更新、启动、停止和删除跟踪服务器的权限。
需要访问以下 AWS 服务的权限MLflow:此机器学习活动提供访问 Amazon S3 和 A SageMaker I 模型注册表所需的域服务角色权限。这样就可以将域服务角色用作跟踪服务器服务角色。
有关角色管理器中 ML 活动的更多信息,请参阅 机器学习活动参考。
在IAM控制台中创建必要的IAM服务角色
如果您没有创建或更新您的域名服务角色,则必须改为在IAM控制台中创建以下服务角色才能创建和使用MLflow跟踪服务器:
跟踪服务器可用于访问 SageMaker AI 资源的跟踪服务器IAM服务角色
A SageMaker I IAM 服务角色, SageMaker AI 可用来创建和管理MLflow资源
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 AI IAM 服务角色的策略
A SageMaker I 服务角色由访问MLflow跟踪服务器的客户端使用,需要调用权限MLflowRESTAPIs。A SageMaker I 服务角色还需要创建、查看、更新、启动、停止和删除跟踪服务器的 SageMaker API权限。
您可以创建新角色或更新现有角色。A SageMaker I 服务角色需要以下策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker-mlflow:*", "sagemaker:CreateMlflowTrackingServer", "sagemaker:ListMlflowTrackingServers", "sagemaker:UpdateMlflowTrackingServer", "sagemaker:DeleteMlflowTrackingServer", "sagemaker:StartMlflowTrackingServer", "sagemaker:StopMlflowTrackingServer", "sagemaker:CreatePresignedMlflowTrackingServerUrl" ], "Resource": "*" } ] }
创建针对特定操作的授权控制
您必须为其设置授权控制sagemaker-mlflow
,并且可以选择配置特定于操作的授权控制,以管理您的用户在MLflow跟踪服务器上拥有的更精细的MLflow权限。
注意
以下步骤假设您的MLflow跟踪服务器已经可用。ARN要了解如何创建跟踪服务器,请参阅 使用 Studio 创建跟踪服务器 或 使用创建跟踪服务器 AWS CLI。
以下命令创建一个名为的文件mlflow-policy.json
,该文件向您的跟踪服务器提供所有可用 SageMaker AI 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 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