기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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 프로젝트를 생성한 다음 요청 헤더 허용 목록이 있는 에이전트를 추가합니다.
agentcore create --project-name MyHeaderProject --no-agent cd MyHeaderProject agentcore add agent \ --name MyHeaderAgent \ --language Python \ --framework Strands \ --model-provider Bedrock \ --memory none \ --request-header-allowlist X-Custom-Signature,X-Api-Key,X-Amzn-Bedrock-AgentCore-Runtime-Custom-UserId
에이전트의 진입점 파일을 업데이트하여 요청 컨텍스트에서 사용자 지정 헤더에 액세스합니다.
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", "") if not isinstance(user_message, str) or not user_message.strip(): return {"error": "Invalid input: 'prompt' must be a non-empty string"} 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 및를 구성합니다.