

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.

# Requisitos previos
<a name="model-customize-mtrl-prereqs"></a>

Multi-turn RL usa la `CreateJob` API de SageMaker IA, que requiere permisos adicionales además de los requisitos previos de personalización del modelo existentes. La siguiente tabla resume las novedades y las que ya están incluidas.


| Qué | Status | Notas | 
| --- | --- | --- | 
| Política de confianza: job.sagemaker.amazonaws.com | New |  CreateJob Necesario para la API | 
| Política de confianza: bedrock-agentcore.amazonaws.com | New | Necesario para el rol de agente en tiempo de ejecución (solo la ruta) AgentCore  | 
| PassRole: job.sagemaker.amazonaws.com | New | Los requisitos previos existentes solo cubren sagemaker.amazonaws.com | 
| Acciones laborales (CreateJob DescribeJob,, etc.) | New | No en AmazonSageMakerFullAccess | 
| bedrock-agent core: ListAgentRuntimes | New | Necesario para el selector de tiempo de ejecución de Studio | 
| bedrock-agentcore: ListAgentRuntimeVersions | New | Necesario para el selector de versiones de Studio | 
| AmazonSageMakerJobFullAccess política gestionada | New | Adjuntar a la función de ejecución del trabajo | 
| AmazonSageMakerJobRuntimeAccess política gestionada | New | Adjuntar al rol de agente en tiempo de ejecución | 
| Lambda, implementación de Bedrock, S3, KMS, MLflow, CloudWatch | ¿Ya está cubierto | Mediante requisitos previos existentes o políticas gestionadas | 

## Función de llamada
<a name="model-customize-mtrl-prereqs-caller-role"></a>

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PassRoleForCreateJob",
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::<account-id>:role/<ExecutionRoleName>",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": "job.sagemaker.amazonaws.com"
        }
      }
    },
    {
      "Sid": "MTRLJobActions",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateJob",
        "sagemaker:DescribeJob",
        "sagemaker:StopJob",
        "sagemaker:DeleteJob"
      ],
      "Resource": "arn:aws:sagemaker:*:*:job/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "MTRLListJobsPermission",
      "Effect": "Allow",
      "Action": [
        "sagemaker:ListJobs",
        "sagemaker:ListJobSchemaVersions",
        "sagemaker:DescribeJobSchemaVersion"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    }
  ]
}
```

PassRole — permite a la persona que llama delegar la función de ejecución en. `job.sagemaker.amazonaws.com`

## Políticas administradas
<a name="model-customize-mtrl-prereqs-managed-policies"></a>

Multi-turn RL usa dos políticas AWS administradas. Adjunte cada una de ellas a la función adecuada antes de crear un trabajo.

**AmazonSageMakerJobFullAccess**— adjunte a la función de ejecución de tareas de SageMaker IA (la `RoleArn` que le asigne`CreateJob`).

Esta política otorga al trabajo los permisos que necesita durante su ejecución: read/write acceso a los datos de entrenamiento y a los puntos de control en S3, permisos de KMS para el S3-side cifrado, acceso al contenido y a los paquetes de modelos de SageMaker AI Hub, seguimiento de experimentos de MLflow, invocación de agentes mediante Bedrock o AgentCore Lambda, administración de la interfaz de red de VPC y escritura de registros. CloudWatch Referencia [AmazonSageMakerJobFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerJobFullAccess.html):.

**AmazonSageMakerJobRuntimeAccess**— asígnelo a la función de tiempo de ejecución del agente (la función que desempeña su agente, ya sea en Bedrock AgentCore o detrás de un reenviador Lambda). Esta política otorga las API de tiempo de ejecución a las que su agente llama durante una implementación:`sagemaker:Sample`,,`sagemaker:SampleWithResponseStream`, `sagemaker:CompleteRollout` y. `sagemaker:UpdateReward` `sagemaker:CallWithBearerToken` Referencia: [AmazonSageMakerJobRuntimeAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerJobRuntimeAccess.html).

## Actualizaciones de la política de confianza
<a name="model-customize-mtrl-prereqs-trust-policy"></a>

Añada `job.sagemaker.amazonaws.com` a la política de confianza de su función de ejecución:

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

Si utilizas Bedrock AgentCore, tu función de agente en tiempo de ejecución también necesita su propia política de confianza:

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

## Política adicional en línea para la interfaz de usuario de Studio
<a name="model-customize-mtrl-prereqs-studio-policy"></a>

Si envías trabajos a través de SageMaker AI Studio, añade la siguiente política en línea a tu función de ejecución en el dominio de SageMaker IA:

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "MTRLJobActions",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateJob",
        "sagemaker:DescribeJob",
        "sagemaker:StopJob",
        "sagemaker:DeleteJob",
        "sagemaker:ListJobs",
        "sagemaker:ListJobSchemaVersions",
        "sagemaker:DescribeJobSchemaVersion"
      ],
      "Resource": "arn:aws:sagemaker:*:*:job/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "BedrockAgentCoreListPermissions",
      "Effect": "Allow",
      "Action": [
        "bedrock-agentcore:ListAgentRuntimes",
        "bedrock-agentcore:ListAgentRuntimeVersions"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "PassRoleForCreateJob",
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::*:role/*",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": "job.sagemaker.amazonaws.com",
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    }
  ]
}
```

## Opción de política personalizada
<a name="model-customize-mtrl-prereqs-custom-policy"></a>

Si prefiere definir sus propias políticas en lugar de utilizar las AWS gestionadas, utilice lo siguiente como punto de partida.

**SageMaker Política de funciones de ejecución de tareas de IA** (equivalente a`AmazonSageMakerJobFullAccess`):

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "S3Permissions",
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:ListBucket"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "s3:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "KMSPermissions",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource": "arn:aws:kms:*:*:key/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        },
        "StringLike": {
          "kms:ViaService": "s3.*.amazonaws.com"
        }
      }
    },
    {
      "Sid": "KMSDescribeKey",
      "Effect": "Allow",
      "Action": "kms:DescribeKey",
      "Resource": "arn:aws:kms:*:*:key/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "SageMakerHubPermissions",
      "Effect": "Allow",
      "Action": [
        "sagemaker:DescribeHubContent"
      ],
      "Resource": [
        "arn:aws:sagemaker:*:*:hub/*",
        "arn:aws:sagemaker:*:*:hub-content/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "SageMakerModelPackagePermissions",
      "Effect": "Allow",
      "Action": [
        "sagemaker:AccessModelPackage",
        "sagemaker:CreateModelPackage",
        "sagemaker:DescribeModelPackage",
        "sagemaker:DescribeModelPackageGroup"
      ],
      "Resource": [
        "arn:aws:sagemaker:*:*:model-package/*",
        "arn:aws:sagemaker:*:*:model-package-group/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "MLflowPermissions",
      "Effect": "Allow",
      "Action": [
        "sagemaker:DescribeMlflowApp",
        "sagemaker:CallMlflowAppApi",
        "sagemaker-mlflow:CreateExperiment",
        "sagemaker-mlflow:CreateRun",
        "sagemaker-mlflow:UpdateRun",
        "sagemaker-mlflow:LogBatch",
        "sagemaker-mlflow:GetExperimentByName",
        "sagemaker-mlflow:GetMetricHistory",
        "sagemaker-mlflow:GetRun",
        "sagemaker-mlflow:StartTrace",
        "sagemaker-mlflow:EndTrace",
        "sagemaker-mlflow:SearchTraces",
        "sagemaker-mlflow:ListArtifacts"
      ],
      "Resource": [
        "arn:aws:sagemaker:*:*:mlflow-app/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "BedrockAgentCorePermissions",
      "Effect": "Allow",
      "Action": [
        "bedrock-agentcore:InvokeAgentRuntime",
        "bedrock-agentcore:StopRuntimeSession",
        "bedrock-agentcore:GetAgentRuntime"
      ],
      "Resource": "arn:aws:bedrock-agentcore:*:*:runtime/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "EC2NetworkPermissions",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:CreateNetworkInterfacePermission",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeVpcs",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeDhcpOptions"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "EC2NetworkInterfaceTagPermissions",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:*:*:network-interface/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}",
          "ec2:CreateAction": "CreateNetworkInterface"
        }
      }
    },
    {
      "Sid": "EC2NetworkInterfaceDeletePermissions",
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteNetworkInterface",
        "ec2:DeleteNetworkInterfacePermission"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "CloudWatchLogsPermissions",
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams"
      ],
      "Resource": "arn:aws:logs:*:*:log-group:/aws/sagemaker/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "LambdaPermissions",
      "Effect": "Allow",
      "Action": [
        "lambda:InvokeFunction"
      ],
      "Resource": "arn:aws:lambda:*:*:function:*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    }
  ]
}
```

**Relación de confianza para el puesto de ejecución:**

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

**AmazonSageMakerJobRuntimeAccess equivalente \+ BedrockAgentCoreFullAccess**

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "SageMakerJobRuntimePermissions",
      "Effect": "Allow",
      "Action": [
        "sagemaker:Sample",
        "sagemaker:SampleWithResponseStream",
        "sagemaker:CompleteRollout",
        "sagemaker:UpdateReward"
      ],
      "Resource": "arn:aws:sagemaker:*:*:job/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    },
    {
      "Sid": "BearerTokenPermissions",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CallWithBearerToken"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        }
      }
    }
  ]
}
```

**Relación de confianza para el rol de agente en tiempo de ejecución:**

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

## Nota sobre el reenviador Lambda
<a name="model-customize-mtrl-prereqs-lambda-forwarder"></a>

Los permisos de Lambda de personalización del modelo existentes cubren funciones con *SageMaker*o *sagemaker en el nombre*. Si su reenviador Lambda utiliza una convención de nomenclatura diferente, añada su ARN de forma explícita:

```
{
  "Sid": "CustomAgentLambdaPermission",
  "Effect": "Allow",
  "Action": ["lambda:InvokeFunction"],
  "Resource": "arn:aws:lambda:*:*:function:your-agent-forwarder-function-name",
  "Condition": {
    "StringEquals": {"aws:ResourceAccount": "${aws:PrincipalAccount}"}
  }
}
```

## Otra configuración
<a name="model-customize-mtrl-prereqs-other-setup"></a>
+ Si utiliza una VPC gestionada por el cliente, consulte. [Configurar una VPC para trabajos de RL de varias vueltas](model-customize-mtrl-vpc.md)
+ Si usa una clave KMS para cifrar la entrada y salida del trabajo, la función de ejecución y la función de llamada necesitan permisos adicionales. Consulte [Cifrado en reposo para un aprendizaje reforzado en varios turnos](model-customize-mtrl-encryption-at-rest.md).