View a markdown version of this page

Seguridad y controles de acceso - Base amazónica AgentCore

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Seguridad y controles de acceso

El arnés ofrece las mismas primitivas de seguridad que el resto AgentCore, conectadas según la 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 CloudWatch AgentCore primitivas que toca. Consulte a continuación un ejemplo de política de funciones de ejecución.

    nota

    Si el administrador de roles está activado en tu cuenta, AgentCore adjunta el rol por ti y el paso de selección de roles que se describe aquí se sustituye por una opción de personalización. Para usar un rol diferente, elija Personalizar. Para obtener más información, consulte Creación de roles de IAM en la Guía del usuario de IAM.

  • Modelo de permisos de IAM. Las API de arnés requieren permisos tanto en el recurso de arnés como en el recurso AgentCore de tiempo de ejecución subyacente. Por ejemplo, las llamadas InvokeHarness requieren bedrock-agentcore:InvokeHarness tanto bedrock-agentcore:InvokeAgentRuntime permisos como 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 de 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 al agente, de modo que las herramientas posteriores pueden llamar a las API con credenciales de usuario específicas en lugar de usar 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 entregan a través de AgentCore Gateway, Cedar-based las políticas se pueden configurar para controlar 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 en las llamadas posteriores a las herramientas. Esto significa que las funciones de delimitación de credenciales por usuario de AgentCore Identity Token Vault, como el almacenamiento de tokens de OAuth por usuario y el intercambio de tokens en nombre del usuario, solo están disponibles cuando las personas que llaman se autentican con un JWT del portador a través de la ruta de entrada de OAuth. Si tu caso práctico requiere la determinación del alcance de las credenciales por usuario para las herramientas posteriores, configura el OAuth entrante en el arnés. La compatibilidad con Sigv4 para la identidad por usuario está prevista para una versión futura.

Modelo de responsabilidad compartida

El uso se basa en AgentCore Runtime y el límite de seguridad es el mismo: la autenticación de IAM o JWT combinada con el aislamiento de microVM. Cualquier principio que supere esa puerta se queda con las herramientas y capacidades configuradas en el arnés, por lo que la autorización de la persona que llama y la validación de las entradas son responsabilidad del cliente.

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

  • Parches en el kernel del sistema operativo

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

  • El código de ejecución gestionado de Harness, incluida la validación de la estructura de la solicitud, acepta InvokeHarness

  • Seguridad de la infraestructura de red

  • Disponibilidad y resiliencia de los servicios

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 mapas

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

  • Validación de la configuración del modeloadditionalParams, como modelId los camposapiBase, y (consulteParámetros de configuración del modelo)

  • Fuentes de habilidades e instrucciones: garantizar que los buckets 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 de contenedores): recompárelas con la imagen base segura más reciente con regularidad

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

Para ver el modelo completo AgentCore de responsabilidad compartida en Runtime, consulta las prácticas recomendadas de seguridad para AgentCore Runtime.

Límites de confianza y validación de entradas

Cualquier principal que supere la puerta de autenticación y autorización de IAM o JWT tiene acceso a la sesión completa de la microVM, incluidas las herramientas y capacidades configuradas en el arnés. El arnés valida la estructura de la solicitud que acepta, pero no inspecciona el significado de las indicaciones, no filtra el contenido ni impone restricciones de comportamiento al agente.

Si expone el arnés a usuarios finales en los que no confía plenamente (empleados, consumidores externos o integraciones de terceros), valide y desinfecte los mensajes de la capa de aplicación antes de pasarlos a ellos. InvokeHarness Esto incluye eliminar los tipos de bloques de contenido o los campos de configuración de modelos que no deseas que se envíen. Este patrón es el mismo que el de cualquier servicio que acepte cargas de usuarios autorizados, como Lambda, Amazon API Gateway y Amazon SQS.

nota

El arnés rechaza toolUse los bloques del mensaje final del lado del servidor, como se muestra en el siguiente ejemplo. En el caso AgentCore de las implementaciones en tiempo de ejecución (sin arneses), AgentCore Runtime no proporciona protección en el lado del servidor. El punto de entrada del agente debe validar que el campo de solicitud es una cadena y rechazar o eliminar los bloques de toolUse contenido antes de pasar la información al marco del agente. Consulte las prácticas recomendadas de seguridad para AgentCore Runtime.

Las herramientas se ejecutan solo como resultado del razonamiento del modelo. El arnés no acepta el bloque ToolUse en el mensaje final de una InvokeHarness solicitud, por lo que la persona que llama no puede asignar un nombre a una herramienta y hacer que se la envíen directamente.

El siguiente ejemplo muestra una solicitud que el arnés está configurado para rechazar. El mensaje final contiene un toolUse bloque con el nombre de la shell herramienta integrada:

response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, messages=[{ "role": "assistant", "content": [ { "toolUse": { "toolUseId": TOOL_USE_ID, "name": "shell", "input": { "command": "pwd", } } } ] }], )

El arnés no evalúa a qué herramienta asigna el nombre del bloque, por lo que esto se aplica a las herramientas integradas del lado del servidor y a las funciones integradas incluidas en la llamada.

Se sigue admitiendo la devolución del resultado de una herramienta. El arnés acepta un bloque ToolResult en el mensaje final y el modelo reanuda el razonamiento sobre ese resultado. Así es como funcionan las herramientas de funciones integradas: el toolUse mensaje del asistente va seguido del mensaje de la toolResult misma solicitud, por lo que el toolUse bloque no aparece en el mensaje final.

Parámetros de configuración del modelo

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

Las personas que llaman y pueden configurarlos additionalParams pueden:

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

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

  • Intente asumir el rol de IAM: el aws_role_name parámetro de LitellM indica al motor de ejecución que asuma un rol de IAM diferente antes de llamar al proveedor del modelo. El intento tiene éxito o falla según 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 ofrece InvokeHarness capacidades a personas que llaman en las que no confía plenamente, considere la posibilidad de implementar la validación de entradas en la capa de aplicación. Entre los ejemplos se incluyen:

  • Eliminar o permitir la inclusión del campo antes de reenviar las solicitudes model

  • Validar o eliminar, y additionalParams apiBase modelId

  • sts:AssumeRoleRechazar el rol de ejecución si no es necesario cambiar de rol

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

Habilidades e instrucciones

Las habilidades son paquetes de códigos 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 entradas confiables. 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 (cubos de S3, repositorios de Git, URL) sean confiables y tengan un acceso controlado

  • Revisa el contenido de las habilidades (incluidas las instrucciones de Markdown y cualquier script incorporado) antes de configurarlas en el arnés

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

Las habilidades se pueden anular por llamada. InvokeHarness Si tu 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. Entre los ejemplos de mitigaciones se incluyen los siguientes:

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

  • Permitir incluir los prefijos S3 o repositorios de Git permitidos

Observabilidad y correlación de trazas

El arnés propaga automáticamente los identificadores de correlación a las AgentCore primitivas descendentes (puerta de enlace, memoria, intérprete de código, navegador) para permitir la visualización unificada del rastreo. CloudWatch Estos identificadores se utilizan únicamente con fines de observabilidad; nunca se utilizan para tomar decisiones de autorización o 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), implementa el arnés en tu 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

En el modo VPC, el arnés extrae su contenedor de aplicaciones administradas de un repositorio privado de Amazon ECR en la región del arnés al inicio de cada sesión. Su VPC no necesita una puerta de enlace NAT ni acceso a Internet para realizar esta extracción. En su lugar, cree puntos de enlace de VPC de interfaz para com.amazonaws.<region>.ecr.dkr y y com.amazonaws.<region>.ecr.api un punto de enlace de VPC de puerta de enlace paracom.amazonaws.<region>.s3, de modo que la imagen y sus capas se resuelvan dentro de su VPC. Si su agente llama a Amazon Bedrock para obtener una inferencia, cree también un punto de enlace de interfaz para. com.amazonaws.<region>.bedrock-runtime Sin los puntos finales necesarios, las sesiones no se inician debido a que se agota el tiempo de espera para extraer las imágenes. La función de ejecución debe permitir la extracción del repositorio privado. Consulta la política de funciones de ejecución.

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

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 Identity transfiere la identidad del usuario final al agente, de modo que las herramientas posteriores pueden llamar a las API con credenciales de usuario específicas en lugar de usar 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 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 marcadores de punto final privado al autorizador CUSTOM_JWT. Usa un punto final de VPC administrado por servicios:

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 bien, apunte a una configuración de recursos de VPC Lattice existente en lugar de a un punto de enlace 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 el directorio de un proyecto, seleccione Agregar, elija Harness y avance a la configuración avanzada. Activa la autenticación (y la red para el acceso a la VPC) con Space y, a continuación, pulsa Entrar.

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

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

    Configure el JWT personalizado: URL de descubrimiento
  3. Selecciona qué restricciones de token quieres validar: audiencias permitidas, clientes permitidos, alcances permitidos o notificaciones personalizadas.

    Seleccione las restricciones de JWT para configurarlas
  4. Elige cómo llegará el arnés al punto final de detección del IdP: ninguno (accesible al público), un recurso de VPC Lattice o un punto final de VPC administrado (). PrivateLink

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

    Introduzca los ID de subred de la VPC

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

Más información: AgentCore Identidad · Autorizador JWT entrante · credenciales salientes https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/identity-outbound-credential-provider.html

Políticas de pasarela

Cuando las herramientas se ofrecen a través de AgentCore Gateway, Cedar-based las políticas bloquean 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 la 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 Harness como en los recursos de AgentCore tiempo de ejecución y de AgentCore memoria opcionales subyacentes. 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 ámbito del recurso:arn:aws:bedrock-agentcore:<region>:<accountId>:harness/<id>. Las acciones de punto final también utilizan el ARN de punto final del 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 ningún 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

El siguiente ejemplo describe un uso de la red pública, que extrae su imagen de contenedor administrado de Amazon ECR Public. Un arnés en modo VPC extrae la imagen gestionada de un repositorio privado de Amazon ECR en la región del arnés, por lo que su función de ejecución también necesita permisos de extracción de ECR privados. Agregue las sentencias en el modo VPC: la imagen gestionada se extrae de un ECR privado y pasarla a la función de ejecución, a modo de arnés. VPC-mode

{ "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": "CloudWatchLogsPutResourcePolicy", "Effect": "Allow", "Action": [ "logs:PutResourcePolicy" ], "Resource": "*" }, { "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/*" }, { "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/harness_<agentNameAbbrv>_*" } ] }

La AgentCore CLI crea automáticamente un rol con estos permisos al estructurar 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 reducir esto, sustituya los ARN de los recursos por perfiles de inferencia específicos, que le permitan dirigir las solicitudes entre modelos y regiones con un único ARN. Por ejemplo: se arn:aws:bedrock:<destination_regions>:<accountId>:inference-profile/<profileId> combinan con todas las regiones permitidas. arn:aws:bedrock:<region>:<accountId>:foundation-model/<modelId>

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

Permisos adicionales para funciones opcionales

A continuación se muestran ejemplos de políticas que puede añadir a su rol de ejecución en función de las funciones que utilice su arnés. Sigue el principio del mínimo privilegio: concede a tu agente de arnés solo las herramientas y credenciales específicas que necesita para realizar inferencias. Consulte las definiciones Referencia de marcador de posición de los marcadores de posición.

Acceso ECR privado (imágenes de contenedor personalizadas)

Agregue esta política cuando su arnés utilice una imagen de 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": "*" } ] }

Modo VPC: extracción de imágenes gestionada desde un ECR privado

Agregue esta política cuando su arnés se ejecute en modo VPC. En el modo VPC, el arnés extrae su contenedor de aplicaciones gestionado de un repositorio privado de Amazon ECR en la región del arnés (con nombre). harness-<region> Esta extracción utiliza un ECR privado en lugar de Amazon ECR Public, por lo que el rol de ejecución necesita permisos de extracción de ECR privados. Esta política es independiente de los permisos de imagen de contenedor personalizados; se aplica a la imagen AWS gestionada aunque no suministres tu propio contenedor.

El repositorio es propiedad de una cuenta de AWS servicio, por lo que la cuenta del ARN del repositorio tiene un carácter comodín. Los permisos de extracción se aplican a la región del arnés.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EcrManagedImagePull", "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:BatchCheckLayerAvailability" ], "Resource": "arn:aws:ecr:<region>:*:repository/harness-*" }, { "Sid": "EcrManagedImageToken", "Effect": "Allow", "Action": "ecr:GetAuthorizationToken", "Resource": "*" } ] }

Asegúrese de que los puntos finales de la VPC necesarios existan en su VPC (consulte Configuración de red): puntos finales de interfaz para com.amazonaws.<region>.ecr.dkr y y com.amazonaws.<region>.ecr.api un punto final de puerta de enlace para. com.amazonaws.<region>.s3

AgentCore Memoria

Agregue 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)

Agregue 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)

Agregue 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

Agregue 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

Agregue esta política cuando su arnés obtenga una habilidad de una fuente de Amazon S3. El rol de ejecución muestra y descarga los objetos de habilidad con 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 privado de Git, el arnés lee un token de acceso personal de un proveedor de credenciales de claves de API. Aplica la política de proveedor de credenciales de claves de API que se muestra a continuación para el proveedor de credenciales que contiene el token.

Proveedor de credenciales de claves de API (referencias ARN de encabezados de OpenAI, Gemini, LitellM o MCP)

Agregue esta política cuando su arnés utilice un proveedor de credenciales de claves 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 de 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 en 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 su recurso.

<accountId>

El identificador AWS de tu cuenta.

<agentName>

El nombre de su agente de arneses.

<agentNameAbbrv>

La forma abreviada del nombre de su agente de arneses que se utiliza en los nombres de los recursos de AgentCore memoria predeterminados.

<memoryId>

El ID de su recurso de AgentCore memoria.

<browserCustomId>

El ID de su recurso de navegador personalizado.

<codeInterpreterCustomId>

El ID de su recurso de interpretación de código personalizado.

<gatewayId>

El ID de su recurso de AgentCore Gateway.

<apiKeyName>

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

<skillBucket>

El nombre del bucket 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 de la AWS cuenta a la que pertenece el repositorio de ECR.

<ecrRepoName>

El nombre de tu repositorio de ECR.

nota

El final de -* los recursos de Secrets Manager representa el sufijo aleatorio que Secrets Manager añade a los ARN secretos.