View a markdown version of this page

Permisos de IAM para tiempo de ejecución AgentCore - Amazon Bedrock AgentCore

Permisos de IAM para tiempo de ejecución AgentCore

Los siguientes son los permisos de IAM que necesita para crear un agente en un AgentCore entorno de ejecución y los permisos de función de ejecución que un agente necesita para ejecutarse en un AgentCore entorno de ejecución. También puedes usar políticas basadas en recursos para controlar el acceso a tus recursos en tiempo de ejecución.

Para obtener información sobre el uso de políticas basadas en recursos para controlar el acceso a los recursos AgentCore de Runtime, consulte Resource-based las políticas de Amazon Bedrock. AgentCore

Usa Amazon Bedrock AgentCore

Para usar Amazon Bedrock AgentCore, puede adjuntar la política BedrockAgentCoreFullAccess AWS administrada a su usuario o rol de IAM. Esta política AWS gestionada otorga amplios permisosGetWorkloadAccessTokenForUserId, entre los que se incluyen los que permiten emitir tokens de acceso a la carga de trabajo mediante cadenas de identificador de usuario proporcionadas por la persona que llama sin verificación del token de IdP. Te recomendamos crear una política personalizada con solo los permisos que tu aplicación requiere, copiando las declaraciones pertinentes y restringiendo los recursos a tu caso de uso específico. En el caso de las implementaciones de producción en las que la aplicación tenga disponibles los tokens JWT, deniéguelos GetWorkloadAccessTokenForUserId y concédalos únicamente de forma explícita. GetWorkloadAccessTokenForJWT Para obtener más información, consulte Obtener el token de acceso a la carga de trabajo. Para usar la AgentCore CLI, necesita permisos adicionales.

Utilice la AgentCore CLI

Para usar la AgentCore CLI, adjunte la siguiente política de IAM a su usuario o rol de IAM. Para cambiar los permisos de IAM, consulte Cambiar los permisos de un usuario de IAM.

importante

Las políticas de IAM creadas por la AgentCore CLI están diseñadas con fines de desarrollo y pruebas. Estos permisos otorgan un amplio acceso para facilitar la creación rápida de prototipos y no son adecuados para entornos de producción. Para las implementaciones de producción, cree políticas de IAM personalizadas que sigan el principio de privilegios mínimos y restrinja los permisos solo a los recursos y acciones específicos que requiera su aplicación Amazon Bedrock AgentCore . Para obtener una guía completa de seguridad de IAM, consulte las prácticas recomendadas de seguridad para 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": "*" } ] }

Permisos de usuario para Amazon Bedrock Console AgentCore

Adjunte la BedrockAgentCoreFullAccesspolítica al rol de la consola. Además, añada los siguientes permisos para IAM si desea que la consola de servicio cree automáticamente el rol de ejecución.

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

Función de ejecución para ejecutar un agente en tiempo de ejecución AgentCore

Para ejecutar un agente o una herramienta en AgentCore tiempo de ejecución, necesita una función de ejecución de AWS Identity and Access Management. Para obtener información sobre la creación de un rol de IAM, consulte Creación de un rol de IAM.

La función de ejecución de despliegue AgentCore directo de Amazon Bedrock es una función de IAM que Amazon Bedrock AgentCore asume al dirigir un agente. Sustituya lo siguiente:

  • us-east-1con la AWS región que esté utilizando

  • 123456789012con tu ID AWS de cuenta

  • agentNamecon el nombre de su agente. Deberás decidir el nombre del agente antes de crear el rol y 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:*" ] }] }

La función AgentCore de ejecución en tiempo de ejecución es una función de IAM que AgentCore Runtime asume al ejecutar un agente. Sustituya lo siguiente:

  • us-east-1con la AWS región que está utilizando

  • 123456789012con tu ID AWS de cuenta

  • agentNamecon el nombre de su agente. Deberás decidir el nombre del agente antes de crear el rol y 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 Política de confianza en tiempo de ejecución

La función AgentCore de ejecución en tiempo de ejecución debe incluir la siguiente política de confianza, que permite que AgentCore Runtime asuma la función.

En la política, sustituya:

  • us-east-1por la AWS región que está utilizando

  • 123456789012con tu ID AWS de cuenta

Para añadir la política de confianza a la función AgentCore de ejecución en tiempo de ejecución, vaya a la consola de AWS administración, navegue hasta la función, seleccione la pestaña Relaciones de confianza y elija Editar política de confianza.

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