

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.

# Configuración de permisos de IAM para MLflow
<a name="mlflow-create-tracking-server-iam"></a>

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

Si creas un nuevo dominio de Amazon SageMaker AI 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 [Configuración de permisos de IAM para MLflow al crear un nuevo dominio](#mlflow-create-tracking-server-iam-role-manager).

Para configurar los permisos mediante la consola de IAM, consulte [Creación de los roles de servicio de IAM necesarios en la consola de IAM](#mlflow-create-tracking-server-iam-service-roles).

Debe configurar los controles de autorización para las acciones de `sagemaker-mlflow`. Si lo desea, puede definir controles de autorización de forma más pormenorizada para regular los permisos de MLflow específicos de cada acción. Para obtener más información, consulte [Creación de controles de autorización específicos de cada acción](#mlflow-create-tracking-server-update-iam-actions).

## Configuración de permisos de IAM para MLflow al crear un nuevo dominio
<a name="mlflow-create-tracking-server-iam-role-manager"></a>

Al configurar un nuevo dominio de Amazon SageMaker AI para su organización, puede configurar los permisos de IAM para su función de servicio de dominio a través de los ajustes **Usuarios y Actividades de aprendizaje** automático.

**Para configurar los permisos de IAM para usar MLflow con SageMaker AI al configurar un nuevo dominio**

1. Configure un nuevo dominio mediante la consola de SageMaker IA. En la página **Configurar un dominio de SageMaker IA**, selecciona **Configurar para organizaciones**. Para obtener más información, consulte [Configuración personalizada mediante la consola](onboard-custom.md#onboard-custom-instructions-console).

1. Al configurar **los usuarios y las actividades de aprendizaje automático**, elija entre 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. Para obtener más información sobre estas actividades, consulte las explicaciones que se incluyen a continuación de este procedimiento.

1. Complete la configuración y la creación del nuevo dominio.

Las siguientes actividades de MLflow ML están disponibles en Amazon SageMaker Role Manager:
+ **Utilizar MLflow**: esta actividad de ML concede al rol de servicio de dominio permiso para llamar a las API de REST de MLflow con el fin de administrar los experimentos, las ejecuciones y los modelos en MLflow.
+ **Administrar servidores de seguimiento de MLflow**: esta actividad de ML concede 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 modelos de SageMaker IA. Esto le permite utilizar el rol de servicio de dominio como rol de servicio de servidor de seguimiento.

Para obtener más información sobre las actividades de ML en el Administrador de roles, consulte [Referencia de actividad de ML](role-manager-ml-activities.md).

## Creación de los roles de servicio de IAM necesarios en la consola de IAM
<a name="mlflow-create-tracking-server-iam-service-roles"></a>

Si no ha creado ni actualizado el rol de servicio de dominio, debe crear los siguientes roles 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 de IA SageMaker 
+ Una SageMaker función de servicio de IAM de SageMaker IA que la IA puede utilizar para crear y gestionar los recursos de MLflow

### Políticas de IAM para el rol de servicio de IAM del servidor de seguimiento
<a name="mlflow-create-tracking-server-iam-service-roles-ts"></a>

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.

Al crear el rol de servicio de IAM del servidor de seguimiento, utilice la siguiente política de confianza de IAM:

------
#### [ JSON ]

****  

```
{
     "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 de permisos al rol de servicio del servidor de seguimiento:

------
#### [ JSON ]

****  

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

------

### Política de IAM para la función de servicio de SageMaker IA IAM
<a name="mlflow-create-tracking-server-iam-service-roles-sm"></a>

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

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

------
#### [ JSON ]

****  

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

------

## Creación de controles de autorización específicos de cada acción
<a name="mlflow-create-tracking-server-update-iam-actions"></a>

Debe configurar controles de autorización para `sagemaker-mlflow` y, si lo desea, puede configurar controles de autorización específicos de cada acción con el fin de regular de forma más pormenorizada los permisos de MLflow que los usuarios tienen en un servidor de seguimiento de MLflow.

**nota**  
En los siguientes pasos se da por hecho que ya tiene un ARN para un servidor de seguimiento de MLflow. Para obtener más información sobre cómo crear un servidor de seguimiento, consulte [Creación de un servidor de seguimiento con Studio](mlflow-create-tracking-server-studio.md) o [Cree un servidor de seguimiento mediante el AWS CLI](mlflow-create-tracking-server-cli.md).

El siguiente comando crea un archivo denominado `mlflow-policy.json` que proporciona a su servidor de seguimiento los permisos de IAM para todas las acciones de SageMaker AI MLflow disponibles. También puede limitar los permisos que tiene un usuario. Para ello, seleccione las acciones específicas que desea que realice ese usuario. Para obtener una lista de las acciones disponibles, consulte [Acciones de IAM compatibles con MLflow](#mlflow-create-tracking-server-iam-actions).

```
# 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 archivo `mlflow-policy.json` para crear una política de IAM mediante la AWS CLI. 

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

Recupere el ID de la cuenta y asocie la política al rol 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}}
```

### Acciones de IAM compatibles con MLflow
<a name="mlflow-create-tracking-server-iam-actions"></a>

Se admiten las siguientes acciones de SageMaker AI MLflow para el control de acceso y autorización:
+ sagemaker-mlflow:AccessUI
+ sagemaker-mlflow: CreateExperiment
+ flujo sagemaker-ml: SearchExperiments
+ flujo sagemaker-ml: GetExperiment
+ flujo sagemaker-ml: GetExperimentByName
+ flujo sagemaker-ml: DeleteExperiment
+ flujo sagemaker-ml: RestoreExperiment
+ flujo sagemaker-ml: UpdateExperiment
+ flujo sagemaker-ml: CreateRun
+ flujo sagemaker-ml: DeleteRun
+ flujo sagemaker-ml: RestoreRun
+ flujo sagemaker-ml: GetRun
+ flujo sagemaker-ml: LogMetric
+ flujo sagemaker-ml: LogBatch
+ flujo sagemaker-ml: LogModel
+ flujo sagemaker-ml: LogInputs
+ flujo sagemaker-ml: SetExperimentTag
+ flujo sagemaker-ml: SetTag
+ flujo sagemaker-ml: DeleteTag
+ flujo sagemaker-ml: LogParam
+ flujo sagemaker-ml: GetMetricHistory
+ flujo sagemaker-ml: SearchRuns
+ flujo sagemaker-ml: ListArtifacts
+ flujo sagemaker-ml: UpdateRun
+ flujo sagemaker-ml: CreateRegisteredModel
+ flujo sagemaker-ml: GetRegisteredModel
+ flujo sagemaker-ml: RenameRegisteredModel
+ flujo sagemaker-ml: UpdateRegisteredModel
+ flujo sagemaker-ml: DeleteRegisteredModel
+ flujo sagemaker-ml: GetLatestModelVersions
+ flujo sagemaker-ml: CreateModelVersion
+ flujo sagemaker-ml: GetModelVersion
+ flujo sagemaker-ml: UpdateModelVersion
+ flujo sagemaker-ml: DeleteModelVersion
+ flujo sagemaker-ml: SearchModelVersions
+ flujo sagemaker-ml: GetDownloadURIForModelVersionArtifacts
+ flujo sagemaker-ml: TransitionModelVersionStage
+ flujo sagemaker-ml: SearchRegisteredModels
+ flujo sagemaker-ml: SetRegisteredModelTag
+ flujo sagemaker-ml: DeleteRegisteredModelTag
+ flujo sagemaker-ml: DeleteModelVersionTag
+ flujo sagemaker-ml: DeleteRegisteredModelAlias
+ flujo sagemaker-ml: SetRegisteredModelAlias
+ flujo sagemaker-ml: GetModelVersionByAlias
+ flujo sagemaker-ml: FinalizeLoggedModel
+ flujo sagemaker-ml: GetLoggedModel
+ flujo sagemaker-ml: DeleteLoggedModel
+ flujo sagemaker-ml: SearchLoggedModels
+ flujo sagemaker-ml: SetLoggedModelTags
+ flujo sagemaker-ml: DeleteLoggedModelTag
+ flujo sagemaker-ml: ListLoggedModelArtifacts
+ flujo sagemaker-ml: LogLoggedModelParams
+ flujo sagemaker-ml: LogOutputs