

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

Multi-turn RL utilizza l'`CreateJob`API SageMaker AI, che richiede autorizzazioni aggiuntive oltre ai prerequisiti di personalizzazione del modello esistenti. La tabella seguente riassume le novità rispetto a quelle già trattate.


| What | Stato | Note | 
| --- | --- | --- | 
| Politica sulla fiducia: job.sagemaker.amazonaws.com | Novità |  CreateJob Obbligatorio per l'API | 
| Politica sulla fiducia: bedrock-agentcore.amazonaws.com | Novità | Richiesto per il ruolo di runtime dell'agente (solo percorso) AgentCore  | 
| PassRole: job.sagemaker.amazonaws.com | Novità | I prerequisiti esistenti riguardano solo sagemaker.amazonaws.com | 
| Azioni CreateJob DescribeJob lavorative (,, ecc.) | Novità | Non in AmazonSageMakerFullAccess | 
| bedrock-agent core: ListAgentRuntimes | Novità | Richiesto per Studio runtime picker | 
| bedrock-agentcore: ListAgentRuntimeVersions | Novità | Richiesto per il selettore di versione di Studio | 
| AmazonSageMakerJobFullAccess politica gestita | Novità | Allega al ruolo di esecuzione del lavoro | 
| AmazonSageMakerJobRuntimeAccess politica gestita | Novità | Collegamento al ruolo di runtime dell'agente | 
| Lambda, distribuzione Bedrock, S3, KMS, MLFlow, CloudWatch | Già coperto | Tramite i prerequisiti esistenti o le politiche gestite | 

## Ruolo del chiamante
<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 — consente al chiamante di delegare il ruolo di esecuzione a. `job.sagemaker.amazonaws.com`

## Policy gestite
<a name="model-customize-mtrl-prereqs-managed-policies"></a>

Multi-turn RL utilizza due policy AWS gestite. Assegna a ciascuno il ruolo appropriato prima di creare un lavoro.

**AmazonSageMakerJobFullAccess**— attribuisciti al ruolo di esecuzione del lavoro di SageMaker intelligenza artificiale (quello a `RoleArn` cui si passa`CreateJob`).

Questa policy concede al job le autorizzazioni necessarie durante l'esecuzione: read/write accesso ai dati di training e ai checkpoint in S3, autorizzazioni KMS per la S3-side crittografia, accesso al contenuto dell'hub SageMaker AI e ai pacchetti di modelli, tracciamento degli esperimenti MLFlow, invocazione di agenti tramite Bedrock AgentCore o Lambda, gestione dell'interfaccia di rete VPC e scritture di log. CloudWatch Riferimento [ AmazonSageMakerJobFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerJobFullAccess.html):.

**AmazonSageMakerJobRuntimeAccess**— collegarsi al ruolo di runtime dell'agente (il ruolo in cui viene eseguito l'agente, su Bedrock AgentCore o dietro un server d'inoltro Lambda). Questa policy garantisce le API di runtime chiamate dall'agente durante un rollout:,,, e. `sagemaker:Sample` `sagemaker:SampleWithResponseStream` `sagemaker:CompleteRollout` `sagemaker:UpdateReward` `sagemaker:CallWithBearerToken` Riferimento:. [ AmazonSageMakerJobRuntimeAccess ](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerJobRuntimeAccess.html)

## Aggiornamenti della politica di fiducia
<a name="model-customize-mtrl-prereqs-trust-policy"></a>

Aggiungete `job.sagemaker.amazonaws.com` alla politica di fiducia del vostro ruolo di esecuzione:

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

Se utilizzi Bedrock AgentCore, anche il ruolo di runtime dell'agente necessita di una propria politica di fiducia:

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

## Politica in linea aggiuntiva per l'interfaccia utente di Studio
<a name="model-customize-mtrl-prereqs-studio-policy"></a>

Se invii lavori tramite SageMaker AI Studio, aggiungi la seguente policy in linea al tuo ruolo di esecuzione del dominio SageMaker AI:

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

## Opzione politica personalizzata
<a name="model-customize-mtrl-prereqs-custom-policy"></a>

Se preferisci definire le tue politiche invece di utilizzare quelle AWS gestite, utilizza quanto segue come punto di partenza.

**SageMaker Politica sui ruoli di esecuzione dei lavori AI ** (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}"
        }
      }
    }
  ]
}
```

**Rapporto di fiducia per il ruolo di esecuzione: **

```
{
  "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}"
        }
      }
    },
    {
      "Sid": "KMSPermissionsForMTRLRuntime",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource": "arn:aws:kms:*:*:key/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "${aws:PrincipalAccount}"
        },
        "StringLike": {
          "kms:ViaService": "sagemaker.*.amazonaws.com"
        }
      }
    }
  ]
}
```

**Relazione di fiducia per il ruolo di runtime dell'agente: **

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

## Nota sull'inoltro Lambda
<a name="model-customize-mtrl-prereqs-lambda-forwarder"></a>

Le autorizzazioni Lambda per la personalizzazione del modello esistenti coprono le funzioni con * SageMaker * o sagemaker nel nome. * * Se il tuo forwarder Lambda utilizza una convenzione di denominazione diversa, aggiungi il relativo ARN in modo esplicito:

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

## Altra configurazione
<a name="model-customize-mtrl-prereqs-other-setup"></a>
+ Se utilizzi un VPC gestito dal cliente, consulta. [Configurazione di un VPC per lavori RL a turni multipli](model-customize-mtrl-vpc.md)
+ Se utilizzi una chiave KMS gestita dal cliente per crittografare l'input e l'output del lavoro, il ruolo di esecuzione, il ruolo del chiamante e il ruolo di runtime dell'agente devono disporre di autorizzazioni aggiuntive. Per informazioni, consulta [Crittografia a riposo per l'apprendimento per rinforzo a più turni](model-customize-mtrl-encryption-at-rest.md).