AWS에서 2억짜리 요금폭탄 면제받기까지

오형근·2022년 11월 12일
104

Project

목록 보기
9/10
post-thumbnail

안녕하세요, 개발자 여러분들!

저는 프론트엔드를 공부중인 학생 개발자입니다.

지금 제가 말씀드릴 케이스에 다른 분들이 비슷한 경험을 하지 않았으면 하는 마음에서 기록으로 남겨봅니다!!


사건의 발단

저는 프론트엔드 외에도 aws를 이용한 배포 및 자동화에 관심이 많아서 서버리스 서비스, 컴퓨팅 서비스 등 다양한 서비스를 사용해오고는 했습니다.

그러다 올해 8월 부주의했던 저는 깃허브에 제 IAM Access Key를 올려버리는 큰 실수를 했고, 결국 16만원의 비정상적인 요금이 발생했었습니다. 해외의 누군가가 비트코인 채굴에 사용했겠죠...

저는 이때 제가 생성하지 않은 EC2와 보안 그룹을 제거하는 등의 조치를 취하였지만, MFA나 CloudWatch 같은 추가적인 설정은 해주지 않았었어요...

이는 제가 군 복무 중에 있어서 휴대폰 사용이 제한된다는 이유에서였고, 당시 너무 안일하게 생각하고 설마 이런 일이 또 일어나겠어...? 라는 마음이 컸습니다.

그리고 10월...팀 프로젝트를 하면서 Elastic Beanstalk을 이용한 백엔드 배포를 설정을 다시 확인하던 어느 날 aws에 로그인하려고 하니 계정이 잠겨버리는 사태가 발생했습니다. 8월의 기억이 머릿속을 스쳐갔던 저는 바로 메일을 확인했고, 이미 5일 전에 이런 메일이 하나 날아왔었습니다...

첫 메일

네... 제목에서부터 제발 읽어달라고 하는 것을 보고 저는 정말 조마조마한 마음으로 메일을 확인했습니다.

아니나 다를까, 내용은 다음과 같았습니다.

당신이 사용하지 않은 것으로 확인되는 계정 로그인이 발생했다. 계정 해킹을 당한 것 같으니 지금 당장 계정을 확인해라. 5일 안에 확인하지 않으면 계정을 정지하겠습니다.

라는 내용이었습니다.

근데 보면 요 메일은 10월 20일에 왔고,,, 저는 프로젝트 한다고 바빠서 메일 다 넘기던 때였기 때문에(왜 그때 안 읽었을까...아직도 후회해요) 그냥 넘겨버린 채 5일이 지나가버린 이후였죠...

저는 설마하는 마음으로 결제 대시보드를 확인해보았고, 순간 머리가 멍해지면서 진짜 영화속에서나 보던 현실부정이 어떤건지 직접 체험할 수 있었습니다.

2억 청구서

에? 안경을 잘못 맞춘 줄 알았습니다.

리얼 2억

어무니...살려주세요...

놀랍게도 진짜 2억이었습니다. 정확히는 2억 1천 7백만원! 눈으로 보기만 해도 아찔하고 그냥 이게 내 통장 잔고였으면 좋겠다고 생각했습니다.

눈을 몇 번을 씻고 다시 봐도 금액은 그대로였고,,, 멘탈이 나갈 시간도 없이 상황 파악에 들어갔습니다.

일단 계정은 잠겨있으니 EC2를 통한 추가 과금은 없을 것이고, 빨리 aws에 계정을 풀어달라고 요청해서 제가 생성하지 않은 많은 리전의 EC2 및 오토 스케일링, 보안 그룹, 로드 밸런서 등등을 삭제해야했습니다.

aws에 케이스를 등록하고 한 시간 정도가 흘러 답변이 왔고, 저는 그 뒤로 약 3일 정도를 제 계정에 대한 비정상적인 요소들을 삭제하고 추가 보안 조치를 하며 보냈습니다.

보안 조치에 대한 것은 아래에 추가로 정리할게요!


조치 과정

아무튼 aws에서는 내 계정에 대한 보안 조치를 충분히 취하고 나면 결제 팀에 비용 조정을 요청하겠다고 했고, 저는 빠르게 절차를 따르면서도 다양한 커뮤니티에 제 사정을 알리고 조언을 구하고자 했습니다.

그래서 GDG Korea와 WantedDevCrew 두 슬랙 채널에 제 케이스를 소개하고 조언을 많이 구했고(AUSG에도 보내보려고 했는데, 당시에는 일단 두 곳에 답변하느라 바빴습니다...), 다양한 분들의 격려와 조언 그리고 저와 비슷한 케이스를 해결하셨던 분과 연락을 할 수 있었습니다.

그 분의 경우 4개월 가량 시간이 걸리셨다고 해서...저도 그 정도의 시간동안 계속 신경쓰면서 싸워야한다는 생각에 마음이 무거웠어요ㅠ

그래도 이 분이 자신의 케이스에 대해 자세하게 설명해주시고 도와주시려고 해서 정말 많이 도움이 되었습니다.

외에도 여기저기 구글링하면서 저와 비슷한 케이스들을 찾아봤는데, 보통은 다 천 만원 정도의 선에서 요금 청구가 날아왔고, aws에서 그 정도는 보통 면제를 해 주는 것 같더라구요. 그러다가 3년 정도 전에 3억의 비용 청구로 뉴스에 실렸던 분의 케이스를 찾았고 그 분은 80% 감면을 받으셨더라구요...2억도 80% 감면 받으면 4천만원인데,,,제가 감당할 수 있는 금액이 전혀 아니었습니다.

그냥 결제 팀에 제 금전이나 신분적인 상황을 최대한 어필하는 것 밖에는 할 수 있는 것이 없었습니다. 그저 기다리는 수밖에...!

그래서 전체 면제가 아니라 만약 80%정도 감면을 받을 경우 4000만원을 어디서 마련해야할지도 구체적으로 계획을 세웠던 것 같아요...


2주 뒤...결과

저는 운이 좋게 케이스를 생성한지 3일만에 빠르게 보안 조치를 마치고 결제 팀으로 바로 케이스가 넘어가서 길지 않은 시간 안에 처리가 된 것 같아요.

결과적으로는...
전체 면제

10월 및 8월에 사용된 금액 전부에 대한 100% 면제를 받을 수 있었습니다!!!!

하하...보면서도 정말 심장떨리네요. 너무 감사합니다 aws 형님들ㅜㅜㅜㅜ앞으로는 제대로 된 보안조치 하면서 사용할게요ㅜㅜㅜ


AWS 보안 조치

aws는 프리 티어를 사용한다고 해도 계정이 탈취당하거나 IAM Key가 탈취당하는 순간 프리티어를 무시할 정도로 많은 금액이 쏟아질 위험이 있습니다. 그래서 사전에 다양한 장치를 통해 이를 대비해야합니다.

제가 aws로부터 권고받고 지시받은 보안 조치 사항에 대해 공유해보려고 해요.

1. 사용하지 않는 IAM User, Access Key, Policy, Role은 전부 삭제하기

정말 중요합니다. 처음 aws를 사용하는 분들의 경우 IAM User를 생성하고 안 쓰는 User를 남겨두는 경우가 많은데, 절대 안됩니다 바로 지우세요

특히 Access Key 같은 요소들은 사용하지 않으면 무 조 건 지워야합니다.

또한 사용하지 않는 정책이나 역할들도 전부 지워주세요. 언제 어떻게 비정상적인 요금이 발생할지 모릅니다. aws 서비스를 사용할 때는 레거시를 그때그때 삭제한다는 생각을 해줘야합니다. 계정에 구멍을 내는 요소가 됩니다. 레거시가 기술 부채가 아니라 금전 부채가 되어버리는 불상사가 일어날 수 있어요...

2. CloudWatch, CloudTrail, Budget 등의 서비스 이용하기

위 세 서비스는 내 계정에서 일어나는 일들을 관찰하고 내가 설정한 한계값을 넘겼을 때 경고를 주는 좋은 서비스입니다.

저는 Budget과 CloudWatch를 이용하여 10달러 이상의 비용 요금이 발생할 때 메일이 바로 발송되도록 설정해서 앞으로는 빠르게 비용 누수를 확인할 수 있도록 해두었어요.

aws에서는 비정상적인 요금이 발생한다고 해당 요소를 바로 정지시키거나 하지 않기 때문에, 사용자가 이러한 장치들을 잘 설정하고 주의깊게 지켜보는 것이 중요합니다.

3. MFA 설정하기

저는 8월에 분명 조치하고 이후 IAM Key 같은 요소를 유출한 적도 없는데 왜 비용이 발생했을까요?

이는 계정 자체가 탈취당했기 때문입니다. aws에서는 MFA(Multi Factor Authentication)라는 추가 인증을 통해 루트 사용자 로그인을 아무나 하지 못하도록 막는 것을 권장하고 있습니다.

저는 군 복무 중이라는 것을 이유로 기존에 휴대폰을 이용한 MFA설정을 해주지 않았었고, 이것이 2억 청구를 만들어내는 시작이 되었습니다.

이걸 보는 여러분들은 MFA 설정이 되어있나요?


마치며

근 2주 반 정도의 기간동안 정말 살 떨리는 순간들의 연속이었습니다. aws 메일 받을 때마다 뭐 코로나 걸린것처럼 몸이 오들오들 떨렸습니다. 지금이야 잘 해결되었으니 이렇게 안심하며 글을 쓰지만, 실제로 2억을 마주할 때는 지금처럼 글을 쓸 것이라고 생각 못 했어요.

이후에 다른 누군가도 저처럼 억 단위의 요금 청구 문제에 부딪히실 수 있을 거라고 생각해요. 정말 누군가는 한 번 쯤 이런 일이 발생하겠죠. 그래도 이 사람은 이렇게 해결을 했으니 나도 할 수 있다는 마음가짐으로 침착하게 문제를 해결해 나가셨으면 좋겠어요.

아직 이런 일에 휩싸이지 않으신 분들도 남의 일이 아닐 수 있다는 생각으로 주의깊게 서비스를 사용하셨으면 좋겠어요!!

정말 그런 일은 없었으면 좋겠지만, 누군가 저와 비슷한 케이스로 고난을 겪고 있다면 도움을 드리고 싶습니다. 그때는 kandy1002@naver.com 으로 메일 주세요. 가능한 도와드리겠습니다.

profile
eng) https://medium.com/@a01091634257

17개의 댓글

comment-user-thumbnail
2022년 11월 17일

오 예전에 AWS 가입한 거 있어서 들어가봤는데 90일 지났다고 계정 삭제해 줬네요 ㅎㅎ!

1개의 답글
comment-user-thumbnail
2022년 11월 17일

와 이거 유명한 일 같았는데 잘 해결됐다니 다행이네요!

1개의 답글
comment-user-thumbnail
2022년 11월 18일

어후.. 생각만해도 엄청 심적으로 고생하셨을 것 같네요... MFA 설정도 다했지만 혹시 모르니 저도 한번 오랜만에 열어봐야겠네요 ㅎㅎ 😂

1개의 답글
comment-user-thumbnail
2022년 11월 19일

저도 AWS 해킹 당해서 2000만원 청구된 걸 해결한다고 몇주간 멘탈이 쭉쭉 갈려나갔었는데 2억 ㄷㄷ.. 해결하셔서 다행입니다!

1개의 답글
comment-user-thumbnail
2022년 11월 19일

궁금해서 질문드립니다: 어떤 경로로 루트 계정이 유출된건가요?

1개의 답글
comment-user-thumbnail
2022년 11월 20일

고생하셨어요ㅠㅠ 잘 해결돼서 다행입니다! 그리고 이야기를 공유해주셔서 감사해요 :)

1개의 답글
comment-user-thumbnail
2022년 11월 20일

우와 ... 고생하셨네요.

좋게 끝나서 다행입니다. AWS를 이용한 서비스가 아주 유용하지만, 과금이 청구될 수 있으나 항상 유의해서 사용해야겠네요. 좋은 게시글 잘 보고갑니다. AWS 보안 절차 설정할때 한번 더 와서 확인하고 가겠습니다!! :)

1개의 답글