Configure los permisos de IAM para MLflow - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configure los permisos de IAM para MLflow

Debe configurar las funciones de servicio de IAM necesarias para empezar a utilizar MLflow en Amazon. SageMaker

Si creas un nuevo SageMaker dominio de Amazon para acceder a tus experimentos en Studio, puedes configurar los permisos de IAM necesarios durante la configuración del dominio. Para obtener más información, consulte Configure los permisos de IAM de MLflow al crear un dominio nuevo.

Para configurar los permisos mediante la consola de IAM, consulte. Cree las funciones de servicio de IAM necesarias en la consola de IAM

Debe configurar los controles de AuthZ para sagemaker-mlflow las acciones. Si lo desea, puede definir controles de AuthZ más detallados para controlar los permisos de MLflow específicos de cada acción. Para obtener más información, consulte Controles AuthZ específicos para cada acción.

Configure los permisos de IAM de MLflow al crear un dominio nuevo

Al configurar un nuevo SageMaker dominio de Amazon para tu organización, puedes configurar los permisos de IAM para tu rol de servicio de dominio a través de los ajustes de Usuarios y Actividades de aprendizaje automático.

Las siguientes actividades de MLflow ML están disponibles en Amazon SageMaker Role Manager:

  • Utilice MLFlow: esta actividad de aprendizaje automático otorga al rol de servicio de dominio permiso para llamar a las API REST de MLFlow con el fin de gestionar los experimentos, las ejecuciones y los modelos en MLflow.

  • Administrar los servidores de seguimiento de MLflow: esta actividad de aprendizaje automático otorga al rol de servicio de dominio permiso para crear, actualizar, iniciar, detener y eliminar servidores de seguimiento.

  • Acceso obligatorio a AWS los servicios de MLflow: esta actividad de aprendizaje automático proporciona los permisos de rol de servicio de dominio necesarios para acceder a Amazon S3 y al registro de SageMaker modelos. Esto le permite utilizar la función de servicio de dominio como función de servicio de servidor de seguimiento.

Siga los siguientes pasos para agregar las actividades de MLflow ML a su rol de servicio de dominio:

Configure los permisos de IAM para usar MLflow SageMaker cuando configure un nuevo dominio
  1. Configure un nuevo dominio mediante la SageMaker consola. En la página Configurar el SageMaker dominio, selecciona Configurar para organizaciones. Para obtener más información, consulte Configuración personalizada mediante la consola.

  2. Al configurar los usuarios y las actividades de aprendizaje automático, elija las siguientes actividades de aprendizaje automático para MLflow: utilizar MLflow, gestionar los servidores de seguimiento de MLflow y acceder a los AWS servicios necesarios para MLflow.

  3. Complete la configuración y creación de su nuevo dominio.

Para obtener más información sobre las actividades de aprendizaje automático en Role Manager, consulteReferencia de actividad de ML.

Cree las funciones de servicio de IAM necesarias en la consola de IAM

Si no creó ni actualizó su función de servicio de dominio, debe crear las siguientes funciones de servicio en la consola de IAM para crear y utilizar un servidor de seguimiento de MLflow:

  • Una función de servicio de IAM de servidor de seguimiento que el servidor de seguimiento puede utilizar para acceder a los recursos SageMaker

  • Un rol de servicio de SageMaker IAM que se SageMaker puede usar para crear y administrar los recursos de MLflow

Cree la función de servicio de IAM del servidor de seguimiento

El servidor de seguimiento utiliza la función de servicio IAM del servidor de seguimiento para acceder a los recursos que necesita, como Amazon S3 y SageMaker Model Registry.

Para crear la función de servicio de IAM del servidor de seguimiento, cree la siguiente política de confianza de IAM:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

En la consola de IAM, añada la siguiente política a su función de servicio de servidor de seguimiento:

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

Cree el rol de servicio SageMaker de IAM

El SageMaker cliente que accede al servidor de seguimiento de MLflow utiliza el rol de servicio y necesita permisos para llamar a las API REST de MLflow. El rol SageMaker de servicio también necesita permisos de SageMaker API para crear, actualizar, iniciar, detener y eliminar servidores de rastreo.

Puede crear un rol nuevo o actualizar uno existente. El rol SageMaker de servicio necesita la siguiente política:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker-mlflow:*", "sagemaker:CreateMlflowTrackingServer", "sagemaker:UpdateMlflowTrackingServer", "sagemaker:DeleteMlflowTrackingServer", "sagemaker:StartMlflowTrackingServer", "sagemaker:StopMlflowTrackingServer", "sagemaker:CreatePresignedMlflowTrackingServerUrl" ], "Resource": "*" } ] }

Controles AuthZ específicos para cada acción

Debe configurar los controles de AuthZ ysagemaker-mlflow, de forma opcional, puede configurar controles de AuthZ específicos para cada acción a fin de controlar los permisos de MLflow más detallados que sus usuarios tienen en un servidor de seguimiento de MLflow.

nota

En los siguientes pasos se supone que ya tiene disponible un ARN para un servidor de seguimiento de MLflow. Para obtener información sobre cómo crear un servidor de seguimiento, consulte Crea un servidor de seguimiento con Studio o. Cree un servidor de seguimiento mediante el AWS CLI

El siguiente comando crea un archivo denominado mlflow-policy.json que proporciona a su servidor de seguimiento permisos de IAM para todas las acciones de SageMaker MLflow disponibles. Si lo desea, puede limitar los permisos que tiene un usuario seleccionando las acciones específicas que desea que realice ese usuario. Para obtener una lista de las acciones disponibles, consulte MLflow admite acciones de 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

Utilice el mlflow-policy.json archivo para crear una política de IAM mediante. AWS CLI

aws iam create-policy \ --policy-name MLflowPolicy \ --policy-document file://mlflow-policy.json

Recupera tu ID de cuenta y adjunta la política a tu función de 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 admite acciones de IAM

El control de acceso de AuthZ admite las siguientes acciones de SageMaker MLflow:

  • SageMaker-MLFlow: interfaz de usuario de acceso

  • sagemaker-mlflow: CreateExperiment

  • flujo de sagemaker-ml: SearchExperiments

  • flujo de sagemaker-ml: GetExperiment

  • flujo de sagemaker-ml: GetExperimentByName

  • flujo de sagemaker-ml: DeleteExperiment

  • flujo de sagemaker-ml: RestoreExperiment

  • flujo de sagemaker-ml: UpdateExperiment

  • flujo de sagemaker-ml: CreateRun

  • flujo de sagemaker-ml: DeleteRun

  • flujo de sagemaker-ml: RestoreRun

  • flujo de sagemaker-ml: GetRun

  • flujo de sagemaker-ml: LogMetric

  • flujo de sagemaker-ml: LogBatch

  • flujo de sagemaker-ml: LogModel

  • flujo de sagemaker-ml: LogInputs

  • flujo de sagemaker-ml: SetExperimentTag

  • flujo de sagemaker-ml: SetTag

  • flujo de sagemaker-ml: DeleteTag

  • flujo de sagemaker-ml: LogParam

  • flujo de sagemaker-ml: GetMetricHistory

  • flujo de sagemaker-ml: SearchRuns

  • flujo de sagemaker-ml: ListArtifacts

  • flujo de sagemaker-ml: UpdateRun

  • flujo de sagemaker-ml: CreateRegisteredModel

  • flujo de sagemaker-ml: GetRegisteredModel

  • flujo de sagemaker-ml: RenameRegisteredModel

  • flujo de sagemaker-ml: UpdateRegisteredModel

  • flujo de sagemaker-ml: DeleteRegisteredModel

  • flujo de sagemaker-ml: GetLatestModelVersions

  • flujo de sagemaker-ml: CreateModelVersion

  • flujo de sagemaker-ml: GetModelVersion

  • flujo de sagemaker-ml: UpdateModelVersion

  • flujo de sagemaker-ml: DeleteModelVersion

  • flujo de sagemaker-ml: SearchModelVersions

  • sagemaker-mlflow: URI GetDownload ForModelVersionArtifacts

  • sagemaker-mlflow: TransitionModelVersionStage

  • flujo de sagemaker-ml: SearchRegisteredModels

  • flujo de sagemaker-ml: SetRegisteredModelTag

  • flujo de sagemaker-ml: DeleteRegisteredModelTag

  • flujo de sagemaker-ml: DeleteModelVersionTag

  • flujo de sagemaker-ml: DeleteRegisteredModelAlias

  • flujo de sagemaker-ml: SetRegisteredModelAlias

  • flujo de sagemaker-ml: GetModelVersionByAlias