OTP 앱과 멀티 유저 권한 관리로 보안에 신경을 쓰는 MFAIAMAWS 아마존 웹 서비스 클라우드 서버 과금 폭탄 방지법,

 나는 과거에 필요에 따라 3대 클라우드 서버로 불리는 아마존 웹서비스, 구글 클라우드, 마이크로소프트 어저를 모두 사용해 봤다.

뿐만 아니라 국내 및 해외에 존재하는 다양한 중소형 호스팅 회사와 클라우드 서비스도 사용했고, 이들을 깊은 수준에서 사용한 것이 아니라 IPS를 조달하기 위한 단순한 차원에서 사용했는데요.

나름대로 클라우드를 이용한 결과 어느 정도 돌아가는 원리에 대한 경험을 가질 수 있었다.

그리고 지금은 AWS 아마존 웹 서비스를 하나만 사용하고 있는데, 특히 라이트 세일이 등장한 이후로는 상당히 편리해져 만족하고 있다.

그런데 AWS를 포함한 해외 클라우드 서비스를 이용할 때 한 가지 주의해야 할 사항이 있는 것은 보안이다.

해외는 한국과 달리 공인인증서가 없어 결제 절차가 매우 단순해 거의 한 번 클릭만으로 결제가 이뤄지거나 결제 등록을 한 번 하면 이후 자동결제가 돼 버린다.

AWS도 한번 결제 등록을 하면 매달 e메일로 청구서가 올라와 자동으로 카드 결제가 이뤄지는데 이는 매우 편리한 일이지만 그 말은 한 번 실수를 하거나 해킹을 당했을 때 무관심하게 방치하면 과금 폭탄을 맞을 수 있다는 것이다.

따라서 AWS 아마추어존웨이브 서비스는 이러한 사태를 미연에 방지하기 위해 몇 가지 보안 정책을 제공하고 있는데, 크게 MFA와 IAM으로 나뉜다.

이 두 가지만 설정해 두어도, 보안 미비에 의한 과금 폭탄에 해당할 확률은 어느 정도 방어할 수 있다고 생각할 수 있다.

AWS 초창기에는 대부분 기업을 중심으로 사용되었지만 현재는 클라우드 서비스가 널리 알려지면서 일반 개인 사용자를 위한 간소화 버전인 라이트 세일 등도 생겨 일반인도 웹호스팅에서 클라우드로 많이 갈아타는 추세이기 때문입니다.

미리 몇 달치 또는 몇 년치를 선불하고 추가 결제 시 공인인증서가 필요한 국내 웹호스팅과는 결제 환경이 워낙 달라 크게 신경을 쓰지 못할 때가 많은 것 같다.

언뜻 복잡해 보이지만 알게 되면 그리 어렵지 않으므로 AWS를 서버로 사용할 때는 반드시 MFA와 IAM을 설정해 두는 것이 좋다.

MFA와 IAM은 AWS에 접속한 뒤 오른쪽 상단에 보이는 계정 ID를 클릭하면 나오는 드롭다운 메뉴에서 보안자격증을 클릭하면 설정할 수 있다.

그러면 MFA와 IAM은 무엇인가. 간단히 말해서 MFA는 일반적으로 한국에서 사용되는 OTP 기능으로, IAM은 마치 리눅스처럼 복수의 계정에 제한된 권한을 부여하여 AWS를 관리할 수 있게 한 것이다.
MFA는 AWS에서는 멀티팩터 인증이라고 하여 최상위 권한을 가진 루트 어카운트로 접속할 때 스마트폰 앱이나 기타 툴을 사용하여 OTP 인증을 거쳐 접근할 수 있도록 설정하는 것이다.
IAM은 모든 관리 권한을 갖는 루트 어카운트, 최초로 AWS에 가입할 때 만들어진 그 ID 이외에 제한된 권한만을 가진 서브 어카운트를 만들어 특정 권한만으로 접속하여 관리할 수 있도록 설정하는 것이다.
IAM을 사용하면 결제를 비롯한 중요한 권한은 부여되지 않고 기술적으로 필요한 몇 개의 권한만을 부여한 ID를 만들어 기술관리자에게 공급하거나 활용할 수 있다.
사실 나도 AWS가 제공하는 다양한 보안 정책을 100% 이해하는 게 아니라 딱 MFA와 IAM이 무엇으로 어떻게 사용하는지만 알고 적용하는 수준이다.

MFA 설정을 완료하면 이처럼 AWS를 로그인했을 때 멀티펙터 인증이라는 페이지가 뜨고 스마트폰의 OTP 앱을 켜고 나오는 숫자를 MFA 코드에 입력하면 비로소 로그인에 성공할 수 있다.

그냥 접속하기보다는 스마트폰이라는 별도 기기로 인증이 이뤄지기 때문에 해킹의 위험성이나 타인의 손에 로그인이 넘어가 마음대로 결제가 이뤄지는 상황을 방지할 수 있다.

영어로 모라모라 써있는데 다 이해하기는 어렵고. 요약하면 AWS에서는 MFA를 위해 다양한 방식의 인증 방법을 제공하고 있다.

가상 MFA 디바이스, U2F, 별도의 하드웨어 등 다양한 방법 중에서 선택할 수 있지만 가장 편리하고 빠르게 사용할 수 있는 것은 스마트폰 앱을 통해 MFA를 설정하는 것이다.
스마트폰 앱을 활용하는 경우를 제외하고는 다른 구매를 거쳐 인증기계를 사기도 해야 하는데 어디서 파는지 모르겠고, 그렇게까지 할 필요가 있나 싶기도 해서.
여기에서는 안드로이드 혹은 애플 스마트폰으로 어떻게 하는지 알아보도록 하겠습니다.

보시는 바와 같이 안드로이드 앱은 아이폰에서 사용 가능한 인증 어플리케이션은 Authy, Duo Mobile, Last Pass Authenticator, Microsoft Authenticator, Google Authenticator 등이 있습니다.

아마 이런 종류의 인증 앱은 AWS 이외의 서비스에서도 이용할 수 있을 텐데 마음에 드는 것은 무엇이든 쓰면 되고, 나는 이 중에서 구글 Authenticator 앱을 다운로드 받아서 사용하고 있다.
사용법은 매우 간단하지만 일반적으로 시중은행이 사용하는 OTP 기계와 똑같다고 할 수 있다.

안드로이드 마켓에서 g oogle authenticator 라고 검색하면 나오는 Google OTP 앱을 다운받으면 된다.

다운받아서 AWS에서 몇 가지 연동과정과 첫 번째 인증과정을 거치면 되는데 이 부분은 그냥 AWS “내 보안자격증” 메뉴에서 시키는 대로 하면 되므로 굳이 쓰지 않도록 합니다.
참고로 중간중간 내가 더듬었던 부분이 처음 인증할 때 2번 인증했어야 하는 부분이었는데 거기서 약간 더듬었던 것 외에는 무난하게 흘러간 것 같다.
MFA 설정이 완료되면 AWS 접속 시 MFA에서 등록한 스마트폰 OTP 앱 인증 없이는 연결이 불가능하므로
등록한 스마트폰을 잊지 않도록 자주 신경 써야 한다.
물론 스마트폰을 잊어버렸을 경우 해제하는 방법이 있을 것이다.

두 번째는 이와 같이 IAM을 활용해 다계정을 사용하는 보안 방법이다.

이는 앞에서도 설명한 바와 같이 가입 시 만들어진 최상위 권한을 가진 루트 어카운트로 계속 들어오고 들어오기를 반복하면서 AWS를 이용하면 보안성이 위험할 수 있으므로 제한된 권한을 가진 서브 어카운트로 관리해야 한다. 이런 내용인데 역시 영어로 되어있어서 어려워서 다 읽을 수는 없었다.
특히 개인 사용자가 아닌 그룹에서 AWS를 관리하는 회사나 조직 같은 경우 IAM의 설정은 선택이 아니라 필수적이다.
클라우드 서버의 특성상 매우 기술적으로 복잡하고 고난도로 흐를 수도 있지만 여러 사람이 관리를 하다 보면 서로 히스토리를 공유할 수 없고 엉킬 확률도 높아 실수가 발생할 경우 돌이킬 수 없는 대재앙이 발생할 수도 있다.
AWS는 EC2와 같은 인스턴스를 추가하는 과정이 매우 쉬운 편으로 별도의 절차 없이 과금이 자동으로 부여된다.
만약 대용량의 인스턴스를 추가해 놓고도 잊거나 방치하면 최소 한 달에 몇 백만원에서 몇 백만원의 과금 폭탄을 맞을 수 있으니. 반드시 MFAIAM 등의 보안 설정, 그리고 결제 절차에 세심하게 신경을 써 멘붕을 초래하는 사태를 방지해야 한다.