AWS에서 AI 워크로드 모니터링 및 감사
소개
AWS의 최신 AI 워크로드는 세 가지 독립적인 파이프라인을 통해 텔레메트리를 생성합니다 — CloudTrail(누가 무엇을 호출했는지), Bedrock Model Invocation Logging(모델이 무엇을 응답했는지), ADOT SDK로 수집되는 Agent Telemetry(에이전트가 어떻게 수행했는지). 각 파이프라인은 필수적입니다. CloudTrail만으로는 IAM 역할이 InvokeModel을 호출했다는 사실은 알 수 있지만, 해당 역할이 모델에 무엇을 요청했는지나 에이전트가 어떻게 응답했는지는 알 수 없습니다. Model Invocation Logging은 콘텐츠를 캡처하지만 에이전트 오케스트레이션은 캡처하지 않습니다. ADOT는 오케스트레이션을 캡처하지만 추론 파라미터나 IAM 자격 증명은 캡처하지 않습니다. 보안 및 운영 조사에서는 거의 항상 최소 두 개의 파이프라인을 상관 분석해야 합니다.
이 가이드는 다음을 통해 AI 워크로드에 대한 완전한 모니터링 및 감사 체계를 구축하는 방법을 보여줍니다:
- 세 가지 텔레메트리 파이프라인 모두 활성화 — 이 가이드에서 간략한 설정과 함께 상세 내용에 대한 심층 링크를 제공합니다.
- CloudTrail 기반 탐지 규칙 구축 — Bedrock 및 AgentCore 데이터 이벤트를 포함하는 보안 및 감사 영역에 대한 메트릭 필터, 알람, Contributor Insights 규칙을 구축합니다.
- 크로스 파이프라인 상관관계 쿼리 실행 — CloudTrail과 Bedrock Model Invocation Logging 및 ADOT 스팬을 조인하여 단일 파이프라인만으로는 답할 수 없는 질문에 대응합니다.
Generative AI Security Scoping Matrix와 Agentic AI Security Scoping Matrix는 AI 애플리케이션 구축 시 조직이 대응해야 할 보안 차원을 정의합니다. 여기에는 감사 및 로깅, 자격 증명 컨텍스트, 에이전시 경계, 데이터 보호가 포함됩니다. 이 가이드는 CloudTrail, CloudWatch, 크로스 파이프라인 상관 분석을 활용하여 이러한 차원에 대한 구체적인 구현을 제공합니다. 아래 탭은 각 매트릭스 차원을 이를 구현하는 가이드 섹션에 매핑합니다.
- Agentic AI
- Generative AI
| 차원 | 가이드 섹션 |
|---|---|
| Identity — 사용자, 서비스, 에이전트 자격 증명 관리 | AgentCore Identity & Credentials (Group 2), Query 4, Query 12, Query 14, Metric Filter 7, Metric Filter 18 |
| Data — 영구 메모리 및 상태 보안 | AgentCore Memory & Evaluation (Group 4), Query 16, Metric Filter 19 |
| Audit & Logging — 액션 레벨 에이전트 활동 추적 | Three Telemetry Pipelines, Security Analytics, Cross-Pipeline Correlation, Metric Filters, Contributor Insights |
| Guardrails — 행동 모니터링, 샌드박싱, 격리 | AgentCore Built-in Tools (Group 1), Query 8, Query 21, Query 26, Query 27, Metric Filter 4, Metric Filter 17, Metric Filter 24, Metric Filter 25 |
| Scope — 운영 경계 및 제약 조건 평가 | Network Activity Events, Query 4, Query 9, Query 26, Metric Filter 9, Metric Filter 10, Metric Filter 24 |
| Orchestration — 에이전트-시스템 간 상호 작용 및 흐름 제어 | AgentCore Runtime & Gateway (Group 3), Query 15, Query 17, Query 19, Query 23, Query 24, Metric Filter 21, Metric Filter 22 |
| 차원 | 가이드 섹션 |
|---|---|
| Governance & Compliance — 데이터 주권, 감사 | Model Invocation Logging, Query 18, Query 25, Metric Filter 5, Metric Filter 23 |
| Risk Management — 위협 모델링, 가드레일 | Bedrock Guardrail monitoring, Query 8, Query 21, Query 27, Metric Filter 4, Metric Filter 25 |
| Controls — 자격 증명, 접근 관리, 최소 권한 | Management Events, Query 1, Query 2, Query 4, Metric Filter 1, Metric Filter 7 |
AWS는 CloudTrail, CloudWatch, Bedrock 서비스를 실행하는 클라우 드 인프라의 보안을 책임집니다. 고객은 이벤트 셀렉터 구성, 탐지 규칙 생성, 알람 임계값 설정, 보안 이벤트 대응을 포함한 클라우드 내 보안을 책임집니다. 이 가이드는 AI 워크로드에 대한 고객 구성 및 모니터링 책임에 중점을 둡니다. 자세한 내용은 AWS Shared Responsibility Model을 참조하세요.
세 가지 복합 도전과제
Volume — AI 모델 호출은 높은 이벤트 볼륨을 생성할 수 있습니다. 정밀한 이벤트 셀렉터와 집계 없이는 높은 볼륨에서 관심 이벤트를 분리하기 어렵고, 모든 것을 캡처하는 비용이 과도합니다.
Speed — 에이전트가 시작하는 활동 시퀀스는 수초 내에 여러 API 호출, 도구 호출, 모델 상호 작용을 포함할 수 있습니다. 근실시간 탐지 규칙은 운영 이상 징후를 발생 시점에 가깝게 표면화하여 더 빠른 분류와 짧은 평균 조사 시간을 지원합니다.
Complexity: - AI 워크로드 활동은 여러 AWS 서비스에 걸쳐 있습니다. 단일 로그 소스로는 완전한 가시성을 제공할 수 없습니다. 파이프라인 간 상관 분석이 실제 조사가 이루어지는 지점입니다.
이 가이드에서 다루는 내용
- 세 가지 텔레메트리 파이프라인과 각각이 고유하게 캡처하는 내용
- 세 가지 모두의 활성화 (CloudTrail 심층 설명; 나머지 두 가지는 간략한 단계 + 심층 링크)
- CloudTrail 전용 탐지: Bedrock 및 AgentCore 데이터 이벤트에 대한 메트릭 필터, 알람, Contributor Insights
- AgentCore 데이터 이벤트: 게이트웨이 트래픽, 내장 도구 사용, 자격 증명 접근, 메모리 작업, 런타임 활동
- 조사를 위한 크로스 파이프라인 상관관계 쿼리
- 세 가지 데이터 소스를 결합하는 통합 대시보드
GenAI 텔레메트리 환경: 세 가지 상호 보완적 파이프라인
CloudTrail은 AWS에서 AI 워크로드에 대한 완전한 Observability를 제공하는 세 가지 텔레메트리 파이프라인 중 하나입니다. 각각은 서로 다른 데이터를 캡처하고, 서로 다른 목적을 제공하며, 서로 다르게 활성화됩니다. 보안 조사에서는 거의 항상 최소 두 개의 상관 분석이 필요합니다.

| 파이프라인 | 캡처 대상 | 로그 그룹 | 주요 용도 |
|---|---|---|---|
| CloudTrail | 누가 무엇을 했는지 — 모든 API 호출, 호출자 ARN, 소스 IP, 오류 코드, 접근 거부, 컨트롤 플레인 변경 | YOUR_CLOUDTRAIL_LOG_GROUP | 보안 감사, 접근 조사, 구성 변경 추적 |
| Bedrock Model Invocation Logging | 모델이 무엇을 말했는지 — 전체 프롬프트, 전체 응답, 추론 파라미터(temperature, max_tokens), 호출자 IAM 자격 증명, 토큰 수 | bedrock-model-invocation-logging | 콘텐츠 감사, 컴플라이언스, 프롬프트 품질 디버깅, 비용 귀속 |
| Agent Telemetry (AWS Distro for OpenTelemetry — ADOT로 수집) | 에이전트가 어떻게 수행했는지 — 모델 호출 지연 시간, 도구 실행, 분산 트레이스 상관관계, 세션 추적 | aws/spans, /aws/bedrock-agentcore/runtimes/<agent> | 운영 모니터링, 성능 디버깅, 에이전트 워크플로 Observability |
각 파이프라인이 단독으로 답할 수 있는 질문
CloudTrail만으로 알 수 있는 것:
- 어떤 IAM 자격 증명이
InvokeModel을 호출했는가? - 소스 IP, 유저 에이전트, 리전은 무엇이었는가?
- 호출이 거부되었는가 (AccessDenied, UnauthorizedOperation)?
- 누군가 가드레일을 수정하거나, 로깅을 중지하거나, IAM 권한을 에스컬레이션했는가?
- 어떤 VPC 엔드포인트가 호출을 차단했는가?
Model Invocation Logging만으로 알 수 있는 것:
- 모델에 어떤 프롬프트가 전송되었는가?
- 모델이 무엇을 반환했는가?
- 어떤 temperature와 max_tokens가 사용되었는가?
- 호출이 얼마나 많은 입력 및 출력 토큰을 소비했는가?
- 응답이 잘렸는가 (stop_reason = max_tokens)?
Agent Telemetry (ADOT SDK)만으로 알 수 있는 것:
- 모델 호출에 얼마나 걸렸는가 (클라이언트 측 지연 시간)?
- 에이전트가 어떤 도구를 어떤 순서로 호출했는가?
- 도구가 실패했는가, 그리고 어떤 컴포넌트가 오류를 일으켰는가?
- 에이전트 세션이 여러 모델 호출에 걸쳐 어떻게 연결되어 있는가?
상관 분석으로 해결할 수 있는 영역
상관 분석만으로 답할 수 있는 질문
| 조사 질문 | 조인할 파이프라인 | 조인 키 |
|---|---|---|
| 누가 모델에 이 질문을 했고, 모델이 무엇을 말했는가? | CloudTrail (호출자) + Model Invocation Logging (프롬프트/응답) | requestId |
| 에이전트가 모델 문제, 도구 문제, 권한 문제 중 어떤 것 때문에 실패했는가? | ADOT 스팬 (컴포넌트 지연/오류) + CloudTrail (AccessDenied 이벤트) | session + time |
| 안전하지 않은 모델 응답 직전에 가드레일이 약화되었는가? | CloudTrail (UpdateGuardrail 이벤트) + Model Invocation Logging (응답 콘텐츠) | timestamp |
| 에이전트 역할이 최소 권한을 위반하는 Bedrock 호출을 하고 있는가? | CloudTrail (assumed role의 크로스 서비스 AccessDenied) + ADOT (에이전트 세션 ID) | session + time |
| 어떤 외부 호출자가 Gateway를 통해 이 에이전트를 트리거했으며, 에이전트가 어떤 자격 증명을 사용했는가? | CloudTrail Gateway 데이터 이벤트 (JWT subject, 소스 IP) + CloudTrail 자격 증명 데이터 이벤트 (TokenVault/OAuth2 접근) | time + agent runtime ARN |
| 에이전트가 의도된 범위 밖에서 코드를 실행하거나 웹사이트를 탐색하고 있는가? | CloudTrail AgentCore 도구 데이터 이벤트 (CodeInterpreter/Browser) + ADOT 스팬 (에이전트 세션 컨텍스트) | session + time |
크로스 파이프라인 상관관계 쿼리 섹션에서 이러한 시나리오에 대한 실제 JOIN 쿼리를 제공합니다. :::
구현 개요
세 가지 파이프라인을 모두 활성화한 후 탐지와 상관 분석을 단계적으로 추가하는 점진적 롤아웃 방식입니다.
1단계: Observability 파이프라인 활성화
두 가지 Observability 파이프라인(Bedrock Model Invocation Logging과 ADOT SDK로 수집되는 Agent Telemetry)부터 시작합니다. 활성화가 빠르며 크로스 파이프라인 상관관계 쿼리를 가능하게 합니다. CloudTrail 설정은 2단계에서 다룹니다.
Pipeline A: Bedrock Model Invocation Logging
모든 Bedrock 모델 호출에 대해 전체 프롬프트, 응답, 추론 파라미터, 호출자 IAM 자격 증명을 캡처합니다. 수동 옵트인만 가능합니다. (Generative AI Security Scoping Matrix의 Governance & Compliance 차원을 구현하여 데이터 주권 요구사항과 컴플라이언스 감사 워크플로를 지원하기 위해 모델 상호 작용을 캡처합니다.)
- Amazon Bedrock 콘솔을 엽니다
- Settings → Model invocation logging을 선택합니다
- 로깅을 활성화하고 CloudWatch Logs(및/또는 S3)를 대상으로 선택합니다
- 로그 그룹 이름(기본값:
bedrock-model-invocation-logging)과 서비스 역할을 구성합니다
상세 구성, PII 마스킹, 대시보드 설정에 대해서는 GenAI Observability on AWS를 참조하세요.
Pipeline B: Agent Telemetry (ADOT SDK로 수집)
에이전트 오케스트레이션, 분산 트레이스, 도구 실행을 캡처합니다.
- AgentCore: ADOT SDK가 기본적으로 런타임에 포함되어 있고 텔레메트리가 자동으로
aws/spans및/aws/bedrock-agentcore/runtimes/<agent>로 전송되므로 별도의 조치가 필요하지 않습니다 - EKS/ECS/자체 호스팅: ADOT 자동 계측 에이전트를 워크로드에 연결합니다. 코드 변경이 필요하지 않습니다
전체 Application Signals 경험을 활용하려면 CloudWatch Transaction Search를 활성화하세요.
상세 활성화 단계는 GenAI Observability on AWS — Enabling Observability for Agentic Workloads와 AgentCore Observability Quickstart를 참조하세요.
2단계: CloudTrail 활성화 — Bedrock부터 시작하여 범위 확장, CloudWatch로 수집
AI 워크로드의 전체 감사 범위를 캡처하도록 CloudTrail을 구성합니다. 가장 높은 가치의 리소스(Bedrock)부터 시작하여 외부로 확장합니다. 파이프라인 A 및 B와 조인할 수 있도록 모든 것을 CloudWatch Logs로 전달합니다.
Step 1: Bedrock 및 AgentCore 데이터 이벤트와 관리 이벤트
Advanced event selectors를 사용하여 트레일에서 Bedrock 데이터 이벤트를 활성화합니다. 이러한 작업은 기본적으로 로깅되지 않습니다. Amazon Bedrock 데이터 이벤트를 참조하세요.
| 카테고리 | 리소스 유형 |
|---|---|
| Agent & Orchestration | AWS::Bedrock::AgentAlias, AWS::Bedrock::InlineAgent, AWS::Bedrock::FlowAlias, AWS::Bedrock::FlowExecution, AWS::Bedrock::Session |
| Model Invocation | AWS::Bedrock::Model, AWS::Bedrock::AsyncInvoke, AWS::Bedrock::PromptVersion, AWS::Bedrock::AdvancedOptimizePromptJob |
| Safety & Guardrails | AWS::Bedrock::Guardrail, AWS::Bedrock::AutomatedReasoningPolicy, AWS::Bedrock::AutomatedReasoningPolicyVersion |
| Knowledge & RAG | AWS::Bedrock::KnowledgeBase, AWS::Bedrock::Tool |
| Data Automation | AWS::Bedrock::DataAutomationProject, AWS::Bedrock::DataAutomationInvocation, AWS::Bedrock::DataAutomationProfile, AWS::Bedrock::Blueprint |
Advanced event selectors를 사용하여 AgentCore 데이터 이벤트를 활성화합니 다. Amazon Bedrock AgentCore 데이터 이벤트를 참조하세요.
| 카테고리 | 리소스 유형 |
|---|---|
| Runtime & Gateway | AWS::BedrockAgentCore::Gateway, AWS::BedrockAgentCore::Runtime, AWS::BedrockAgentCore::RuntimeEndpoint |
| Built-in Tools | AWS::BedrockAgentCore::CodeInterpreter, AWS::BedrockAgentCore::Browser |
| Identity & Credentials | AWS::BedrockAgentCore::WorkloadIdentity, AWS::BedrockAgentCore::TokenVault, AWS::BedrockAgentCore::OAuth2CredentialProvider, AWS::BedrockAgentCore::APIKeyCredentialProvider |
| Memory & Evaluation | AWS::BedrockAgentCore::Memory, AWS::BedrockAgentCore::Evaluator |
여기에 추가로 제공되는 AgentCore 리소스 유형도 포함합니다.
모든 리전에서 관리 이벤트(Read 및 Write)가 활성화되어 있는지 확인합니다 — 이는 InvokeModel 및 Converse를 관리 이벤트로 자동 캡처하며, CreateGateway, CreateGatewayTarget 등과 같은 AgentCore 관리 이벤트도 캡처합니다. CloudTrail 관리 이벤트를 참조하세요.
이상 탐지를 위해 CloudTrail Insights(ApiCallRateInsight 및 ApiErrorRateInsight)를 활성화합니다. CloudTrail Insights 이벤트를 참조하세요.
Step 2: S3, Lambda, 네트워크 활동으로 확장
- 학습 데이터, 모델 아티팩트, CI/CD 파이프라인 버킷에 대해 Amazon S3 데이터 이벤트(쓰기 전용)를 활성화합니다. Amazon S3 및 Lambda 데이터 이벤트를 참조하세요.
- 프로덕션 AI 파이프라인 함수에 대해 Lambda 데이터 이벤트를 활성화하고, 개발/테스트는 제외합니다. Amazon S3 및 Lambda 데이터 이벤트를 참조하세요.
- Bedrock, S3, Lambda VPC 엔드포인트에 대해 네트워크 활동 이벤트를 활성화하고,
VpceAccessDenied를 대상으로 합니다. CloudTrail 네트워크 활동 이벤트를 참조하세요.
Step 3: CloudWatch Logs로 전달
- CloudTrail 트레일이 CloudWatch Logs 로그 그룹으로 전달하도록 구성합니다.
3단계: CloudTrail 기반 탐지 규칙 구축
- CloudTrail 이벤트에 대한 메트릭 필터를 생성합니다 (비인가 Bedrock 접근, 가드레일 변경, 로깅 중단). 메트릭 필터를 참조하세요.
- 각 메트릭 필터에 SNS 알림 대상을 포함한 CloudWatch 알람을 생성합니다. CloudWatch 알람을 참조하세요.
- 상위 IAM 자격 증명 및 소스 IP를 식별하기 위한 Contributor Insights 규칙을 생성합니다. Contributor Insights 규칙을 참조하세요.
4단계: 크로스 파이프라인 상관관계 쿼리 구축
- 표준 CloudTrail 탐지를 위한 CloudWatch Logs Insights 쿼리를 개발합니다. 보안 분석을 참조하세요.
- CloudTrail과 Bedrock Model Invocation Logging 및 ADOT 스팬을 결합하는 크로스 파이프라인 JOIN 쿼리를 구축합니다. 크로스 파이프라인 상관관계 쿼리를 참조하세요.
- 보안 및 운영 분석가의 반복 사용을 위해 검증된 쿼리를 저장합니다.