최근 생성, 변경된 AWS 보안 그룹 목록 추출하기

쿼리 예시

table duration=1w AWS_CLOUDTRAIL_* 
| search event_source == "ec2.amazonaws.com" and event_name == "*SecurityGroup*" and not(read_only) 
| eval group_id = nvl(valueof(req_params, "groupId"), valueof(resp_params, "groupId"))
| eval group_name = if(event_name == "CreateSecurityGroup", valueof(req_params, "groupName"), null)
| stats first(group_name) as group_name, min(if(event_name == "CreateSecurityGroup", _time, null)) as created, max(_time) as updated, count, values(event_name) as event_names by group_id
| eval event_names = strjoin("\n", event_names)
  • event_source == "ec2.amazonaws.com" and event_name == "*SecurityGroup*" 조건으로 EC2 보안 그룹에 관련된 로그만 필터링합니다. (ElastiCache 등이 섞일 수 있음)
  • not(read_only) 조건은 실제 설정이 변경된 경우를 의미합니다.
  • 보안 그룹 생성 시에는 요청 매개변수(req_params)에 그룹 이름이 있으므로 추출하여 태깅할 수 있습니다.
  • CreateSecurityGroup인 경우의 로그 타임스탬프를 보안 그룹 생성 시각으로, 나머지는 수정 시각으로 계산할 수 있습니다. (AWS 관리 콘솔에서도 생성 시각, 수정 시각은 확인할 수 없고 CloudTrail 로그를 통해서만 확인 가능함)

실행 예시