보안, 감사 및 운영을 위한 CloudTrail MCP Server 사용
소개
CloudTrail Model Context Protocol (MCP) server를 사용하면 Kiro와 같은 에이전트가 자연어를 통해 AWS CloudTrail 이벤트를 직접 조회하고 분석할 수 있습니다. CloudWatch Logs 또는 CloudTrail Lake에 저장된 CloudTrail 이벤트에 에이전트를 연결하면, 복잡한 SQL 쿼리를 작성하거나 JSON 로그를 수동으로 파싱할 필요 없이 대화형 프롬프트만으로 보안 인시던트 조사, 계정 활동 감사, 운영 문제 해결, 컴플라이언스 보고서 생성 등의 작업을 수행할 수 있습니다.
중요한 이유
보안, 컴플라이언스, 운영 팀은 AWS 계정 활동을 파악하기 위해 CloudTrail 로그를 분석하는 데 상당한 시간을 투자합니다.
- 보안 팀은 의심스러운 활동을 신속하게 조사하고, 비인가 접근 시도를 추적하며, 여러 계정에 걸친 잠재적 보안 인시던트의 범위를 파악해야 합니다
- 컴플라이언스 팀은 누가 어떤 리소스에 접근했는지, 언제 변경이 이루어졌는지, 활동이 조직 정책에 부합하는지를 보여주는 감사 보고서를 생성해야 합니다
- 운영 팀은 API 호출을 추적하고, 구성 변경 사항을 식별하며, 문제 발생까지의 이벤트 순서를 파악하여 서비스 장애를 해결합니다
- 모든 팀이 CloudWatch Logs Insights 쿼리 구문, JSON 파싱, 기간 및 계정 간 이벤트 상관관계 분석에 어려움을 겪고 있습니다
CloudTrail MCP server가 없으면, 팀은 복잡한 쿼리를 작성하거나, JSON 로그를 수동으로 파싱하거나, 커스텀 대시보드를 구축해야 하며, 이는 중요한 보안 및 운영 워크플로에 시간, 복잡성, 그리고 사람의 실수 가능성을 추가합니다.
작동 방식
CloudTrail MCP server는 자연어 질문을 CloudTrail 데이터에 대한 쿼리로 변환하여 실행하고, 컨텍스트와 인사이트가 포함된 사람이 읽기 쉬운 결과를 반환합니다.
지원되는 데이터 소스:
- CloudWatch Logs: CloudWatch Logs Insights 쿼리 구문을 사용합니다 - MCP server가 사용 가능한 로그 그룹을 자동으로 검색합니다
- CloudTrail Lake: SQL 쿼리를 사용합니다 - MCP server가 CloudTrail Lake에서 사용 가능한 이벤트 데이터 스토어를 자동으로 검색합니다
주요 기능:
- 쿼리 구문 작성 대신 자연어로 질의
- 다중 계정 지원
- 시간 기반 분석 및 이벤트 상관관계 파악
- 보안 조사, 컴플라이언스 보고, 운영 문제 해결
설정 요구 사항
CloudTrail MCP server를 사용하려면 다음이 필요합니다:
CloudWatch Logs를 사용하는 경우:
- CloudWatch Logs로 이벤트를 전송하도록 구성된 AWS CloudTrail
- IAM 권한:
logs:StartQuery,logs:GetQueryResults,logs:DescribeLogGroups - MCP server가 사용 가능한 CloudTrail 로그 그룹을 자동으로 검색합니다
CloudTrail Lake를 사용하는 경우:
- CloudTrail Lake 이벤트 데이터 스토어가 생성 및 구성되어 있어야 합니다
- IAM 권한:
cloudtrail:StartQuery,cloudtrail:GetQueryResults,cloudtrail:DescribeEventDataStores,cloudtrail:ListEventDataStores(CloudTrail Lake 권한 참조) - MCP server가 사용 가능한 CloudTrail Lake 이벤트 데이터 스토어를 자동으로 검색합니다
공통 요구 사항:
- 에이전트에 MCP server가 구성되어 있어야 합니다
- 적절한 권한이 있는 AWS 자격 증명
구성
에이전트에서 CloudTrail MCP server를 구성하려면 AWS MCP Servers 문서의 설정 안내를 따르세요. MCP server는 AWS 계정에서 사용 가능한 CloudTrail 데이터 소스(CloudWatch Logs 및 CloudTrail Lake)를 자동으로 검색합니다.
프롬프트에서 조회할 데이터 소스를 선택적으로 지정할 수 있습니다:
Using CloudWatch Logs, show me all failed login attempts in the last 24 hours.
Using CloudTrail Lake, show me all IAM policy changes in the last 90 days.
실제 작업을 위한 샘플 프롬프트
보안 조사 프롬프트
1. 실패한 로그인 시도 조사
프롬프트:
Show me all failed console login attempts in the last 24 hours.
Include the username, source IP address, and timestamp.
수행 내용: CloudTrail 이벤트 레코드를 분석하여 잠재적인 무차별 대입 공격이나 자격 증명 유출을 식별합니다
활용 사례: 보안 팀이 다수의 실패한 로그인에 대한 알림을 받고 위협 수준을 평가해야 하는 경우
2. 권한 상승 식별
프롬프트:
Show me all IAM policy changes in the last 48 hours.
Focus on policies that grant admin permissions or modify IAM roles.
수행 내용: 잠재적인 권한 상승 시도를 탐지합니다
활용 사례: 보안 팀이 특정 행위자가 상승된 권한을 획득했는지 조사하는 경우
컴플라이언스 및 감사 프롬프트
3. 사용자 활동 보고서 생성
프롬프트:
Generate a complete audit report for IAM user demo.user for the month of January 2024.
Include all API calls, resources accessed, and any permission changes.