기업에서 AWS를 사용할 때 여러명의 개발자가 하나의 AWS 계정에 접근하여 작업하는 경우가 빈번합니다. 적게는 두세명에서 많게는 수백, 수천명까지도 한 계정에 접근할 필요가 있습니다.
이 때 계정에 접근하기 위해 하나의 AWS 루트 계정 인증 정보를 사용하는 것은 매우 위험한 선택입니다. 또한 루트 계정이 아닌 IAM 사용자에 관리자 권한을 부여하고 공유해서 사용하는 것 역시 보안적으로 심각한 문제를 야기할 수 있습니다.
루트 계정과 IAM 사용자와의 차이는 이 글에서 확인하실 수 있습니다.
이 글에서는 루트 계정 인증 정보 공유의 위험성과 올바른 대안을 자세히 알아보겠습니다.
루트 계정 인증 정보가 있는 경우 계정에 대한 무제한적 권한을 보유하게 되므로 다음의 문제를 야기할 수 있습니다.
<aside> 💡
개발자 A가 실수로 테스트용 데이터베이스가 아닌 운영 데이터베이스를 삭제한 경우
</aside>
위의 사례처럼 루트 계정은 모든 권한을 가지고 있기 때문에 개발자의 실수를 미연에 방지할 수 없습니다. 만약 개발자 A가 보유한 IAM 사용자가 다음의 권한을 갖고 있다면 어떨까요?
이 경우 개발자 A가 실수로 운영 데이터베이스 삭제 명령어를 입력하거나 콘솔에서 오조작을 하더라도, 권한 부족으로 삭제가 불가능합니다.
즉, 일상적인 개발 시 운영 관련 서비스 삭제처럼 불필요한 동작을 할 수 없도록 미연에 방지할 수 있습니다.
<aside> 💡
개발자 B가 개인 노트북에서 루트 계정 인증 정보를 사용하기 위해 인증 정보를 복사해두었다가 노트북 해킹으로 인해 인증 정보가 유출된 경우
</aside>
이 경우 악의를 가진 해커가 루트 계정에 접근하여 계정 내의 여러 서비스를 수정, 삭제하거나 코인 채굴등을 위해 불필요한 컴퓨팅 리소스를 생성하여 과금이 발생하는 등 여러 악용 사례가 발생할 수 있습니다.
루트 계정을 가장 안전하게 지키는 방법 중 하나는 바로 루트 계정 인증 정보를 평소에 사용하지 않는 것입니다. 이 인증 정보를 사용하기 위해 다수의 사용자가 공유한다면 점점 노출 가능성이 높아지기 때문입니다.