View a markdown version of this page

Seguridad y controles de acceso - Amazon Bedrock AgentCore

Seguridad y controles de acceso

El arnés ofrece las mismas primitivas de seguridad que el resto AgentCore, conectadas por configuración.

  • Ejecución aislada. Cada sesión se ejecuta en su propia microVM Firecracker en tiempo de ejecución. AgentCore Sin estado compartido, sin sistema de archivos compartido.

  • Función de ejecución de IAM. El arnés asume una función de IAM de su propiedad, que se puede configurar para incluir Bedrock, ECR y las primitivas CloudWatch a las AgentCore que afecta. Consulte un ejemplo de política de funciones de ejecución a continuación.

  • Modelo de permisos de IAM. Las API de Harness requieren permisos tanto en el recurso de arnés como en el recurso AgentCore de ejecución subyacente. Por ejemplo, las llamadas InvokeHarness requieren bedrock-agentcore:InvokeHarness tanto como bedrock-agentcore:InvokeAgentRuntime permisos en el ARN del arnés. El mismo patrón se aplica a las operaciones del plano de control: UpdateHarness DeleteHarness requiere bedrock-agentcore:UpdateAgentRuntimebedrock-agentcore:DeleteAgentRuntime, requiere, etc. Consulte la política de funciones de ejecución para ver la lista completa.

  • Soporte OAuth entrante. Los recursos de arnés configurados por JWT requieren que las personas que llaman presenten un JWT válido emitido por un proveedor de identidad configurado antes de poder invocar el arnés. AgentCore La identidad transmite la identidad del usuario final a través del agente, de modo que las herramientas intermedias pueden llamar a las API con credenciales de usuario específicas en lugar de a una cuenta de servicio compartida.

  • VPC. Conecte las sesiones de arnés a su VPC para obtener acceso privado a los recursos internos.

  • Políticas sobre Gateway. Cuando las herramientas se suministran a través de AgentCore Gateway, se pueden configurar Cedar-based políticas para bloquear todas las llamadas: quién puede llamar a qué herramienta, en qué condiciones y con qué argumentos.

nota

SigV4 e identidad por usuario. Cuando las personas que llaman se autentican con SigV4 (AWS IAM), el arnés no propaga la identidad de cada usuario a las llamadas posteriores a las herramientas. Esto significa que las funciones de determinación del alcance de las credenciales por usuario de AgentCore Identity Token Vault, como el almacenamiento de los tokens de OAuth en función del usuario y el intercambio de los mismos en nombre del usuario, solo están disponibles cuando las personas que llaman se autentican con un Bearer JWT a través de la ruta de entrada de OAuth. Si su caso de uso requiere la asignación de credenciales por usuario para las herramientas posteriores, configure el OAuth entrante en el arnés. La compatibilidad con SiGv4 para la identidad por usuario está prevista para una futura versión.

Modelo de responsabilidad compartida

El arnés se basa en Runtime. AgentCore El límite de seguridad es el mismo: autenticación IAM o JWT combinada con aislamiento de microVM. El arnés no añade una capa de seguridad entre la persona que llama y la microVM.

AWS responsabilidades:
  • Infraestructura segura y aislamiento de microVM a nivel de hardware

  • Parcheo del kernel del sistema operativo

  • Parches en tiempo de ejecución del lenguaje para despliegues directos de código

  • Seguridad de la infraestructura de red

  • Disponibilidad y resiliencia del servicio

Sus responsabilidades:
  • Gestión de dependencias y seguridad del código de agente

  • Controles de acceso y políticas de recursos de IAM

  • Seguridad de los comandos ejecutados en las sesiones de ejecución

  • Session-to-user aplicación de la cartografía

  • Validación de entradas y prevención de inyecciones rápidas, incluida la validación de todas las InvokeHarness entradas (consulteLímite de confianza y validación de entradas)

  • Validación de la configuración del modelo: por ejemplo additionalParamsapiBase, y modelId campos (consulteParámetros de configuración del modelo)

  • Fuentes de habilidades e instrucciones: garantizar que los depósitos de S3, los repositorios de Git y las URL utilizadas para las habilidades contengan contenido confiable (consulte) Habilidades e instrucciones

  • Actualizaciones de imágenes de contenedores (para despliegues en contenedores): reconstruya periódicamente con la imagen base segura más reciente

  • Configuración de red (grupos de seguridad, puntos finales de VPC, tablas de enrutamiento)

Para ver el modelo completo AgentCore de responsabilidad compartida en tiempo de ejecución, consulte las prácticas recomendadas de seguridad para AgentCore Runtime.

Límite de confianza y validación de entradas

Todos InvokeHarness y cada uno InvokeAgentRuntimeCommand de los datos son confiables. Cualquier director que pase la puerta de autenticación y autorización de IAM o JWT tiene acceso a toda la sesión de microVM, incluidas las herramientas y capacidades configuradas en el arnés. El arnés no desinfecta las entradas, no filtra los bloques de contenido ni impone restricciones de comportamiento.

Si expone el problema a usuarios finales en los que no confía plenamente (empleados, consumidores externos o integraciones de terceros), valide y desinfecte los mensajes en la capa de aplicación antes de pasárselos. InvokeHarness Esto incluye eliminar los tipos de bloques de contenido o los campos de configuración del modelo que no desee que se envíen. Este es el mismo patrón que cualquier servicio que acepte cargas útiles de usuarios autorizados, como Lambda, Amazon API Gateway y Amazon SQS.

Parámetros de configuración del modelo

El model campo InvokeHarness acepta las configuraciones additionalParams Bedrock, OpenAI y LitellM. Estos parámetros se transmiten al proveedor del modelo subyacente sin cambios. El arnés no valida, filtra ni restringe estos parámetros.

Las personas que llaman y que pueden configurarlo additionalParams pueden:

  • Redirigir las solicitudes a puntos finales arbitrarios: el aws_bedrock_runtime_endpoint parámetro LitellM anula la URL del punto final de Bedrock. La persona que llama puede enrutar la solicitud firmada, incluidas la firma de SigV4 y las credenciales de sesión, a un punto final que se especifique en la configuración del modelo de confianza.

  • Anular los encabezados HTTP: el extra_headers parámetro de OpenAI inserta o anula los encabezados HTTP en la solicitud saliente al proveedor del modelo, incluido el encabezado. Authorization

  • Intente asumir una función de IAM: el aws_role_name parámetro LitellM indica al motor de ejecución que asuma una función de IAM diferente antes de llamar al proveedor del modelo. El intento se realiza correctamente o fracasa en función de los permisos del rol de ejecución. sts:AssumeRole

  • Cambiar el modelo o la región de destino: los apiBase campos modelId y pueden redirigir la inferencia a un modelo, región o proveedor completamente diferente.

Si su aplicación expone InvokeHarness las capacidades a personas que llaman en las que no confía plenamente, considere la posibilidad de implementar la validación de entradas en su capa de aplicación. Entre los ejemplos se incluyen:

  • Eliminar o permitir incluir el campo en una lista antes de reenviar las solicitudes model

  • Validar o eliminar, y additionalParams apiBase modelId

  • Denegar la sts:AssumeRole función de ejecución si no es necesario cambiar de función

  • Definir el alcance del acceso a la red mediante grupos de seguridad de VPC

Habilidades e instrucciones

Las habilidades son paquetes de anotaciones y scripts que el arnés obtiene de Amazon S3 o Git en el momento de la invocación y los inyecta en el contexto del agente. El arnés trata todo el contenido de las habilidades como información fiable. No valida, desinfecta ni inspecciona el contenido o la fuente de las habilidades antes de proporcionárselas al agente.

Su responsabilidad incluye:

  • Garantizar que las fuentes de habilidades (depósitos de S3, repositorios de Git, URL) sean confiables y tengan acceso controlado

  • Revise el contenido de las habilidades, incluidas las instrucciones de rebajas y cualquier script incorporado, antes de configurarlas en el arnés

  • Controlar qué principales pueden anular el skills campo por invocación, ya que las personas que llaman pueden apuntar el arnés a fuentes arbitrarias de S3 o Git

Las habilidades se pueden anular por llamada. InvokeHarness Si la aplicación reenvía la información proporcionada por la persona que llama aInvokeHarness, la persona que llama puede proporcionar sus propias fuentes de habilidades que contengan instrucciones o scripts arbitrarios. Algunos ejemplos de mitigaciones son:

  • Eliminar o ignorar el skills campo de las solicitudes enviadas por las personas que llaman

  • Permitir incluir prefijos S3 o repositorios Git permitidos

Observabilidad y correlación de trazas

El arnés propaga automáticamente los identificadores de correlación a las AgentCore primitivas posteriores (puerta de enlace, memoria, intérprete de código, navegador) para permitir la entrada de vistas de rastreo unificadas. CloudWatch Estos identificadores se utilizan únicamente para la observabilidad; nunca se utilizan para decidir sobre la autorización o el acceso a los datos.

Configuración de red

De forma predeterminada, las sesiones de arnés se ejecutan en la red pública. Para acceder a los recursos privados (bases de datos, API internas, subredes privadas), implemente el arnés en su VPC.

ejemplo
AWS CLI/boto3
aws bedrock-agentcore-control create-harness \ --harness-name "VpcHarness" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \ --environment '{"agentCoreRuntimeEnvironment": {"networkConfiguration": {"networkMode": "VPC", "vpcConfig": {"securityGroupIds": ["sg-0abc1234def56789a"], "subnetIds": ["subnet-0abc1234def56789a"]}}}}'
AgentCore CLI
agentcore add harness --name internal-agent \ --network-mode VPC \ --subnets subnet-0abc1234def56789a \ --security-groups sg-0abc1234def56789a agentcore deploy
importante

El arnés extrae su contenedor de aplicaciones de Amazon ECR Public al inicio de cada sesión. Cuando se ejecuta en modo VPC, la VPC debe permitir el acceso saliente a. public.ecr.aws Amazon ECR Public no admite puntos de enlace de VPC, por lo que su VPC debe tener una puerta de enlace NAT con una ruta a una puerta de enlace de Internet. Si esta conectividad no está disponible, las sesiones no se iniciarán debido a los tiempos de espera para extraer imágenes.

Para obtener instrucciones adicionales sobre la configuración de la red, consulte Configurar el AgentCore tiempo de ejecución y la configuración de la VPC de las herramientas integradas. Para obtener información sobre la conectividad API entrante a través de PrivateLink, consulte los puntos finales de la interfaz de VPC.

OAuth entrante

Exija a las personas que llaman que presenten un JWT válido emitido por un proveedor de identidad configurado antes de poder invocar el arnés. AgentCore La identidad transmite la identidad del usuario final a través del agente, de modo que las herramientas intermedias pueden llamar a las API con credenciales de usuario específicas en lugar de a una cuenta de servicio compartida.

ejemplo
AWS CLI/boto3
aws bedrock-agentcore-control create-harness \ --harness-name "OAuthHarness" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \ --authorizer-configuration '{"customJWTAuthorizer": {"discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/<POOL_ID>/.well-known/openid-configuration", "allowedClients": ["<CLIENT_ID>"]}}'

Invoca con un token de portador en lugar de con las credenciales de SigV4:

curl -X POST "https://bedrock-agentcore.us-west-2.amazonaws.com/harnesses/invoke?harnessArn=${HARNESS_ARN}" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${ID_TOKEN}" \ -H "X-Amzn-Bedrock-AgentCore-Runtime-Session-Id: $(uuidgen)" \ -d '{"messages": [{"role": "user", "content": [{"text": "Hi"}]}]}'
AgentCore CLI
agentcore add harness --name MyNewHarness \ --authorizer-type CUSTOM_JWT \ --discovery-url {DISCOVERY_URL} \ --allowed-clients {CLIENT_ID} agentcore deploy

Invoca con un token de portador:

agentcore invoke --harness MyNewHarness --bearer-token "{token}" "Hello"

Cuando solo se pueda acceder al punto final de detección del OIDC de su proveedor de identidad PrivateLink, añada indicadores de punto final privado al autorizador CUSTOM_JWT. Utilice un punto final de VPC gestionado por el servicio:

agentcore add harness --name MyNewHarness \ --authorizer-type CUSTOM_JWT \ --discovery-url {DISCOVERY_URL} \ --allowed-clients {CLIENT_ID} \ --private-endpoint-vpc-id vpc-0abc1234def56789a \ --private-endpoint-subnets subnet-0abc1234def56789a,subnet-0def5678abc12349b \ --private-endpoint-ip-type IPV4 \ --private-endpoint-security-groups sg-0abc1234def56789a agentcore deploy

O apunte a una configuración de recursos de VPC Lattice existente en lugar de a un punto final de VPC administrado:

agentcore add harness --name MyNewHarness \ --authorizer-type CUSTOM_JWT \ --discovery-url {DISCOVERY_URL} \ --allowed-clients {CLIENT_ID} \ --private-endpoint-lattice-arn rcfg-0abc1234def56789a agentcore deploy
nota

Los indicadores de punto final privado solo son válidos con. --authorizer-type CUSTOM_JWT --private-endpoint-vpc-idy --private-endpoint-lattice-arn se excluyen mutuamente: elija uno. Con--private-endpoint-vpc-id, ambos --private-endpoint-subnets y --private-endpoint-ip-type (IPV4oIPV6) son obligatorios.

Consulta el autorizador JWT entrante para ver el flujo completo de configuración de OAuth.

Interactive

Ejecute agentcore en un directorio de proyectos, seleccione añadir, elija Harness y avance a la configuración avanzada. Habilite la autenticación (y la red para el acceso a la VPC) con Space y, a continuación, presione Entrar.

  1. Elige el tipo de autorizador: AWS IAM (predeterminado) o JWT personalizado para la autenticación de portador-token del OIDC.

    Seleccione el tipo de autorizador de arnés
  2. Para el JWT personalizado, introduzca la URL de detección del OIDC.

    Configure el JWT personalizado: URL de descubrimiento
  3. Seleccione qué restricciones de token desea validar: audiencias permitidas, clientes permitidos, ámbitos permitidos o notificaciones personalizadas.

    Seleccione las restricciones de JWT para configurarlas
  4. Elija la forma en que el arnés llega al punto final de detección de IdP: ninguno (accesible públicamente), un recurso de red de VPC o un punto final de VPC gestionado (). PrivateLink

    PrivateLink opciones para el punto final de detección de IdP
  5. Para Red, elija el modo VPC y proporcione los ID de subred y los ID de los grupos de seguridad.

    Introduce los ID de subred de VPC

Confirme el asistente y, a continuación, ejecútelo agentcore deploy para aplicarlo.

Más información: AgentCore Identidad · autorizador JWT entrante · credenciales salientes

Políticas de pasarela

Cuando las herramientas se suministran a través de AgentCore Gateway, Cedar-based las políticas controlan todas las llamadas: quién puede llamar a qué herramienta, en qué condiciones y con qué argumentos.

Más información: AgentCore Política · patrones comunes

Política de roles de ejecución

El arnés asume una función de ejecución de IAM que usted proporcione. La política de confianza del rol debe permitir que el director del AgentCore servicio lo asuma:

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

Permisos de IAM necesarios para las personas que llaman

Las API de Harness requieren permisos tanto en el recurso de arnés como en los recursos de AgentCore tiempo de ejecución subyacentes y de AgentCore memoria opcionales. En la siguiente tabla se enumeran las acciones necesarias para cada API:

API Acciones obligatorias

InvokeHarness

bedrock-agentcore:InvokeHarness, bedrock-agentcore:InvokeAgentRuntime

InvokeAgentRuntimeCommand

bedrock-agentcore:InvokeAgentRuntimeCommand, bedrock-agentcore:InvokeAgentRuntime

CreateHarness

bedrock-agentcore:CreateHarness, bedrock-agentcore:CreateAgentRuntime, bedrock-agentcore:CreateMemory

UpdateHarness

bedrock-agentcore:UpdateHarness, bedrock-agentcore:UpdateAgentRuntime, bedrock-agentcore:UpdateMemory

DeleteHarness

bedrock-agentcore:DeleteHarness, bedrock-agentcore:DeleteAgentRuntime, bedrock-agentcore:DeleteMemory

GetHarness

bedrock-agentcore:GetHarness

ListHarnesses

bedrock-agentcore:ListHarnesses

CreateHarnessEndpoint

bedrock-agentcore:CreateHarnessEndpoint, bedrock-agentcore:CreateAgentRuntimeEndpoint

UpdateHarnessEndpoint

bedrock-agentcore:UpdateHarnessEndpoint, bedrock-agentcore:UpdateAgentRuntimeEndpoint

DeleteHarnessEndpoint

bedrock-agentcore:DeleteHarnessEndpoint, bedrock-agentcore:DeleteAgentRuntimeEndpoint

GetHarnessEndpoint

bedrock-agentcore:GetHarnessEndpoint

ListHarnessEndpoints

bedrock-agentcore:ListHarnessEndpoints

ListHarnessVersions

bedrock-agentcore:ListHarnessVersions

La mayoría de las acciones utilizan el ARN del arnés como alcance del recurso:. arn:aws:bedrock-agentcore:<region>:<accountId>:harness/<id> Las acciones de punto final también utilizan el ARN del punto final de arnés:. arn:aws:bedrock-agentcore:<region>:<accountId>:harness/<id>/harness-endpoint/<endpointName>

Las DeleteHarnessEndpoint acciones GetHarnessEndpointUpdateHarnessEndpoint, y requieren tanto el ARN del arnés como el ARN del punto final. CreateHarnessEndpointsolo requiere el ARN del arnés. El punto final aún no existe, por lo que no se necesita un ARN del punto final. Cuando se invoca un punto final personalizado InvokeHarness y se InvokeAgentRuntimeCommand requieren tanto el ARN del arnés como el ARN del punto final.

Ejemplo de política de funciones de ejecución

{ "Version": "2012-10-17", "Statement": [ { "Sid": "BedrockModelInvocation", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/*", "arn:aws:bedrock:<region>:<accountId>:*" ] }, { "Sid": "EcrPublicTokenAccess", "Effect": "Allow", "Action": [ "ecr-public:GetAuthorizationToken" ], "Resource": "*" }, { "Sid": "StsForEcrPublicPull", "Effect": "Allow", "Action": [ "sts:GetServiceBearerToken" ], "Resource": "*" }, { "Sid": "XRayTracingAccess", "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": "*" }, { "Sid": "CloudWatchLogsGroup", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:DescribeLogStreams" ], "Resource": "arn:aws:logs:<region>:<accountId>:log-group:/aws/bedrock-agentcore/runtimes/*" }, { "Sid": "CloudWatchLogsDescribeGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": "arn:aws:logs:<region>:<accountId>:log-group:*" }, { "Sid": "CloudWatchLogsStream", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:<region>:<accountId>:log-group:/aws/bedrock-agentcore/runtimes/*:log-stream:*" }, { "Sid": "CloudWatchMetricsPublish", "Effect": "Allow", "Resource": "*", "Action": "cloudwatch:PutMetricData", "Condition": { "StringEquals": { "cloudwatch:namespace": "bedrock-agentcore" } } }, { "Sid": "AgentCoreWorkloadIdentity", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetWorkloadAccessToken", "bedrock-agentcore:GetWorkloadAccessTokenForJWT" ], "Resource": [ "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default/workload-identity/harness_<agentName>-*" ] }, { "Sid": "AgentCoreBrowserDefault", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartBrowserSession", "bedrock-agentcore:StopBrowserSession", "bedrock-agentcore:GetBrowserSession", "bedrock-agentcore:ListBrowserSessions", "bedrock-agentcore:UpdateBrowserStream", "bedrock-agentcore:ConnectBrowserAutomationStream", "bedrock-agentcore:ConnectBrowserLiveViewStream" ], "Resource": "arn:aws:bedrock-agentcore:<region>:aws:browser/*" }, { "Sid": "AgentCoreCodeInterpreterDefault", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession", "bedrock-agentcore:GetCodeInterpreterSession", "bedrock-agentcore:ListCodeInterpreterSessions", "bedrock-agentcore:InvokeCodeInterpreter" ], "Resource": "arn:aws:bedrock-agentcore:<region>:aws:code-interpreter/*" } ] }

La AgentCore CLI crea un rol con estos permisos automáticamente cuando se estructura un proyecto de arnés. La política anterior es para los casos en los que usted mismo crea el rol.

nota

El BedrockModelInvocation ejemplo de declaración anterior permite invocar todos los modelos básicos de todas las regiones y todos los recursos de Bedrock de tu cuenta. Para reducirlo, sustituya los ARN de los recursos por perfiles de inferencia específicos, que le permiten enrutar las solicitudes entre modelos y regiones con un solo ARN. Por ejemplo: arn:aws:bedrock:<destination_regions>:<accountId>:inference-profile/<profileId> combinados con todas las regiones permitidas. arn:aws:bedrock:<region>:<accountId>:foundation-model/<modelId>

En el caso de las cargas de trabajo de producción, Resource limite los valores a los ARN específicos que necesite su arnés, en lugar de utilizar. "*"

Permisos adicionales para funciones opcionales

A continuación, se muestran ejemplos de políticas que puede añadir a su función de ejecución en función de las funciones que utilice su arnés. Siga el principio del mínimo privilegio: conceda a su agente de arneses únicamente las herramientas y credenciales específicas que necesite para realizar inferencias. Consulte las definiciones Referencia de marcador de posición de los marcadores de posición.

Acceso privado al ECR (imágenes de contenedores personalizadas)

Añada esta política cuando su arnés utilice una imagen ECR privada para un contenedor personalizado.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ECRImageAccess", "Effect": "Allow", "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:<ecrRegion>:<ecrAccountId>:repository/<ecrRepoName>" }, { "Sid": "ECRTokenAccess", "Effect": "Allow", "Action": "ecr:GetAuthorizationToken", "Resource": "*" } ] }

AgentCore Memoria

Añada esta política cuando su arnés utilice una instancia de memoria propiedad del cliente.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreMemory", "Effect": "Allow", "Action": [ "bedrock-agentcore:CreateEvent", "bedrock-agentcore:DeleteEvent", "bedrock-agentcore:GetEvent", "bedrock-agentcore:ListEvents", "bedrock-agentcore:RetrieveMemoryRecords" ], "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:memory/<memoryId>" } ] }

AgentCore Navegador (personalizado)

Añada esta política cuando su arnés utilice un recurso de navegador personalizado propiedad del cliente.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreBrowserCustom", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartBrowserSession", "bedrock-agentcore:StopBrowserSession", "bedrock-agentcore:GetBrowserSession", "bedrock-agentcore:ListBrowserSessions", "bedrock-agentcore:UpdateBrowserStream", "bedrock-agentcore:ConnectBrowserAutomationStream", "bedrock-agentcore:ConnectBrowserLiveViewStream" ], "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:browser-custom/<browserCustomId>" } ] }

AgentCore Intérprete de código (personalizado)

Añada esta política cuando su arnés utilice un intérprete de código personalizado propiedad del cliente.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreCodeInterpreterCustom", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession", "bedrock-agentcore:GetCodeInterpreterSession", "bedrock-agentcore:ListCodeInterpreterSessions", "bedrock-agentcore:InvokeCodeInterpreter" ], "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:code-interpreter-custom/<codeInterpreterCustomId>" } ] }

AgentCore Gateway

Añada esta política cuando su arnés utilice una puerta de enlace configurada con la autenticación entrante SigV4.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreGatewayAccess", "Effect": "Allow", "Action": "bedrock-agentcore:InvokeGateway", "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:gateway/<gatewayId>" } ] }

Fuentes de habilidades en Amazon S3 y Git

Añada esta política cuando su arnés obtenga una habilidad de una fuente de Amazon S3. La función de ejecución muestra y descarga los objetos de habilidad bajo el prefijo bucket.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreSkillS3Access", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<skillBucket>", "arn:aws:s3:::<skillBucket>/*" ] } ] }

Para obtener una habilidad de un repositorio Git privado, el arnés lee un token de acceso personal de un proveedor de credenciales de clave API. Aplica la política de proveedores de credenciales de clave de API que se muestra a continuación para el proveedor de credenciales que posea el token.

Proveedor de credenciales de clave de API (referencias ARN de encabezado OpenAI, Gemini, LitellM o MCP)

Añada esta política cuando su arnés utilice un proveedor de credenciales de clave de API para proveedores de modelos como OpenAI, Gemini o LitellM.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreApiKeyTokenVaultDefault", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceApiKey", "Resource": [ "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default/workload-identity/harness_<agentName>-*" ] }, { "Sid": "AgentCoreApiKeyTokenVaultPerKey", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceApiKey", "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default/apikeycredentialprovider/<apiKeyName>" }, { "Sid": "AgentCoreApiKeySecret", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:<region>:<accountId>:secret:bedrock-agentcore-identity!default/apikey/<apiKeyName>-*" } ] }

Proveedor de credenciales OAuth2 (Gateway) OAuth-protected

Agregue esta política cuando su arnés utilice un proveedor de credenciales OAuth2 para las herramientas de puerta de enlace. OAuth-protected

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreOAuth2TokenVaultDefault", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceOauth2Token", "Resource": [ "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default/workload-identity/harness_<agentName>-*" ] }, { "Sid": "AgentCoreOAuth2TokenVaultPerProvider", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceOauth2Token", "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default/oauth2credentialprovider/<oauthProviderName>" }, { "Sid": "AgentCoreOAuth2Secret", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:<region>:<accountId>:secret:bedrock-agentcore-identity!default/oauth2/<oauthProviderName>-*" } ] }

Referencia de marcador de posición

Sustituya los siguientes marcadores de posición de las políticas anteriores por valores específicos de su entorno:

Placeholder Description (Descripción)

<region>

La AWS región en la que está desplegado el recurso.

<accountId>

El ID AWS de su cuenta.

<agentName>

El nombre de su agente de arneses.

<memoryId>

El ID del recurso AgentCore de memoria.

<browserCustomId>

El ID del recurso de navegador personalizado.

<codeInterpreterCustomId>

El ID de su recurso de intérprete de código personalizado.

<gatewayId>

El ID de su recurso de AgentCore Gateway.

<apiKeyName>

El nombre de su proveedor de credenciales de clave de API.

<skillBucket>

El nombre del depósito de S3 que contiene tus archivos de habilidades.

<oauthProviderName>

El nombre de su proveedor de credenciales de OAuth2.

<ecrRegion>

La región en la que está alojado su repositorio de ECR.

<ecrAccountId>

El ID AWS de cuenta propietario del repositorio de ECR.

<ecrRepoName>

El nombre de su repositorio de ECR.

nota

Los últimos recursos -* de Secrets Manager representan el sufijo aleatorio que Secrets Manager añade a los ARN secretos.