IAM-Berechtigungen für Runtime AgentCore
Im Folgenden sind die IAM-Berechtigungen aufgeführt, die Sie benötigen, um einen Agenten in einer AgentCore Runtime zu erstellen, sowie die Ausführungsrollenberechtigungen, die ein Agent zur Ausführung in einer AgentCore Runtime benötigt. Sie können auch ressourcenbasierte Richtlinien verwenden, um den Zugriff auf Ihre Runtime-Ressourcen zu kontrollieren.
Informationen zur Verwendung ressourcenbasierter Richtlinien zur Steuerung des Zugriffs auf Ihre AgentCore Runtime-Ressourcen finden Sie unter Resource-based Richtlinien für Amazon Bedrock. AgentCore
Themen
Verwenden Sie Amazon Bedrock AgentCore
Um Amazon Bedrock zu verwenden AgentCore, können Sie die BedrockAgentCoreFullAccess AWS verwaltete Richtlinie an Ihren IAM-Benutzer oder Ihre IAM-Rolle anhängen. Diese AWS verwaltete Richtlinie gewährt umfassende BerechtigungenGetWorkloadAccessTokenForUserId, einschließlich der Ausgabe von Workload-Zugriffstoken mithilfe von vom Anrufer bereitgestellter Benutzerkennungszeichenfolgen ohne IdP-Tokenverifizierung. Wir empfehlen, eine benutzerdefinierte Richtlinie mit nur den Berechtigungen zu erstellen, die Ihre Anwendung benötigt, indem Sie die entsprechenden Anweisungen kopieren und die Ressourcen auf Ihren speziellen Anwendungsfall beschränken. Für Produktionsbereitstellungen, bei denen für Ihre Anwendung JWT-Token verfügbar sind, sollten Sie die Option nur explizit verweigern GetWorkloadAccessTokenForUserId und gewähren. GetWorkloadAccessTokenForJWT Weitere Informationen finden Sie unter Workload-Zugriffstoken abrufen. Um die AgentCore CLI verwenden zu können, benötigen Sie zusätzliche Berechtigungen.
Verwenden Sie die AgentCore CLI
Um die AgentCore CLI zu verwenden, fügen Sie Ihrem IAM-Benutzer oder Ihrer IAM-Rolle die folgende IAM-Richtlinie hinzu. Informationen zum Ändern der IAM-Berechtigungen finden Sie unter Ändern der Berechtigungen für einen IAM-Benutzer.
Wichtig
Die von der AgentCore CLI erstellten IAM-Richtlinien sind für Entwicklungs- und Testzwecke konzipiert. Diese Berechtigungen gewähren einen breiten Zugriff, um das schnelle Prototyping zu erleichtern, und sind nicht für Produktionsumgebungen geeignet. Erstellen Sie für Produktionsbereitstellungen benutzerdefinierte IAM-Richtlinien, die dem Prinzip der geringsten Rechte folgen und Berechtigungen nur auf die spezifischen Ressourcen und Aktionen beschränken, die für Ihre Amazon AgentCore Bedrock-Anwendung erforderlich sind. Vollständige Hinweise zur IAM-Sicherheit finden Sie unter Bewährte Sicherheitsmethoden für Runtime. AgentCore
{ "Version":"2012-10-17", "Statement": [ { "Sid": "IAMRoleManagement", "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iam:PutRolePolicy", "iam:DeleteRolePolicy", "iam:AttachRolePolicy", "iam:DetachRolePolicy", "iam:TagRole", "iam:ListRolePolicies", "iam:ListAttachedRolePolicies" ], "Resource": [ "arn:aws:iam::*:role/*BedrockAgentCore*", "arn:aws:iam::*:role/service-role/*BedrockAgentCore*" ] }, { "Sid": "CodeBuildProjectAccess", "Effect": "Allow", "Action": [ "codebuild:StartBuild", "codebuild:BatchGetBuilds", "codebuild:ListBuildsForProject", "codebuild:CreateProject", "codebuild:UpdateProject", "codebuild:BatchGetProjects" ], "Resource": [ "arn:aws:codebuild:*:*:project/bedrock-agentcore-*", "arn:aws:codebuild:*:*:build/bedrock-agentcore-*" ] }, { "Sid": "CodeBuildListAccess", "Effect": "Allow", "Action": [ "codebuild:ListProjects" ], "Resource": "*" }, { "Sid": "IAMPassRoleAccess", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/AmazonBedrockAgentCore*", "arn:aws:iam::*:role/service-role/AmazonBedrockAgentCore*" ] }, { "Sid": "CloudWatchLogsAccess", "Effect": "Allow", "Action": [ "logs:GetLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/bedrock-agentcore/*", "arn:aws:logs:*:*:log-group:/aws/codebuild/*" ] }, { "Sid": "S3Access", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket", "s3:CreateBucket", "s3:PutLifecycleConfiguration" ], "Resource": [ "arn:aws:s3:::bedrock-agentcore-*", "arn:aws:s3:::bedrock-agentcore-*/*" ] }, { "Sid": "ECRRepositoryAccess", "Effect": "Allow", "Action": [ "ecr:CreateRepository", "ecr:DescribeRepositories", "ecr:GetRepositoryPolicy", "ecr:InitiateLayerUpload", "ecr:CompleteLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:ListImages", "ecr:TagResource" ], "Resource": [ "arn:aws:ecr:*:*:repository/bedrock-agentcore-*" ] }, { "Sid": "ECRAuthorizationAccess", "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
Benutzerberechtigungen für Amazon Bedrock Console AgentCore
Hängen Sie die BedrockAgentCoreFullAccessRichtlinie an die Konsolenrolle an. Fügen Sie außerdem die folgenden Berechtigungen für IAM hinzu, wenn die Service Console die Ausführungsrolle automatisch erstellen soll.
{ "Version": "2012-10-17", "Statement": [{ "Sid": "IAMRoleAccess", "Effect": "Allow", "Action": ["iam:CreateRole"], "Resource": ["arn:aws:iam::*:role/service-role/AmazonBedrockAgentCoreRuntimeDefaultServiceRole-*"] }, { "Sid": "IAMPolicyAccess", "Effect": "Allow", "Action": ["iam:CreatePolicy"], "Resource": ["arn:aws:iam::*:policy/service-role/AmazonBedrockAgentCoreRuntimeExecutionPolicy_*"] }, { "Sid": "IAMRolePolicyAccess", "Effect": "Allow", "Action": ["iam:AttachRolePolicy"], "Resource": ["arn:aws:iam::*:role/service-role/AmazonBedrockAgentCoreRuntimeDefaultServiceRole-*"], "Condition": { "ArnLike": { "iam:PolicyARN": "arn:aws:iam::*:policy/service-role/AmazonBedrockAgentCoreRuntimeExecutionPolicy_*" } } }] }
Ausführungsrolle für die Ausführung eines Agenten in Runtime AgentCore
Um einen Agenten oder ein Tool in AgentCore Runtime auszuführen, benötigen Sie eine AWS Identity and Access Management-Ausführungsrolle. Informationen zum Erstellen einer IAM-Rolle finden Sie unter Erstellung einer IAM-Rolle.
Die Ausführungsrolle Amazon Bedrock AgentCore Direct Deploy ist eine IAM-Rolle, die Amazon Bedrock für die Ausführung eines AgentCore Agenten annimmt. Ersetzen Sie Folgendes:
-
us-east-1mit der AWS Region, die Sie verwenden -
123456789012mit Ihrer AWS Konto-ID -
agentNamemit dem Namen Ihres Agenten. Sie müssen den Namen des Agenten festlegen, bevor Sie die Rolle und AgentCore Runtime erstellen.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "logs:DescribeLogStreams", "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/*" ] }, { "Effect": "Allow", "Action": [ "logs:PutResourcePolicy" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/agentName-*" ] }, { "Effect": "Allow", "Action": ["logs:DescribeLogGroups"], "Resource": ["arn:aws:logs:us-east-1:123456789012:log-group:*"] }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/*:log-stream:*" ] }, { "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": ["*"] }, { "Effect": "Allow", "Resource": "*", "Action": "cloudwatch:PutMetricData", "Condition": { "StringEquals": { "cloudwatch:namespace": "bedrock-agentcore" } } }, { "Sid": "BedrockModelInvocation", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/*", "arn:aws:bedrock:us-east-1:123456789012:*" ] }] }
Die AgentCore Runtime-Ausführungsrolle ist eine IAM-Rolle, von der AgentCore Runtime annimmt, dass sie einen Agenten ausführt. Ersetzen Sie Folgendes:
-
us-east-1mit der AWS Region, die Sie verwenden -
123456789012mit Ihrer AWS Konto-ID -
agentNamemit dem Namen Ihres Agenten. Sie müssen den Namen des Agenten festlegen, bevor Sie die Rolle und AgentCore Runtime erstellen.
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ECRImageAccess", "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": [ "arn:aws:ecr:us-east-1:123456789012:repository/*" ] }, { "Effect": "Allow", "Action": [ "logs:DescribeLogStreams", "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/*" ] }, { "Effect": "Allow", "Action": [ "logs:PutResourcePolicy" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/agentName-*" ] }, { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:/aws/bedrock-agentcore/runtimes/*:log-stream:*" ] }, { "Sid": "ECRTokenAccess", "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Resource": "*", "Action": "cloudwatch:PutMetricData", "Condition": { "StringEquals": { "cloudwatch:namespace": "bedrock-agentcore" } } }, { "Sid": "GetAgentAccessToken", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetWorkloadAccessToken", "bedrock-agentcore:GetWorkloadAccessTokenForJWT", "bedrock-agentcore:GetWorkloadAccessTokenForUserId" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:123456789012:workload-identity-directory/default/workload-identity/agentName-*" ] }, {"Sid": "BedrockModelInvocation", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/*", "arn:aws:bedrock:us-east-1:123456789012:*" ] } ] }
AgentCore Runtime-Vertrauensrichtlinie
Die AgentCore Runtime-Ausführungsrolle muss die folgende Vertrauensrichtlinie enthalten, die es der AgentCore Runtime ermöglicht, die Rolle zu übernehmen.
Ersetzen Sie in der Richtlinie:
-
us-east-1durch die AWS Region, die Sie verwenden -
123456789012mit Ihrer AWS Konto-ID
Um die Vertrauensrichtlinie zur AgentCore Runtime-Ausführungsrolle hinzuzufügen, gehen Sie zur AWS Management Console, navigieren Sie zu der Rolle, wählen Sie die Registerkarte Vertrauensbeziehungen und dann Vertrauensrichtlinie bearbeiten aus.
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AssumeRolePolicy", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:*" } } } ] }