本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 mlFlow 设置 IAM 权限
您必须配置必要的 IAM 服务角色才能开始在亚马逊 SageMaker中使用 mlFlow。
如果您创建了一个新的 Amazon SageMaker 域来访问您在 Studio 中的实验,则可以在域名设置期间配置必要的 IAM 权限。有关更多信息,请参阅 在创建新域时设置 mlFlow IAM 权限。
要使用 IAM 控制台设置权限,请参阅在 IAM 控制台中创建必要的 IAM 服务角色。
必须为sagemaker-mlflow
操作配置 AuthZ 控件。您可以选择定义更精细的 AuthZ 控件来管理特定于操作的 mlFlow 权限。有关更多信息,请参阅 特定于操作的 AuthZ 控件。
在创建新域时设置 mlFlow IAM 权限
在为您的组织设置新的 Amazon SageMaker 域名时,您可以通过用户和机器学习活动设置为您的域名服务角色配置 IAM 权限。
亚马逊 SageMaker 角色管理器中提供了以下 mlFlow 机器学习活动:
使用 mlFlow:此机器学习活动授予域服务角色调用 mlFlow REST API 的权限,以便在 mlFlow 中管理实验、运行和模型。
管理 mlFlow 跟踪服务器:此 ML 活动向域服务角色授予创建、更新、启动、停止和删除跟踪服务器的权限。
MLFlow Amazon 服务所需的访问权限:此机器学习活动提供访问 Amazon S3 和 SageMaker 模型注册表所需的域服务角色权限。这允许您使用域服务角色作为跟踪服务器服务角色。
使用以下步骤将 mlFlow ML 活动添加到您的域服务角色中:
在设置新域名 SageMaker 时配置 IAM 权限,以便将 mlFlow 与一起使用
使用 SageMaker 控制台设置新域。在设置 SageMaker域名页面上,选择为组织设置。有关更多信息,请参阅 使用控制台进行自定义设置。
设置用户和机器学习活动时,请为 m lFlow 选择以下机器学习活动:使用 mlFlow、管理 mlF low 跟踪服务器和 mlFlow Amazon 服务所需的访问权限。
完成新域名的设置和创建。
有关角色管理器中的 ML 活动的更多信息,请参阅机器学习活动参考。
在 IAM 控制台中创建必要的 IAM 服务角色
如果您没有创建或更新您的域服务角色,则必须在 IAM 控制台中创建以下服务角色才能创建和使用 mlFlow 跟踪服务器:
跟踪服务器可用来访问 SageMaker 资源的跟踪服务器 IAM 服务角色
一个 SageMaker 可用于创建和管理 mlFlow 资源的 SageMaker 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": "
*
" } ] }
创建 I SageMaker AM 服务角色
该 SageMaker 服务角色由访问 mlFlow 跟踪服务器的客户端使用,并且需要调用 mlFlow REST API 的权限。 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 跟踪服务器的 ARN 已经可用。要了解如何创建跟踪服务器,请参阅使用 Studio 创建跟踪服务器或使用创建跟踪服务器 Amazon CLI。
以下命令创建一个名为的文件mlflow-policy.json
,该文件为您的跟踪服务器提供所有可用 SageMaker mlFlow 操作的 IAM 权限。您可以选择要用户执行的特定操作,从而限制该用户拥有的权限。有关可用操作的列表,请参阅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 策略 Amazon 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
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:标签 SetExperiment
sagemaker-mlflow:SetTag
sagemaker-mlflow:DeleteTag
sagemaker-mlflow:LogParam
sagemaker-mlflow:历史 GetMetric
sagemaker-mlflow:SearchRuns
sagemaker-mlflow:ListArtifacts
sagemaker-mlflow:UpdateRun
sagemaker-mlflow:模型 CreateRegistered
sagemaker-mlflow:模型 GetRegistered
sagemaker-mlflow:模型 RenameRegistered
sagemaker-mlflow:模型 UpdateRegistered
sagemaker-mlflow:模型 DeleteRegistered
sagemaker-mlflow:GetLatestModelVersions
sagemaker-mlflow:版本 CreateModel
sagemaker-mlflow:版本 GetModel
sagemaker-mlflow:版本 UpdateModel
sagemaker-mlflow:版本 DeleteModel
sagemaker-mlflow:版本 SearchModel
sagemaker-mlflow:URI GetDownload ForModel VersionArtifacts
sagemaker-mlflow:TransitionModelVersionStage
sagemaker-mlflow:模型 SearchRegistered
sagemaker-mlflow:SetRegisteredModelTag
sagemaker-mlflow:DeleteRegisteredModelTag
sagemaker-mlflow:DeleteModelVersionTag
sagemaker-mlflow:DeleteRegisteredModelAlias
sagemaker-mlflow:SetRegisteredModelAlias
sagemaker-mlflow:别名 GetModel VersionBy