AWS Management Console 접속시 SMS 문자 받기

AWS Management Console (웹 콘솔) 접속시 알림 SMS 문자 받기

CloudTrail + CloudWatch Event + SNS 조합으로 쉽게 구현 가능하다.


1. CloudTrail 설정

새 CloudTrail 추적을 생성한다.

만일 기존에 CloudTrail 추적이 이미 있는 경우 생성할 필요가 없다.



2. SNS 설정

SNS 주제를 생성한다. 선택 사항은 입맛에 맞게 세팅한다.

주제 생성 후, 구독 생성 버튼을 클릭하여 알림을 받을 곳을 선택한다.

필자의 경우 AWS 로그인 감지시 SMS 문자 및 이메일로 알림을 받도록 설정하였다.
> EMAIL, SMS 구독을 생성한다.


3. CloudWatch Event 설정

CloudWatch > 이벤트 > 규칙을 하나 새로 만든다.


이벤트 소스는 "AWS 콘솔 로그인" > "로그인 이벤트"를 선택한다.

대상은 누구에게 어떤 메시지를 전달할 것인지 세팅한다.

2단계에서 만든 SNS 주제를 선택한다.


CloudTrail에서 넘어오는 양식 그대로 SNS로 넘겨줘도 되고, 별도 format을 지정해도 된다.

필자의 경우 '로그인 결과', '접속 IP주소', '계정명'을 SNS 주제에 넘겨준다.


<입력 변환기>

1
2
3
4
5
6
{
 "result" : "$.detail.responseElements.ConsoleLogin",
 "ip" : "$.detail.sourceIPAddress",
 "time" : "$.time",
 "user" : "$.detail.userIdentity.userName"
}
cs

1
"AWS 콘솔 로그인 <result> at <ip>, <user>"
cs


CloudTrail에서 넘어오는 Parameter 양식은 다음 링크에서 확인이 가능하다.

https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-aws-console-sign-in-events.html


이 양식을 이용하면 다양한 조합의 format을 선택할 수 있다.

계정 정보, 리전, IP 주소, 브라우저, 접속 성공 여부 등 다양한 요소들을 활용할 수 있다.




테스트

필자의 경우 계정 정보(어떤 IAM 유저인지), 접속한 IP 주소, 로그인 성공 여부를 실시간으로 알림받도록 설정하였다.

Root 계정 / IAM 계정으로 웹 콘솔 접속을 시도하는 경우 아무리 늦어도 1분 내로 SMS와 메일이 도착한다.


SNS 와 연동되므로, SMS와 문자 등을 시작해서 Lambda 함수와의 연계, Slack 연계, App Push 알림 등 무궁무진한 방법으로 연동이 가능할 것이다.

댓글