Amazon Bedrock AgentCore 런타임에 사용자 지정 헤더 전달
사용자 지정 헤더를 사용하면 기본 요청 페이로드를 어수선하게 하지 않고도 애플리케이션의 컨텍스트 정보를 에이전트 코드에 직접 전달할 수 있습니다. 와 같은 웹후크 서명,와 같은 API 키X-Custom-Signature, X-Api-Key추적 컨텍스트 또는 세션 식별자를 포함하여 제한된 헤더 목록에 없는 유효한 HTTP 헤더를 전달할 수 있습니다. 에이전트가 사용자 지정 JWT 권한 부여자로 구성된 경우 JWT 기반 인증을 위해 Authorization 헤더를 전달할 수도 있습니다. 접두사가 인 헤더는 이전 버전과의 호환성을 위해 X-Amzn-Bedrock-AgentCore-Runtime-Custom- 계속 지원됩니다. 런타임당 최대 20개의 헤더를 구성할 수 있으며 각 헤더 값은 4KB로 제한됩니다.
Amazon Bedrock AgentCore 런타임을 사용하면 헤더가 다음 기준을 충족하는 경우 요청의 헤더를 에이전트 코드에 전달할 수 있습니다.
-
헤더 이름은 유효한 HTTP 헤더(영숫자, 하이픈 및 밑줄)이며 제한된 헤더 목록에 없습니다.
-
로 시작하는 헤더
x-amz-는 허용되지 않습니다( AWS SigV4 서명용으로 예약됨). -
접두사가 붙은 헤더를 제외하고
X-Amzn-Bedrock-AgentCore-Runtime-Custom-로 시작하는 헤더x-amzn-는 허용되지 않습니다. -
Authorization헤더를 사용하려면 OAuth 기반 인바운드 액세스를customJWTAuthorizer위해 에이전트 런타임을 로 구성해야 합니다. -
헤더 값의 크기는 4KB 이하입니다.
-
런타임당 최대 20개의 헤더를 구성할 수 있습니다.
-
헤더 이름은 대/소문자를 구분하지 않으며 중복(대/소문자를 구분하지 않는 비교)은 허용되지 않습니다.
제한된 헤더
보안을 유지하고 민감한 정보의 노출을 방지하기 위해 다음 헤더는 제한되며 전파를 위해 구성할 수 없습니다.
| 카테고리 | 헤더 |
|---|---|
|
인증 및 권한 부여 |
프록시 권한 부여, WWW 인증 |
|
콘텐츠 협상 |
수락, Accept-Charset, Accept-Encoding, Accept-Language, Content-Type, Content-Length, Content-Encoding, Content-Language, Content-Location, Content-Range |
|
캐싱 |
캐시 제어, ETag, 만료, If-Match, If-Modified-Since, If-None-Match, If-Range, If-Unmodified-Since, Last-Modified, Pragma, Vary |
|
연결 관리 |
연결, 연결 유지, 프록시 연결, 업그레이드 |
|
요청 컨텍스트 |
호스트, 사용자-에이전트, 참조자, 시작 |
|
범위/전송 |
범위, Accept-Ranges, Transfer-Encoding, TE, Trailer |
|
서버 정보 |
서버, 날짜, 위치, 재시도 후 |
|
쿠키 |
Set-Cookie, 쿠키 |
|
보안 |
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 |
|
CORS |
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, Origin |
|
클라이언트 힌트 |
Accept-CH, Accept-CH-Lifetime, DPR, Width, Viewport-Width, Downlink, ECT, RTT, Save-Data |
|
실험/제안 |
Clear-Site-Data, Feature-Policy, Expect-CT, Public-Key-Pins, Public-Key-Pins-Report-Only |
|
프록시 |
Via, Forwarded, X-Forwarded-For, X-Forwarded-Host, X-Forwarded-Proto, X-Real-IP, X-Requested-With, X-CSRF-Token |
|
IP 스푸핑/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/프록시 |
CF-Ray, CF-Connecting-IP, X-Amz-Cf-Id, X-Cache, X-Served-By |
|
HTTP/2 가상 헤더 |
:method, :path, :scheme, :authority, :status |
|
서버 푸시 |
링크 |
|
WebSocket |
Sec-WebSocket-Key, Sec-WebSocket-Accept, Sec-WebSocket-Version, Sec-WebSocket-Protocol, Sec-WebSocket-Extensions |
위에 나열된 제한된 헤더 외에도:
-
로 시작하는 모든 헤더
x-amz-는 제한됩니다(예:x-amz-security-token,x-amz-date,x-amz-content-sha256). 이는 AWS 요청 서명을 위해 예약되어 있습니다. -
접두사가 붙
x-amzn-은 헤더를 제외하고X-Amzn-Bedrock-AgentCore-Runtime-Custom-로 시작하는 모든 헤더는 제한됩니다.
1단계: 에이전트 생성
AgentCore CLI를 사용하여 AgentCore 프로젝트를 생성합니다.
agentcore create --name MyHeaderAgent cd MyHeaderAgent
에이전트의 진입점 파일을 업데이트하여 요청 컨텍스트에서 사용자 지정 헤더에 액세스합니다.
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()
2단계: 사용자 지정 헤더를 사용하여 에이전트 구성 및 배포
호출 시 사용자 지정 헤더가 에이전트 코드로 전달되도록 에이전트 런타임에서 요청 헤더 허용 목록을 구성합니다.
예
3단계: 사용자 지정 헤더를 사용하여 에이전트 간접 호출
에이전트 코드가 요청 컨텍스트를 통해 액세스할 수 있도록 에이전트를 호출할 때 사용자 지정 헤더를 전달합니다.
예
4단계: (선택 사항) 인바운드 JWT 인증 구성
OAuth 기반 인바운드 액세스에 사용되는 JWT 토큰을 에이전트에 전달하려면 에이전트 구성authorizerConfiguration에서 authorizerType 및를 구성합니다.