View a markdown version of this page

Autorisations IAM pour Runtime AgentCore - Amazon Bedrock AgentCore

Autorisations IAM pour Runtime AgentCore

Les autorisations IAM dont vous avez besoin pour créer un agent dans un AgentCore environnement d'exécution et les autorisations de rôle d'exécution dont un agent a besoin pour s'exécuter dans un AgentCore environnement d'exécution sont les suivantes. Vous pouvez également utiliser des politiques basées sur les ressources pour contrôler l'accès à vos ressources d'exécution.

Pour plus d'informations sur l'utilisation de politiques basées sur les ressources pour contrôler l'accès à vos ressources AgentCore d'exécution, consultez Resource-based les politiques d'Amazon Bedrock. AgentCore

Utilisez Amazon Bedrock AgentCore

Pour utiliser Amazon Bedrock AgentCore, vous pouvez associer la politique BedrockAgentCoreFullAccess AWS gérée à votre utilisateur IAM ou à votre rôle IAM. Cette politique AWS gérée accorde des autorisations étenduesGetWorkloadAccessTokenForUserId, notamment celle qui permet d'émettre des jetons d'accès à la charge de travail à l'aide de chaînes d'identification utilisateur fournies par l'appelant sans vérification du jeton IdP. Nous vous recommandons de créer une politique personnalisée avec uniquement les autorisations requises par votre application en copiant les instructions pertinentes et en limitant les ressources à votre cas d'utilisation spécifique. Pour les déploiements de production dans lesquels votre application dispose de jetons JWT, refusez explicitement GetWorkloadAccessTokenForUserId et accordez uniquement. GetWorkloadAccessTokenForJWT Pour plus d'informations, voir Obtenir un jeton d'accès à la charge de travail. Pour utiliser la AgentCore CLI, vous avez besoin d'autorisations supplémentaires.

Utiliser la AgentCore CLI

Pour utiliser la AgentCore CLI, associez la politique IAM suivante à votre utilisateur ou rôle IAM. Pour modifier les autorisations IAM, voir Modifier les autorisations d'un utilisateur IAM.

Important

Les politiques IAM créées par la AgentCore CLI sont conçues à des fins de développement et de test. Ces autorisations accordent un accès étendu pour faciliter le prototypage rapide et ne sont pas adaptées aux environnements de production. Pour les déploiements de production, créez des politiques IAM personnalisées qui respectent le principe du moindre privilège et limitent les autorisations aux seules ressources et actions spécifiques requises par votre application Amazon AgentCore Bedrock. Pour obtenir des conseils complets sur la sécurité IAM, consultez la section Meilleures pratiques de sécurité pour AgentCore Runtime.

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

Autorisations utilisateur pour Amazon Bedrock Console AgentCore

Associez la BedrockAgentCoreFullAccesspolitique au rôle de console. Ajoutez également les autorisations suivantes pour IAM si vous souhaitez que la console de service crée automatiquement le rôle d'exécution.

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

Rôle d'exécution pour exécuter un agent dans AgentCore Runtime

Pour exécuter un agent ou un outil dans AgentCore Runtime, vous avez besoin d'un rôle d'exécution AWS Identity and Access Management. Pour plus d'informations sur la création d'un rôle IAM, consultez la section Création d'un rôle IAM.

Le rôle d'exécution du déploiement AgentCore direct d'Amazon Bedrock est un rôle IAM qu'Amazon Bedrock AgentCore assume pour exécuter un agent. Remplacez les éléments suivants :

  • us-east-1avec la AWS région que vous utilisez

  • 123456789012avec votre identifiant AWS de compte

  • agentNameavec le nom de votre agent. Vous devez choisir le nom de l'agent avant de créer le rôle et le AgentCore Runtime.

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

Le rôle AgentCore d'exécution Runtime est un rôle IAM que AgentCore Runtime suppose d'exécuter un agent. Remplacez les éléments suivants :

  • us-east-1avec la AWS région que vous utilisez

  • 123456789012avec votre identifiant AWS de compte

  • agentNameavec le nom de votre agent. Vous devez choisir le nom de l'agent avant de créer le rôle et le AgentCore Runtime.

{ "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 Politique de confiance en matière d'exécution

Le rôle AgentCore d'exécution du Runtime doit inclure la politique de confiance suivante qui permet au AgentCore Runtime d'assumer le rôle.

Dans la politique, remplacez :

  • us-east-1avec la AWS région que vous utilisez

  • 123456789012avec votre identifiant AWS de compte

Pour ajouter la politique de confiance au rôle AgentCore d'exécution du Runtime, accédez à la console de AWS gestion, accédez au rôle, choisissez l'onglet Relations de confiance, puis choisissez Modifier la politique de confiance.

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