Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Conditions préalables
Multi-turn RL utilise l'CreateJobAPI SageMaker AI, qui nécessite des autorisations supplémentaires en plus des prérequis de personnalisation du modèle existants. Le tableau ci-dessous résume ce qui est nouveau par rapport à ce qui est déjà couvert.
| Quoi | Statut | Remarques |
|---|---|---|
| Politique de confiance : job.sagemaker.amazonaws.com | Nouveau | Requis pour CreateJob l'API |
| Politique de confiance : bedrock-agentcore.amazonaws.com | Nouveau | Obligatoire sur le rôle d'exécution de l'agent (AgentCore chemin uniquement) |
| PassRole: job.sagemaker.amazonaws.com | Nouveau | Les prérequis existants concernent uniquement sagemaker.amazonaws.com |
| Actions liées à l'emploi (CreateJob DescribeJob, etc.) | Nouveau | Pas dans AmazonSageMakerFullAccess |
| noyau d'agent de base : ListAgentRuntimes | Nouveau | Requis pour le sélecteur d'exécution de Studio |
| noyau d'agent de base : ListAgentRuntimeVersions | Nouveau | Requis pour le sélecteur de version de Studio |
| AmazonSageMakerJobFullAccess politique gérée | Nouveau | Associer au rôle d'exécution des tâches |
| AmazonSageMakerJobRuntimeAccess politique gérée | Nouveau | Attacher au rôle d'exécution de l'agent |
| Lambda, déploiement de Bedrock, S3, KMS, MLflow, CloudWatch | Déjà couvert | Via des prérequis existants ou des politiques gérées |
Rôle de l'appelant
{ "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 — permet à l'appelant de déléguer le rôle d'exécution àjob.sagemaker.amazonaws.com.
Politiques gérées
Multi-turn RL utilise deux politiques AWS gérées. Attribuez chacun au rôle approprié avant de créer une tâche.
AmazonSageMakerJobFullAccess— attachez au rôle d'exécution des tâches d' SageMaker IA (celui auquel RoleArn vous passezCreateJob).
Cette politique accorde à la tâche les autorisations dont elle a besoin pendant son exécution : read/write accès aux données d'entraînement et aux points de contrôle dans S3, autorisations KMS pour le S3-side chiffrement, accès au contenu du hub SageMaker AI et aux packages de modèles, suivi des expériences MLflow, appel d'agents via Bedrock AgentCore ou Lambda, gestion de l'interface réseau VPC et écriture des journaux. CloudWatch Référence : AmazonSageMakerJobFullAccess.
AmazonSageMakerJobRuntimeAccess— attachez au rôle d'exécution de l'agent (le rôle sous lequel votre agent s'exécute, que ce soit sur Bedrock AgentCore ou derrière un forwarder Lambda). Cette politique accorde les API d'exécution que votre agent appelle lors d'un déploiement : sagemaker:Samplesagemaker:SampleWithResponseStream, sagemaker:CompleteRolloutsagemaker:UpdateReward, etsagemaker:CallWithBearerToken. Référence : AmazonSageMakerJobRuntimeAccess.
Mises à jour de la politique
Ajoutez job.sagemaker.amazonaws.com à la politique de confiance de votre rôle d'exécution :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "job.sagemaker.amazonaws.com" }, "Action": ["sts:AssumeRole", "sts:TagSession"] } ] }
Si vous utilisez Bedrock AgentCore, votre rôle d'exécution d'agent a également besoin de sa propre politique de confiance :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Politique en ligne supplémentaire pour l'interface utilisateur de Studio
Si vous soumettez des tâches via SageMaker AI Studio, ajoutez la politique en ligne suivante à votre rôle d'exécution de domaine 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}" } } } ] }
Option de politique personnalisée
Si vous préférez définir vos propres politiques au lieu d'utiliser les politiques AWS gérées, utilisez ce qui suit comme point de départ.
SageMaker Politique relative aux rôles d'exécution des tâches d'IA (équivalente à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}" } } } ] }
Relation de confiance pour le rôle d'exécution :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "job.sagemaker.amazonaws.com" }, "Action": ["sts:AssumeRole", "sts:TagSession"] } ] }
AmazonSageMakerJobRuntimeAccess équivalent + 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" } } } ] }
Relation de confiance pour le rôle d'exécution de l'agent :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Remarque concernant le transitaire Lambda
Les autorisations Lambda de personnalisation du modèle existantes couvrent les fonctions dont le SageMaker nom comporte ou sagemaker. Si votre redirecteur Lambda utilise une convention de dénomination différente, ajoutez explicitement son ARN :
{ "Sid": "CustomAgentLambdaPermission", "Effect": "Allow", "Action": ["lambda:InvokeFunction"], "Resource": "arn:aws:lambda:*:*:function:your-agent-forwarder-function-name", "Condition": { "StringEquals": {"aws:ResourceAccount": "${aws:PrincipalAccount}"} } }
Autre configuration
-
Si vous utilisez un VPC géré par le client, consultez. Configuration d'un VPC pour les tâches RL à plusieurs tours
-
Si vous utilisez une clé KMS gérée par le client pour chiffrer les entrées et les sorties des tâches, le rôle d'exécution, le rôle d'appelant et le rôle d'exécution de l'agent doivent disposer d'autorisations supplémentaires. Consultez Chiffrement au repos pour un apprentissage par renforcement multi-tours.