모두 하나로 통합하기: AWS를 위한 에이전틱 AI (Agentic AI) 보안 플레이북
요약
OWASP Agentic AI Top 10 시리즈의 결론으로, AWS 환경에서 에이전틱 AI를 구축할 때 필요한 보안 플레이북을 통합하여 제시합니다. 최소 권한 원칙, 관찰 가능성, 인간 참여형 루프(Human-in-the-Loop)라는 세 가지 핵심 기둥을 중심으로 실무적인 방어 전략을 다룹니다.
핵심 포인트
- 최소 권한 및 최소 자율성 원칙을 통한 에이전트 권한 제한
- IAM 정책 분리 및 Cedar를 활용한 세밀한 권한 부여
- CloudWatch와 CloudTrail을 이용한 에이전트 행동 관찰 가능성 확보
- 생성된 코드의 샌드박스 실행 및 SCP를 통한 강력한 경계 설정
- 에이전트의 의사결정 투명성을 위한 인간 참여형 루프 구축
이 글은 OWASP Agentic AI Top 10: AWS 빌더가 알아야 할 사항 시리즈의 11번째 포스트입니다. 시리즈의 끝까지 오셨군요!!!! 정말 대단합니다!
열 가지 위협. 열 개의 포스트. "무엇이 잘못될 수 있는지, 그리고 어떻게 이를 막을 수 있는지"에 대한 약 23,000단어의 내용입니다.
이 시리즈를 처음부터 따라오셨다면, OWASP Agentic Top 10의 각 위협을 개별적으로 깊이 있게 살펴보셨을 것입니다. 실제 CVE, 실제 사고, 실제 코드를 확인하셨을 것입니다. 하지만 보안은 고립되어 작동하지 않습니다. 심층 방어 (Defense in depth)의 핵심은 각 계층이 함께 작동하는 것입니다.
이 마지막 포스트는 이 모든 것을 하나의 실행 가능한 플레이북으로 통합합니다. 새로운 위협은 없습니다. 새로운 공격도 없습니다. 오직 모든 것을 연결하는 아키텍처, 체크리스트, 그리고 횡단적 패턴 (Cross-cutting patterns)만이 있습니다.
세 가지 기둥 (마지막으로 한 번 더)
모든 포스트에서 세 가지 원칙이 등장했습니다. 이 시리즈에서 다른 것은 기억나지 않더라도, 이것만은 기억하십시오:
1. 최소 권한 (Least Privilege) (및 최소 자율성 (Least Autonomy))
모든 포스트가 이 내용으로 귀결되었습니다. 에이전트에게 필요한 것 이상의 권한을 주지 마십시오.
- 포스트 1 (목표 하이재킹 (Goal Hijack)): 시스템 프롬프트를 잠그십시오. 외부 콘텐츠가 목표를 재작성하게 두지 마십시오.
- 포스트 2 (도구 오용 (Tool Misuse)): 도구별로 IAM 정책을 분리하십시오. 하나의 액션 그룹, 하나의 Lambda, 하나의 역할 (Role).
- 포스트 3 (권한 남용 (Privilege Abuse)): 세션 정책 (Session policies)의 범위를 축소하십시오. 세밀한 권한 부여 (Fine-grained authorization)를 위해 Cedar를 사용하십시오.
- 포스트 5 (코드 실행 (Code Execution)): 생성된 코드는 프로덕션 접근 권한이 없는 샌드박스 (Sandbox)에서 실행하십시오.
- 포스트 10 (로그 에이전트 (Rogue Agents)): 강력한 경계로서의 SCP (Service Control Policies). 최대 반복 횟수 설정. 세션 타임아웃.
만약 에이전트가 "필요할 수도 있으니까"라는 이유로 광범위한 권한을 가지고 있다면, 여러분은 단 한 번의 프롬프트 인젝션 (Prompt injection)만으로 매우 끔찍한 상황을 맞이하게 될 것입니다.
2. 관찰 가능성 (Observability)
보이지 않는 것은 보안할 수 없습니다.
- Post 1: CloudWatch를 통한 행동 기준선 (Behavioral baselines) 및 목표 추적.
- Post 6 (Memory Poisoning): 모든 지식 베이스 (Knowledge base) 쓰기 작업에 대한 CloudTrail 데이터 이벤트.
- Post 8 (Cascading Failures): 상관관계가 있는 장애를 탐지하는 복합 알람 (Composite alarms).
- Post 9 (Human Trust): 에이전트의 의사결정을 투명하게 만드는 대시보드.
- Post 10: 에이전트 행동 패턴 및 비용에 대한 이상 탐지 (Anomaly detection).
에이전트의 행동이 로그로 기록되지 않고, 기준선이 설정되지 않으며, 알림이 발생하지 않는다면, 당신은 눈을 감고 비행하는 것과 같습니다.
3. Human-in-the-Loop (인간 참여형 루프)
단순히 승인 도장만 찍는 것이 아닙니다. 실제로 검토하는 것입니다.
- Post 1: 목표를 변경하는 작업에 대한 Step Functions 승인 게이트.
- Post 2: 파괴적인 작업 (삭제, 전송, 게시)에 대한 인간의 확인.
- Post 9 (Human Trust): 타임아웃 시 거부 (Timeout-to-deny) 기능이 포함된 구조화된 A2I 워크플로.
- Post 10: 이상 탐지에 의해 트리거되는 킬 스위치 (Kill switches).
되돌릴 수 없는 작업에서 인간의 감독을 제거하는 순간은, 당신의 에이전트가 새벽 3시에 무엇을 결정하든 그대로 받아들이기로 결심하는 순간입니다.
참조 아키텍처 (The Reference Architecture)
AWS에서 강화된 에이전틱 AI (Agentic AI) 시스템을 구축하기 위해 모든 완화 조치가 어떻게 계층화되는지 설명합니다. 이를 여섯 개의 동심원 방어 체계라고 생각하십시오:
Ring 1: 입력 유효성 검사 (Input Validation)
에이전트로 들어오는 모든 것은 유효성 검사를 거칩니다.
- 애플리케이션 수준의 정화 (Sanitization, 인젝션 패턴 제거)
- Bedrock Guardrails 프롬프트 공격 탐지 (점수 및 임계값)
- RAG 콘텐츠, 도구 출력 및 에이전트 간 메시지에 대한 InvokeGuardrailChecks API 적용
Ring 2: 에이전트 루프 제어 (Agent Loop Controls)
에이전트가 계획하고 결정할 수 있는 것에 대한 제약 조건입니다.
- 시스템 프롬프트 앵커링 (System prompt anchoring) (버전 관리, 잠금, 감사 가능)
- 관리형 세션 격리를 위한 Amazon Bedrock AgentCore
- 최대 반복 횟수 및 세션 타임아웃
- 도구 호출 (tool calls)의 의미론적 권한 부여를 위한 Amazon Verified Permissions (Cedar)
Ring 3: 실행 샌드박싱 (Execution Sandboxing)
에이전트가 생성한 코드와 도구 호출은 격리된 환경에서 실행됩니다.
- AgentCore 코드 인터프리터 (microVM 샌드박스)
- 호출별 일시적 실행을 위한 Lambda
- Fargate (호스트 공유 없음, 권한 축소, 읽기 전용 파일 시스템)
- 범위 제한 세션 정책 (scope-down session policies)을 적용한 도구별 IAM 역할
- API Gateway 스로틀링 (throttling) 및 요청 검증
Ring 4: 공급망 및 메모리 무결성 (Supply Chain & Memory Integrity)
에이전트가 의존하는 모든 요소는 검증됩니다.
- 프라이빗 아티팩트 레지스트리를 위한 CodeArtifact / ECR
- 코드 서명을 위한 AWS Signer
- 지속적인 취약점 스캐닝을 위한 Amazon Inspector
- 불변의 지식 베이스 소스를 위한 S3 Object Lock
- 소스 포이즈닝 (source poisoning) 시도 탐지를 위한 GuardDuty S3 Protection
Ring 5: 에이전트 간 보안 (Inter-Agent Security)
에이전트들은 서로를 맹목적으로 신뢰하지 않습니다.
- EventBridge Schema Registry를 통한 메시지 검증 (message validation)
- Step Functions를 이용한 오류 처리가 포함된 타입 지정 I/O 오케스트레이션 (typed I/O orchestration)
- 네트워크 수준의 에이전트 격리를 위한 PrivateLink
- SQS 메시지 서명 (HMAC 무결성)
- 에이전트 간 권한 부여를 위한 Cedar 정책 (Cedar policies)
Ring 6: 모니터링 및 킬 스위치 (Monitoring & Kill Switches)
다른 모든 방어책이 실패했을 때를 대비한 최후의 방어선입니다.
- 포괄적인 작업 감사 (action auditing)를 위한 CloudTrail
- 행동 기준선 (behavioral baselines)에 대한 CloudWatch 이상 탐지 (anomaly detection)
- 재무적 신호로서의 비용 이상 탐지 (Cost Anomaly Detection)
- 강력한 조직적 경계로서의 서비스 제어 정책 (Service Control Policies)
- EventBridge + Lambda를 이용한 자동 격리 (이상 탐지 시 Deny-All 적용)
단 하나의 링도 완벽할 수는 없습니다. 그것이 핵심입니다. 공격자가 실제 피해를 입히려면 이 6개의 링을 모두 뚫어야 합니다. 그리고 각 링마다 여러분은 무슨 일이 일어나고 있는지 가시성 (visibility)을 확보하게 됩니다.
보안 체크리스트 (The Security Checklist)
이것을 출력해서 벽에 붙여두세요. 다음 에이전트 배포 전에 하나씩 검토하십시오.
☐ ASI01 (목표 하이재킹/Goal Hijack): 모든 입력값은 Bedrock Guardrails의 프롬프트 공격 탐지 (prompt attack detection)를 통해 검증되어야 합니다. RAG 콘텐츠가 컨텍스트에 진입하기 전에 InvokeGuardrailChecks를 수행하십시오. 시스템 프롬프트 (System prompt)는 잠금 처리되고 버전 관리되어야 합니다.
☐ ASI02 (도구 오용 (Tool Misuse)): 각 도구는 고유의 IAM 정책, Lambda 및 속도 제한 (rate limits)을 가집니다. 어떤 도구도 특정 기능에 필요한 범위를 넘어서는 광범위한 권한을 가지지 않습니다. API Gateway 스로틀링 (throttling)을 통해 루프 증폭을 방지합니다.
☐ ASI03 (권한 남용 (Privilege Abuse)): 에이전트 역할은 호출 시마다 범위 축소 세션 정책 (scope-down session policies)을 사용합니다. Verified Permissions (Cedar)를 통해 세밀한 권한 부여 (fine-grained authorization)를 강제합니다. 장기 사용 가능한 자격 증명 (long-lived credentials)은 사용하지 않습니다. 권한 경계 (Permission boundaries)를 통해 권한 상승 (self-escalation)을 방지합니다.
☐ ASI04 (공급망 (Supply Chain)): 모든 종속성 (dependencies)은 승인 게이트가 있는 프라이빗 레지스트리 (private registries)에서 가져옵니다. 코드는 AWS Signer로 서명됩니다. 모든 배포 시 Inspector 스캐닝을 수행합니다. Lambda 레이어 (layers)는 고정(pinned)되어 있으며 불변(immutable) 상태를 유지합니다.
☐ ASI05 (코드 실행 (Code Execution)): 에이전트가 생성한 코드는 독점적으로 샌드박스 환경 (AgentCore, Lambda, Fargate)에서 실행됩니다. 생성과 실행 사이에 정적 분석 (Static analysis) 게이트를 둡니다. 운영 환경에서 eval()을 사용하지 않습니다.
☐ ASI06 (메모리 오염 (Memory Poisoning)): 지식 베이스 (Knowledge base) 소스는 Object Lock이 적용된 S3에 저장됩니다. GuardDuty를 통해 소스 버킷을 모니터링합니다. 모든 벡터 스토어 (vector store) 쓰기 작업에 대해 CloudTrail 데이터 이벤트를 기록합니다. Guardrails를 통해 수집 전 콘텐츠 검증 (Pre-ingestion content validation)을 수행합니다.
☐ ASI07 (에이전트 간 통신 (Inter-Agent Comms)): 모든 에이전트 간 메시지는 EventBridge를 통해 스키마 검증 (schema-validated)을 거칩니다. 에이전트 간 트래픽은 PrivateLink를 통해 전달됩니다. 에이전트 간의 의미론적 권한 부여 (semantic authorization)를 위해 Cedar 정책을 사용합니다. 암묵적 신뢰 (implicit trust)는 허용되지 않습니다.
☐ ASI08 (연쇄 장애 (Cascading Failures)): 모든 상태 (state)에 재시도 제한, 타임아웃 및 catch 블록이 포함된 Step Functions를 사용합니다. 비상 정지를 위한 서킷 브레이커 (Circuit breaker) Lambda를 운영합니다. 상관관계가 있는 장애를 탐지하기 위해 복합 CloudWatch 알람을 사용합니다. 분기별로 결함 주입 서비스 (Fault Injection Service) 테스트를 수행합니다.
☐ ASI09 (인간의 신뢰 (Human Trust)): 영향력이 큰 결정에 대해서는 A2I 구조화된 검토를 수행합니다. 승인 게이트는 타임아웃 시 거부 (timeout-to-deny) 방식으로 설정합니다 (타임아웃 시 승인이 아님). 형식적인 승인 (Rubber-stamp) 탐지 알람을 설정합니다. 에이전트의 결정은 전체 출처 (provenance)와 함께 공개됩니다.
☐ ASI10 (통제 불능 에이전트 (Rogue Agents)): 행동 기준선 (behavioral baselines)에 대해 CloudWatch 이상 탐지 (anomaly detection)를 수행합니다. 에이전트별 비용 이상 탐지 (Cost Anomaly Detection, 토큰 소비 + 동시 세션)를 실시합니다. IAM 권한 상승 및 백업 삭제를 방지하는 SCP를 적용합니다. EventBridge + Lambda를 통해 자동 킬 스위치 (kill switch)를 작동합니다.
공통 서비스 (The Cross-Cutting Services)
이번 시리즈 전반에 걸쳐 몇몇 AWS 서비스들이 반복적으로 등장했습니다. 주요 목록은 다음과 같습니다:
| AWS 서비스 | 등장한 포스트 | 주요 역할 |
|---|---|---|
| Bedrock Guardrails | 1, 6, 9 | 입출력 검증 (Input/output validation), 프롬프트 공격 탐지 (prompt attack detection) |
| ... |
만약 AWS에서 에이전트 (agents)를 구축하면서 최소한 Step Functions, Guardrails, CloudWatch, 그리고 IAM 세션 정책 (session policies)을 사용하지 않고 있다면... 보안의 문을 열어두고 있는 것과 같습니다.
다음 단계 (What's Next)
OWASP Agentic Top 10은 2025년 12월에 발표되었습니다. 이 글을 쓰는 지금은 2026년 7월입니다. 그 7개월 동안 우리는 이미 다음과 같은 사례들을 목격했습니다:
- 최초의 완전 자율형 AI 랜섬웨어 공격 (JADEPUFFER)
- 에이전트 프레임워크 (Semantic Kernel, AutoGen)에서의 다수 CVSS 9.9 취약점
- MCP 서버 및 클라이언트에서의 30개 이상의 CVE
- AI 자기 복제 (self-replication) 실험에서의 81% 성공률
이 환경은 빠르게 진화하고 있습니다. OWASP 목록은 업데이트될 것이며, 새로운 공격 패턴이 나타날 것입니다. 또한 이를 해결하기 위한 새로운 AWS 서비스들이 출시될 것입니다.
이 시리즈를 완료하고 잊어버리는 일회성 체크리스트로 취급하지 마세요. 다음과 같이 살아있는 실천 사항 (living practice)으로 다루십시오:
- 분기별 (Quarterly): OWASP Agentic Top 10을 다시 읽으십시오. 새로운 항목이나 업데이트가 귀하의 에이전트에 적용되는지 확인하십시오.
- 월별 (Monthly): 에이전트의 권한 (permissions), 도구 액세스 (tool access), 그리고 행동 기준선 (behavioral baselines)을 검토하십시오. 드리프트 (Drift)는 발생하기 마련입니다.
- 주별 (Weekly): CloudWatch의 이상 탐지 (anomaly detections) 및 비용 알림 (cost alerts)을 확인하십시오. 기준선이 여전히 정확합니까?
- 배포 시마다 (Every deployment): 위의 체크리스트를 실행하십시오. 모든 새로운 에이전트, 모든 새로운 도구, 모든 새로운 데이터 소스에 대해 수행하십시오.
시리즈 (The Series)
포스트를 놓쳤거나 특정 위협을 다시 확인하고 싶다면:
- Agent Goal Hijack (ASI01) - 다단계 에이전트에서의 프롬프트 주입
- Tool Misuse & Exploitation (ASI02) - 합법적인 도구가 무기가 될 때
- Identity & Privilege Abuse (ASI03) - 혼란스러운 대리인과 권한 상승
- Supply Chain Vulnerabilities (ASI04) - 손상된 플러그인, MCP 서버, 레지스트리
- Unexpected Code Execution (ASI05) - 격리되지 않은 에이전트 생성 코드 실행
- Memory & Context Poisoning (ASI06) - 에이전트 메모리의 지속적인 오염
- Insecure Inter-Agent Comms (ASI07) - 에이전트가 대화할 때 공격자가 엿듣는 경우
- Cascading Failures (ASI08) - 하나의 실패가 열 개의 다운스트림 에이전트에 미치는 영향
- Human-Agent Trust (ASI09) - 과도한 의존과 형식적인 승인
- Rogue Agents (ASI10) - 해킹되지 않았지만, 단순히 목표가 불일치하는 경우
이것으로 마무리합니다
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기