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 existant. Le tableau ci-dessous résume les nouveautés par rapport aux informations déjà abordées.
| Quoi | Statut | Remarques |
|---|---|---|
| Politique de confiance : job.sagemaker.amazonaws.com | Nouveau | Nécessaire 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 ne concernent que sagemaker.amazonaws.com |
| Actions liées au travail (CreateJob DescribeJob,, etc.) | Nouveau | Pas dans AmazonSageMakerFullAccess |
| bedrock-agentcore : ListAgentRuntimes | Nouveau | Nécessaire pour le sélecteur d'exécution de Studio |
| bedrock-agentcore : ListAgentRuntimeVersions | Nouveau | Nécessaire pour le sélecteur de version de Studio |
| AmazonSageMakerJobFullAccess politique gérée | Nouveau | Attacher au rôle d'exécution de la tâche |
| 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 | Par le biais de prérequis existants ou de 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. Attachez chacun au rôle approprié avant de créer une tâche.
AmazonSageMakerJobFullAccess— attachez-vous 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 de formation et aux points de contrôle dans S3, autorisations KMS pour le S3-side chiffrement, accès au contenu et aux packages de modèles du hub SageMaker AI, suivi des expériences MLflow, appel d'agents via Bedrock AgentCore ou Lambda, gestion de l'interface réseau VPC et écriture de journaux. CloudWatch Référence : AmazonSageMakerJobFullAccess.
AmazonSageMakerJobRuntimeAccess— attachez-le au rôle d'exécution de l'agent (le rôle sous lequel votre agent exécute, que ce soit sur Bedrock AgentCore ou derrière un redirecteur Lambda). Cette politique accorde aux API d'exécution que votre agent appelle lors d'un déploiement :sagemaker:Sample,sagemaker:SampleWithResponseStream, sagemaker:CompleteRolloutsagemaker:UpdateReward, etsagemaker:CallWithBearerToken. Référence : AmazonSageMakerJobRuntimeAccess.
Actualisations de la politique de confiance
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'agent d'exécution 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 intégrée 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 plutôt que d'utiliser des politiques AWS gérées, utilisez ce qui suit comme point de départ.
SageMaker Politique des 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}" } } } ] }
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" } ] }
Note du redirecteur Lambda
Les autorisations Lambda de personnalisation du modèle existantes couvrent les fonctions dont le nom SageMakercontient ou sagemaker. Si votre redirecteur Lambda utilise une convention de dénomination différente, ajoutez son ARN de manière explicite :
{ "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 pour chiffrer les entrées et sorties des tâches, le rôle d'exécution et le rôle d'appelant nécessitent des autorisations supplémentaires. Consultez Chiffrement au repos pour un apprentissage par renforcement à plusieurs tours.