View a markdown version of this page

Voraussetzungen - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Voraussetzungen

Multi-turn RL verwendet die SageMaker CreateJob KI-API, für die zusätzlich zu den bestehenden Voraussetzungen für die Modellanpassung zusätzliche Berechtigungen erforderlich sind. Die folgende Tabelle fasst zusammen, was neu ist und was bereits behandelt wurde.

Was Status Hinweise
Vertrauensrichtlinie: job.sagemaker.amazonaws.com Neu CreateJob Für API erforderlich
Vertrauensrichtlinie: bedrock-agentcore.amazonaws.com Neu Erforderlich für die Runtime-Rolle des Agenten (nur Pfad) AgentCore
PassRole: job.sagemaker.amazonaws.com Neu Bestehende Voraussetzungen gelten nur für sagemaker.amazonaws.com
Arbeitsaktionen (CreateJob DescribeJob, usw.) Neu Nicht in AmazonSageMakerFullAccess
Bedrock-Agentcore: ListAgentRuntimes Neu Erforderlich für Studio Runtime Picker
Bedrock-AgentCore: ListAgentRuntimeVersions Neu Erforderlich für die Studio-Versionsauswahl
AmazonSageMakerJobFullAccess verwaltete Richtlinie Neu An die Rolle „Auftragsausführung“ anhängen
AmazonSageMakerJobRuntimeAccess verwaltete Richtlinie Neu An die Runtime-Rolle des Agenten anhängen
Lambda, Bedrock-Bereitstellung, S3, KMS, MLflow, CloudWatch Ist bereits abgedeckt Über bestehende Voraussetzungen oder verwaltete Richtlinien

Rolle des Anrufers

{ "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 — ermöglicht es dem Aufrufer, die Ausführungsrolle an zu delegieren. job.sagemaker.amazonaws.com

Verwaltete Richtlinien

Multi-turn RL verwendet zwei AWS verwaltete Richtlinien. Ordnen Sie jede Rolle der entsprechenden Rolle zu, bevor Sie einen Job erstellen.

AmazonSageMakerJobFullAccess— fügen Sie sie der SageMaker KI-Jobausführungsrolle hinzu (die, zu der RoleArn Sie übergehenCreateJob).

Diese Richtlinie gewährt dem Job die Berechtigungen, die er während der Ausführung benötigt: read/write Zugriff auf Trainingsdaten und Checkpoints in S3, KMS-Berechtigungen für die S3-side Verschlüsselung, Zugriff auf SageMaker AI-Hub-Inhalte und Modellpakete, MLflow-Versuchsverfolgung, Agentenaufruf über Bedrock AgentCore oder Lambda, VPC-Netzwerkschnittstellenmanagement und Log-Schreibvorgänge. CloudWatch Referenz:. AmazonSageMakerJobFullAccess

AmazonSageMakerJobRuntimeAccess— an die Agenten-Runtime-Rolle anhängen (die Rolle, unter der Ihr Agent läuft, egal ob auf Bedrock AgentCore oder hinter einem Lambda-Forwarder). Diese Richtlinie gewährt den Runtime-APIs, die Ihr Agent während eines Rollouts aufruft:sagemaker:Sample,,sagemaker:SampleWithResponseStream, sagemaker:CompleteRollout und. sagemaker:UpdateReward sagemaker:CallWithBearerToken Referenz: AmazonSageMakerJobRuntimeAccess.

Aktualisierungen der Vertrauensrichtlinien

Fügen job.sagemaker.amazonaws.com Sie der Vertrauensrichtlinie Ihrer Ausführungsrolle Folgendes hinzu:

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

Wenn Sie Bedrock verwenden AgentCore, benötigt Ihre Agenten-Runtime-Rolle auch eine eigene Vertrauensrichtlinie:

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

Zusätzliche Inline-Richtlinie für die Studio-Benutzeroberfläche

Wenn Sie Jobs über SageMaker AI Studio einreichen, fügen Sie Ihrer SageMaker AI-Domänenausführungsrolle die folgende Inline-Richtlinie hinzu:

{ "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 „Benutzerdefinierte Richtlinie“

Wenn Sie es vorziehen, Ihre eigenen Richtlinien zu definieren, anstatt die AWS verwalteten zu verwenden, verwenden Sie die folgenden Richtlinien als Ausgangspunkt.

SageMaker Rollenrichtlinie für die AI-Auftragsausführung (entsprichtAmazonSageMakerJobFullAccess):

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

Vertrauensverhältnis für die Ausführungsrolle:

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

AmazonSageMakerJobRuntimeAccess gleichwertig + 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}" } } } ] }

Vertrauensverhältnis für die Agenten-Runtime-Rolle:

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

Hinweis für Lambda-Spediteure

Die vorhandenen Lambda-Berechtigungen zur Modellanpassung decken Funktionen mit SageMakeroder Sagemaker im Namen ab. Wenn Ihr Lambda-Forwarder eine andere Namenskonvention verwendet, fügen Sie seinen ARN explizit hinzu:

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

Anderes Setup