AWS CloudTrail에서 보안 그룹 변경을 감지하고 Lambda와 EventBridge를 이용하여 이메일 통지를 해 봤습니다.
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 AWS CloudTrail에서 보안 그룹 변경을 감지하고 Lambda와 EventBridge를 이용하여 이메일 통지를 해 봤습니다.
IAM 정책 및 역할 준비
먼저 Lambda에서 SNS를 이용하여 이메일을 통지하기 위해 필요한 역할을 생성할 필요가 있습니다.
[arn:aws:sns:ap-northeast-2:xxxxxxxxx] 에는 Amazon SNS에서 생성한 토픽 Arn을 입력합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"sns:Publish"
],
"Resource": "arn:aws:sns:ap-northeast-2:xxxxxxxxx"
}
]
}
Lambda 함수 코드 작성
정책과 역할을 생성했다면, Lambda 함수를 생성하고 코드를 작성합시다.
Lambda 함수의 런타임은 [Python 3.13]입니다.
[arn:aws:sns:ap-northeast-2:xxxxxxxxxxx] 항목에는 SNS 토픽의 Arn을 입력합니다.
import json
import boto3
sns_topic_arn = 'arn:aws:sns:ap-northeast-2:xxxxxxxxxxx'
sns = boto3.client('sns')
def lambda_handler(event, context):
detail = event['detail']
event_name = detail['eventName']
user = detail['userIdentity']['arn']
sg_id = detail.get('requestParameters', {}).get('groupId', 'N/A')
message = f"""
🚨 보안 그룹 변경 탐지
- 이벤트: {event_name}
- 사용자: {user}
- 보안 그룹 ID: {sg_id}
"""
sns.publish(
TopicArn=sns_topic_arn,
Subject='[알림] 보안 그룹 변경 감지',
Message=message
)
return {'statusCode': 200, 'body': '알림 전송 완료'}
EventBridge 규칙 생성
이제 마지막으로 EventBridge 규칙을 생성합시다.
{
"source": ["aws.ec2"],
"detail-type": ["AWS API Call via CloudTrail"],
"detail": {
"eventName": [
"AuthorizeSecurityGroupIngress",
"RevokeSecurityGroupIngress",
"AuthorizeSecurityGroupEgress",
"RevokeSecurityGroupEgress",
"CreateSecurityGroup",
"DeleteSecurityGroup"
]
}
}
추가한 각 항목에 대한 설명은 아래 표를 통해 확인할 수 있습니다.
이벤트 이름 | 설명 |
---|---|
AuthorizeSecurityGroupIngress | 인바운드 규칙 추가 |
RevokeSecurityGroupIngress | 인바운드 규칙 제거 |
AuthorizeSecurityGroupEgress | 아웃바운드 규칙 추가 |
RevokeSecurityGroupEgress | 아웃바운드 규칙 제거 |
CreateSecurityGroup | 보안 그룹 생성 |
DeleteSecurityGroup | 보안 그룹 삭제 |
결과 확인
보안 그룹을 생성하거나 규칙을 추가, 제거, 변경했을 경우 아래와 같이 이메일로 통지가 오는 것을 확인할 수 있습니다. 이메일 내용에는 이벤트가 발생한 보안 그룹과 발생한 이벤트, 조작한 사용자를 확인할 수 있습니다.
문의 사항은 클래스메소드 코리아로!
클래스메소드 코리아에서는 다양한 세미나 및 이벤트를 진행하고 있습니다.
진행중인 이벤트는 아래 페이지를 참고해주세요.
AWS에 대한 상담 및 클래스 메소드 멤버스에 관한 문의사항은 아래 메일로 연락주시면 감사드립니다!
Info@classmethod.kr