Pase encabezados personalizados a Amazon Bedrock Runtime AgentCore
Los encabezados personalizados te permiten pasar la información contextual de tu aplicación directamente al código de tu agente sin sobrecargar la carga útil de la solicitud principal. Puedes pasar cualquier encabezado HTTP válido que no esté en la lista de encabezados restringidos, incluidas las firmas de webhook (por ejemplo), las claves de API (por ejemplo)X-Custom-Signature, el contexto de rastreo o los identificadores de X-Api-Key sesión. También puedes pasar el Authorization encabezado para la JWT-based autenticación cuando tu agente esté configurado con un autorizador JWT personalizado. Se X-Amzn-Bedrock-AgentCore-Runtime-Custom- siguen admitiendo los encabezados con el prefijo por motivos de compatibilidad con versiones anteriores. Se pueden configurar hasta 20 encabezados por tiempo de ejecución y cada valor de encabezado está limitado a 4 KB.
Amazon Bedrock AgentCore Runtime le permite pasar los encabezados de una solicitud a su código de agente siempre que los encabezados cumplan los siguientes criterios:
-
No se permiten encabezados que comiencen por (
x-amz-están reservados para la firma SigV4). AWS -
No
x-amzn-se permiten encabezados que comiencen por, excepto los encabezados con el prefijo.X-Amzn-Bedrock-AgentCore-Runtime-Custom- -
El
Authorizationencabezado requiere que el tiempo de ejecución del agente esté configurado con uncustomJWTAuthorizerpara OAuth-based el acceso entrante. -
El tamaño del encabezado no supera los 4 KB.
-
Se pueden configurar hasta 20 encabezados por tiempo de ejecución.
-
Los nombres de los encabezados no distinguen mayúsculas de minúsculas y no se permiten duplicados (comparándolos con mayúsculas y minúsculas).
Encabezados restringidos
Para mantener la seguridad y evitar la exposición de información confidencial, los siguientes encabezados están restringidos y no se pueden configurar para su propagación:
| Categoría | Encabezados |
|---|---|
|
Autenticación y autorización |
Proxy-Authorization, WWW-Authenticate |
|
Negociación de contenido |
Aceptar Accept-Charset, Accept-Encoding, Accept-Language, Content-Type, Content-Length Content-Encoding, Content-Language, Content-Location, Content-Range |
|
Almacenamiento en caché |
Cache-Control, ETag, Expira, If-Match,, If-Modified-Since, If-None-Match, If-Range If-Unmodified-Since, Pragma Last-Modified, Vary |
|
Administración de conexiones |
Conexión Keep-Alive, actualización Proxy-Connection |
|
Contexto de la solicitud |
Anfitrión User-Agent, Referente, Desde |
|
Alcance/transferencia |
Alcance Accept-Ranges Transfer-Encoding, TE, remolque |
|
Información del servidor |
Servidor, fecha, ubicación, Retry-After |
|
Cookies |
Set-Cookie, Cookie |
|
Seguridad |
Content-Security-Policy, Content-Security-Policy-Report-Only, Strict-Transport-Security, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy, Permissions-Policy, Cross-Origin-Embedder-Policy, Cross-Origin-Opener-Policy, Cross-Origin-Resource-Policy |
|
CORALES |
Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Headers, Access-Control-Allow-Credentials,, Access-Control-Expose-Headers, Access-Control-Max-Age, Access-Control-Request-Method Access-Control-Request-Headers, Origen |
|
Consejos para el cliente |
Accept-CH Accept-CH-Lifetime, DPR, ancho, enlace descendente Viewport-Width, ECT, RTT, Save-Data |
|
Experimental/Propuesto |
Clear-Site-Data, Feature-Policy, Expect-CT, Public-Key-Pins, Public-Key-Pins-Report-Only |
|
Proxy |
Vía, Reenviado X-Forwarded-For, X-Forwarded-Host, X-Forwarded-Proto, X-Real-IP, X-Requested-With, X-CSRF-Token |
|
Falsificación de IP/manipulación de URL |
True-Client-IP, X-Client-IP, X-Cluster-Client-IP, X-Originating-IP, X-Source-IP, X-Original-URL, X-Original-Host, X-Rewrite-URL |
|
CDN/Proxy |
CF-Ray, CF-Connecting-IP, X-Amz-Cf-Id, X-Cache, X-Served-By |
|
HTTP/2 Pseudoencabezados |
:método, :ruta, :esquema, :autoridad, :estado |
|
Servidor Push |
Link |
|
WebSocket |
Sec-WebSocket-Key, Sec-WebSocket-Accept, Sec-WebSocket-Version, Sec-WebSocket-Protocol, Sec-WebSocket-Extensions |
Además de los encabezados restringidos enumerados anteriormente:
-
Todos los encabezados que comiencen por
x-amz-están restringidos (por ejemplo,,x-amz-security-tokenx-amz-date,x-amz-content-sha256). Están reservados para la firma de AWS solicitudes. -
Todos los encabezados que comiencen por
x-amzn-están restringidos, excepto los encabezados con el prefijo.X-Amzn-Bedrock-AgentCore-Runtime-Custom-
Paso 1: Crea tu agente
Cree un AgentCore proyecto mediante la AgentCore CLI:
agentcore create --name MyHeaderAgent cd MyHeaderAgent
Actualice el archivo de puntos de entrada de su agente para acceder a los encabezados personalizados desde el contexto de la solicitud:
import json from bedrock_agentcore import BedrockAgentCoreApp, RequestContext from strands import Agent app = BedrockAgentCoreApp() agent = Agent() @app.entrypoint def agent_invocation(payload, context: RequestContext): """Handler for agent invocation""" user_message = payload.get( "prompt", "No prompt found in input, please guide customer to create a json payload with prompt key" ) app.logger.info("invoking agent with user message: %s", payload) response = agent(user_message) # access request headers here request_headers = context.request_headers app.logger.info("Headers: %s", json.dumps(request_headers)) return response app.run()
Paso 2: Configura e implementa tu agente con encabezados personalizados
Configure la lista de encabezados de solicitud permitidos en el entorno de ejecución de su agente para que los encabezados personalizados se envíen al código de su agente en el momento de la invocación.
ejemplo
Paso 3: invoca a tu agente con encabezados personalizados
Pase encabezados personalizados al invocar a su agente para que su código de agente pueda acceder a ellos a través del contexto de la solicitud.
ejemplo
Paso 4: (opcional) Configurar la autenticación JWT entrante
Para transferir el token JWT utilizado para el acceso OAuth-based entrante a su agente, configure authorizerType y authorizerConfiguration en la configuración de su agente.