들어가며

기업에서 AWS를 사용할 때 여러명의 개발자가 하나의 AWS 계정에 접근하여 작업하는 경우가 빈번합니다. 적게는 두세명에서 많게는 수백, 수천명까지도 한 계정에 접근할 필요가 있습니다.

이 때 계정에 접근하기 위해 하나의 AWS 루트 계정 인증 정보를 사용하는 것은 매우 위험한 선택입니다. 또한 루트 계정이 아닌 IAM 사용자에 관리자 권한을 부여하고 공유해서 사용하는 것 역시 보안적으로 심각한 문제를 야기할 수 있습니다.

루트 계정과 IAM 사용자와의 차이는 이 글에서 확인하실 수 있습니다.

이 글에서는 루트 계정 인증 정보 공유의 위험성과 올바른 대안을 자세히 알아보겠습니다.

루트 계정 인증 정보 공유의 심각한 위험성

루트 계정 인증 정보가 있는 경우 계정에 대한 무제한적 권한을 보유하게 되므로 다음의 문제를 야기할 수 있습니다.

실수에 의한 인프라 삭제

<aside> 💡

개발자 A가 실수로 테스트용 데이터베이스가 아닌 운영 데이터베이스를 삭제한 경우

</aside>

위의 사례처럼 루트 계정은 모든 권한을 가지고 있기 때문에 개발자의 실수를 미연에 방지할 수 없습니다. 만약 개발자 A가 보유한 IAM 사용자가 다음의 권한을 갖고 있다면 어떨까요?

이 경우 개발자 A가 실수로 운영 데이터베이스 삭제 명령어를 입력하거나 콘솔에서 오조작을 하더라도, 권한 부족으로 삭제가 불가능합니다.

즉, 일상적인 개발 시 운영 관련 서비스 삭제처럼 불필요한 동작을 할 수 없도록 미연에 방지할 수 있습니다.

보안 사고 시 피해 범위 확산

<aside> 💡

개발자 B가 개인 노트북에서 루트 계정 인증 정보를 사용하기 위해 인증 정보를 복사해두었다가 노트북 해킹으로 인해 인증 정보가 유출된 경우

</aside>

이 경우 악의를 가진 해커가 루트 계정에 접근하여 계정 내의 여러 서비스를 수정, 삭제하거나 코인 채굴등을 위해 불필요한 컴퓨팅 리소스를 생성하여 과금이 발생하는 등 여러 악용 사례가 발생할 수 있습니다.

루트 계정을 가장 안전하게 지키는 방법 중 하나는 바로 루트 계정 인증 정보를 평소에 사용하지 않는 것입니다. 이 인증 정보를 사용하기 위해 다수의 사용자가 공유한다면 점점 노출 가능성이 높아지기 때문입니다.