
4
AI 요약
이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.
이 게시물은 LLM 기반 에이전트를 프로덕션에 배치할 때 프롬프트 인젝션으로 사용자 간 데이터 경계가 무너질 수 있음을 전제로, 보안 경계를 LLM 바깥에 구현하는 방법을 AgentCore 기반 다층 구조로 정리합니다.
핵심 전제 및 위협
- 시스템 프롬프트 지시만으로는 보장을 못 하며 프롬프트 인젝션·모순·엣지 케이스로 행동이 조작될 수 있음
- 신뢰할 수 없는 입력은 사용자 메시지뿐 아니라 도구 응답, 메모리 요약, 검색(RAG) 결과까지 포함됨
1차 방어선: JWT 전파 파이프라인과 RLS 결합
- AgentCore Runtime과 Gateway에서 CUSTOM_JWT 권한 부여자가 토큰을 독립 검증하고 세션을 격리
- Authorization 헤더는 Interceptor Lambda에서 헤더 화이트리스트로 제어해 대상 Lambda로 선택 전파
- Lambda는 claims의 sub만 사용해 사용자 스코프 쿼리 수행하며, DB의 RLS(예: DynamoDB 파티션 키)로 물리적 데이터 경계 강제
안티패턴 및 근본 해결
- tool 파라미터로 user_id를 받는 방식은 LLM이 임의 user_id를 넣어 호출할 수 있어 RLS를 무력화할 수 있음
- 근본적으로 tool 파라미터에서 user_id 제거하고 신원은 JWT claims에서만 추출하도록 설계
2차 방어선: Index Mapper로 내부 식별자 노출 최소화
- 에이전트 컨텍스트에는 1-based 인덱스만 제공하고 실제 resource_id/SKU 같은 민감 필드는 세션별 매퍼에서만 복원
- 도구 호출 직전 민감 필드를 스트립해 모델/로그/캐시에 내부 식별자가 남는 위험을 줄임
확장 원칙 및 체크리스트
- 인증은 AgentCore 계층이, 인가는 백엔드(RLS/권한 부여)가 강제하며, 다음 계층이 이전 계층을 보완하도록 심층 방어 구성
- 데이터스토어 종류는 부차적이며 JWT 기반 인가를 지원하는 곳이면 동일 패턴으로 적용 가능
