한 줄 정의

CloudTrail은 AWS 계정 안에서 사용자, 역할, AWS 서비스가 한 일을 이벤트로 남기는 감사 로그 서비스야. AI 기사에서 이 이름이 나오면 “모델이 더 똑똑해졌다”는 뜻이 아니라, 누가 어떤 계정과 권한으로 어떤 API를 호출했는지 나중에 확인할 수 있는 기록 체계가 붙는다는 뜻에 가까워.

예를 들어 2026년 4월 28일 AWS와 OpenAIOpenAI 모델, Codex, Bedrock Managed Agents를 제한 공개 미리보기로 발표했을 때 AWS는 IAM, PrivateLink, Guardrails, 암호화, CloudTrail 로그를 같이 적었어. 이 문장에서 CloudTrail은 모델 기능이 아니라 운영 통제야. 같은 OpenAI 모델이라도 OpenAI API를 직접 호출할 때와 Amazon Bedrock을 거칠 때 감사 로그가 남는 위치와 운영 책임이 달라질 수 있어.

어떻게 작동하나

CloudTrail은 AWS 활동을 이벤트로 기록하고, 그 이벤트를 보는 길을 크게 3가지로 나눠. 첫째는 Event history야. AWS 계정을 만들면 기본으로 쓸 수 있고, 최근 90일의 관리 이벤트를 콘솔이나 lookup-events API로 찾아볼 수 있어. 이건 빠른 확인용이라 trail이나 event data store 설정과 별개로 움직여.

둘째는 Trails야. trail을 만들면 이벤트를 S3 버킷으로 보내고, 필요하면 CloudWatch Logs나 EventBridge로도 이어 붙일 수 있어. AWS 문서는 trail 로그 파일이 보통 여러 번, 대략 5분 간격으로 게시되고 평균 약 5분 안에 전달되지만 보장 시간은 아니라고 설명해. 사고 조사에서 “방금 호출했는데 왜 아직 안 보이지?” 하는 장면이 생길 수 있는 이유야.

셋째는 CloudTrail Lake야. 이벤트를 query 가능한 event data store에 모으는 방식이고, 선택한 가격 옵션에 따라 최대 3,653일 또는 2,557일까지 보관할 수 있어. 장기 감사, 여러 계정 조사, Athena나 Lake 쿼리 같은 흐름이 필요하면 Event history만으로는 부족해.

이벤트 유형은 한 번에 뭉뚱그리면 헷갈려. 이렇게 나눠 보면 돼.

  • 관리 이벤트: IAM 정책 변경, VPC 생성, 콘솔 로그인처럼 계정과 리소스를 관리하는 제어 영역 활동이야.
  • 데이터 이벤트: S3 GetObject, Lambda Invoke처럼 리소스 안에서 실제로 읽고 쓰는 고용량 작업이야.
  • VPC endpoint 활동 기록: 사설망 endpoint를 거친 AWS API 호출을 남겨서, private 경로에서 어떤 서비스가 불렸는지 보게 해.
  • Insights: API 호출량이나 오류율이 평소와 다르게 튈 때 남기는 이상 징후 이벤트야.

기본값은 관리 이벤트 중심이라, 데이터 쪽 호출, VPC endpoint 경유 호출, Insights까지 보고 싶으면 별도 설정과 비용을 같이 봐야 해.

왜 중요한가

AI agent가 실제 업무에 들어오면 “답이 맞나”보다 먼저 “무슨 권한으로 무슨 일을 했나”가 문제가 되는 순간이 와. Codex가 저장소를 읽고, Managed Agents가 도구를 호출하고, 사내 문서 검색 agent가 S3나 Lambda를 건드린다면 결과 텍스트만 봐서는 충분하지 않아. 누가 호출했는지, 어떤 역할 권한이 쓰였는지, 어느 region에서 어떤 API가 실행됐는지 남아야 나중에 되짚을 수 있어.

CloudTrail은 이때 운영 쪽 질문의 기준점이 돼. 보안팀은 IAM 변경, 권한 상승, 의심스러운 AccessDenied 반복, 평소와 다른 API 호출량을 보고 싶어 하고, 재무팀은 어떤 계정과 기능에서 비용이 생겼는지 추적하고 싶어 해. 개발팀은 실패한 에이전트 실행을 재현하려고 요청 ID, 이벤트가 나온 서비스, 호출 이름, 출발 IP 같은 단서를 찾게 돼. 전부 벤치마크에는 안 나오는 항목이야.

특히 Bedrock 문맥에서는 CloudTrail이 Guardrails와 다른 층위라는 점이 중요해. Guardrails는 입력과 출력 정책을 다루고, CloudTrail은 AWS API 활동의 흔적을 다뤄. 둘 다 필요하지만 서로를 대신하지 않아. “Bedrock에 올렸으니 안전하다”가 아니라 “Bedrock 경로에서는 IAM, 네트워크, 암호화, Guardrails, CloudTrail을 어떤 조합으로 켤 수 있나”로 봐야 해.

주의해서 볼 점

첫째, CloudTrail은 디버거가 아니야. AWS 문서는 CloudTrail 로그 파일이 public API 호출의 순서 있는 stack trace가 아니라고 설명해. 에이전트가 왜 그런 결론을 냈는지, 모델 내부 추론이 어떻게 흘렀는지까지 복원해 주는 도구로 보면 과해. 그건 trace, eval, 애플리케이션 로그, 승인 기록을 같이 붙여야 해.

둘째, 기본 설정만 믿으면 조사 범위가 비어. Event history는 최근 90일 관리 이벤트 확인에는 좋지만 장기 보관이 아니고, 데이터 이벤트나 사설 endpoint 호출 기록은 기본으로 다 켜지는 항목이 아니야. S3 객체 접근, Lambda invoke, VPC endpoint 경유 Bedrock 호출을 봐야 하는 팀이라면 어떤 이벤트 유형을 켤지 먼저 정해야 해.

셋째, CloudTrail이 남는다고 운영 책임이 사라지지 않아. Bedrock Managed Agents가 신원과 작업 로그를 제공해도 agent가 호출할 수 있는 도구 범위, 사람 승인 단계, 실패 재시도, 비용 라벨, 민감 데이터 마스킹은 별도 설계가 필요해. CloudTrail은 나중에 “무슨 일이 있었나”를 보는 기록에 가깝고, 애초에 “하면 안 되는 일을 못 하게 막는 장치”는 IAM, 네트워크 정책, Guardrails, 애플리케이션 권한에서 같이 잡아야 해.