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
Multi-turn RL utilizza l'CreateJobAPI 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
{ "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
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 passaCreateJob).
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:.
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
Aggiornamenti della politica di fiducia
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
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
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 aAmazonSageMakerJobFullAccess):
{ "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
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
-
Se utilizzi un VPC gestito dal cliente, consulta. Configurazione di un VPC per lavori RL a turni multipli
-
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.