Übergeben Sie benutzerdefinierte Header an Amazon Bedrock Runtime AgentCore
Mit benutzerdefinierten Headern können Sie Kontextinformationen aus Ihrer Anwendung direkt an Ihren Agentencode übergeben, ohne die Hauptnutzlast der Anfrage zu überladen. Sie können jeden gültigen HTTP-Header übergeben, der nicht in der Liste mit eingeschränkten Headern enthalten ist, einschließlich Webhook-Signaturen wie, API-Schlüsseln wie X-Custom-SignatureX-Api-Key, Trace-Kontext oder Sitzungskennungen. Sie können den Authorization Header auch zur JWT-based Authentifizierung übergeben, wenn Ihr Agent mit einem benutzerdefinierten JWT-Autorisierer konfiguriert ist. Header mit einem Präfix werden aus Gründen der X-Amzn-Bedrock-AgentCore-Runtime-Custom- Abwärtskompatibilität weiterhin unterstützt. Pro Laufzeit können bis zu 20 Header konfiguriert werden, und jeder Header-Wert ist auf 4 KB begrenzt.
Mit Amazon Bedrock AgentCore Runtime können Sie Header in einer Anfrage an Ihren Agentencode übergeben, sofern die Header die folgenden Kriterien erfüllen:
-
Header, die mit beginnen,
x-amz-sind nicht erlaubt (diese sind für die Sigv4-Signatur reserviert). AWS -
Header, die mit beginnen,
x-amzn-sind nicht erlaubt, mit Ausnahme von Headern mit dem Präfix.X-Amzn-Bedrock-AgentCore-Runtime-Custom- -
Für den
AuthorizationHeader muss die Agenten-Laufzeit mit einemcustomJWTAuthorizerfür OAuth-based eingehenden Zugriff konfiguriert sein. -
Der Header-Wert ist nicht größer als 4 KB.
-
Pro Laufzeit können bis zu 20 Header konfiguriert werden.
-
Bei Header-Namen wird nicht zwischen Groß- und Kleinschreibung unterschieden und Duplikate (bei Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung) sind nicht zulässig.
Eingeschränkte Header
Um die Sicherheit zu gewährleisten und die Offenlegung vertraulicher Informationen zu verhindern, sind die folgenden Header eingeschränkt und können nicht für die Weitergabe konfiguriert werden:
| Kategorie | Kopfzeilen |
|---|---|
|
Authentifizierung und Autorisierung |
Proxy-Authorization, WWW-Authenticate |
|
Content Negotiation (Inhaltsvereinbarung) |
Akzeptiere Accept-Charset Accept-Encoding, Accept-Language, Content-Type, Content-Length Content-Encoding, Content-Language, Content-Location, Content-Range |
|
Caching |
Cache-Control, ETag, Expires, If-Match, If-Modified-Since, If-None-Match,, If-Range, If-Unmodified-Since Last-Modified, Pragma, Vary |
|
Verbindungsverwaltung |
Verbindung, Keep-Alive Proxy-Connection, Upgrade |
|
Kontext anfordern |
Host User-Agent, Referer, Von |
|
Bereich/Übertragung |
Reichweite, Accept-Ranges Transfer-Encoding, TE, Anhänger |
|
Informationen zum Server |
Server, Datum, Ort, Retry-After |
|
Cookies |
Set-Cookie, Keks |
|
Sicherheit |
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 |
|
KERNE |
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, Herkunft |
|
Hinweise für Kunden |
Accept-CH Accept-CH-Lifetime, DPR, Breite, Downlink Viewport-Width, ECT, RTT, Save-Data |
|
Experimentell//Vorgeschlagen |
Clear-Site-Data, Feature-Policy, Expect-CT, Public-Key-Pins, Public-Key-Pins-Report-Only |
|
Proxy |
Über, Weitergeleitet X-Forwarded-For, X-Forwarded-Host, X-Forwarded-Proto, X-Real-IP, X-Requested-With, X-CSRF-Token |
|
IP-Spoofing//URL-Manipulation |
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 Pseudo-Header |
:Methode, :Pfad, :Schema, :Autorität, :Status |
|
Server-Push |
Link |
|
WebSocket |
Sec-WebSocket-Key, Sec-WebSocket-Accept, Sec-WebSocket-Version, Sec-WebSocket-Protocol, Sec-WebSocket-Extensions |
Zusätzlich zu den oben aufgeführten eingeschränkten Headern:
-
Alle Header, die mit beginnen,
x-amz-sind eingeschränkt (z. B.,x-amz-security-tokenx-amz-date,x-amz-content-sha256). Diese sind für das Signieren von AWS Anfragen reserviert. -
Alle Header, die mit beginnen,
x-amzn-sind eingeschränkt, mit Ausnahme von Headern mit dem Präfix.X-Amzn-Bedrock-AgentCore-Runtime-Custom-
Schritt 1: Erstellen Sie Ihren Agenten
Erstellen Sie ein AgentCore Projekt mit der AgentCore CLI:
agentcore create --name MyHeaderAgent cd MyHeaderAgent
Aktualisieren Sie die Einstiegspunktdatei Ihres Agenten, um über den Anforderungskontext auf die benutzerdefinierten Header zuzugreifen:
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()
Schritt 2: Konfigurieren und implementieren Sie Ihren Agenten mit benutzerdefinierten Headern
Konfigurieren Sie die Zulassungsliste für Anforderungsheader in Ihrer Agenten-Laufzeit so, dass benutzerdefinierte Header zum Zeitpunkt des Aufrufs an Ihren Agentencode weitergeleitet werden.
Beispiel
Schritt 3: Rufen Sie Ihren Agenten mit benutzerdefinierten Headern auf
Übergeben Sie benutzerdefinierte Header, wenn Sie Ihren Agenten aufrufen, damit Ihr Agentencode über den Anforderungskontext darauf zugreifen kann.
Beispiel
Schritt 4: (Optional) Konfigurieren Sie die eingehende JWT-Authentifizierung
Um das für den OAuth-based eingehenden Zugriff verwendete JWT-Token an Ihren Agenten zu übergeben, konfigurieren Sie authorizerType und authorizerConfiguration in Ihrer Agentenkonfiguration.