IAM(Identity and Access Management)은 AWS가 제공하는 사용자 계정 관리 서비스이다. 사용자가 정당한 사용자인지 인증하고 사용자마다 이용할 수 있는 서비스를 제한한다. IAM 사용자 를 생성해 사용자가 어떤 AWS 리소스에 접근할 수 있는지 권한을 줄 수 있다.
AWS루트 사용자와 IAM 사용자
처음 AWS에 가입을 하면 받는 계정은 AWS 루트사용자
라고도 하며 AWS가 제공하는 모든 서비스를 조작할 수 있는 권한을 갖는다.
이와 달리 IAM 사용자
는 허가된 AWS 서비스를 조작할 수 있는 계정이다. 필요에 따라 여러 개를 생성할 수 있다. 콘솔이 아닌 AWS SDK
등을 통해 AWS 서비스를 이용할 땐 사용자 ID와 패스워드가 아닌 접근 키 (Access Key)
와 비밀접근 키(Secret Access Key)
로 인증할 수 있다.
예를 들어, 회사에 입사했을 때 회사 AWS 루트사용자가 아닌 IAM 사용자를 부여받는다. 이 IAM 사용자는 접근이 허가된 AWS 서비스에만 접근할 수 있다. 만약 이 IAM 사용자의 RDS의 접근 권한이 없다면 RDS에 접근할 수 없다. 또한, RDS에 접근권한이 있더라도 읽기권한만 있고 쓰기권한은 없을 수도 있다.
IAM 사용자계정 만들어보기
IAM 사용자는 기본으로 생성되지 않으며 루트 계정에서 IAM 사용자를 생성 후 AWS 콘솔에서 IAM 사용자로 로그인 할 수 있다.
개요 : 회사 마케팅팀에 신규팀원 Juri가 들어왔다. 서비스 사용자에 대한 통계를 내기 위해 사내 데이터베이스인 RDS에 접근하려고 한다. 데이터가 유실되거나 변조되는 것을 막기 위해 신규팀원에게 RDS 읽기권한만 주어진 IAM 사용자를 생성해주자.
-
IAM 메뉴에서 [사용자]를 선택하고 [사용자 생성]을 선택한다. 콘솔로 IAM 사용자를 이용할 수 있도록
암호
를 선택, 콘솔에 최초 로그인을 하면 사용자가 다시 비밀번호를 생성할 수 있도록비밀번호 재설정 필요
를 선택한다. - IAM 사용자에 부여하고자 하는 정책을 선택한다. 정책은 AWS서비스에 대한 접근 권한이다.
AmazonRDSReadOnlyAccess
를 선택해 RDS 읽기 권한을 준다. 참고로AmazonRDSFullAccess
는 RDS의 모든 조작을 허가하는 권한이다. -
IAM 사용자를 추가하면 바로 IAM 사용자 콘솔로 들어갈 수 있는 콘솔 링크와 비밀번호가 생성된다.
-
위에서 생성된 콘솔링크로 들어가서 비밀번호를 입력하면 비밀번호를 재설정할 수 있는 화면이 뜬다.
- 비밀번호 재설정을 마치고 콘솔로 들어간다. IAM 메뉴를 들어가면 권한이 없다고 뜨는 것을 확인할 수 있다. 이 IAM 사용자는 RDS 읽기를 제외한 모든 AWS 서비스를 이용할 수 없다.
IAM 그룹
IAM 사용자마다 정책을 설정하면 관리 측면에서 부담이 생긴다. IAM 그룹
을 사용하면 그룹에 IAM 사용자를 등록해 여러 개의 IAM 사용자를 그룹별로 관리할 수 있다.
개요 : 마케팅팀에 30명의 신규직원이 들어왔다. IAM 그룹으로 모든 마케팅팀원의 IAM 사용자에 RDS 읽기권한을 부여해보자.
- [사용자그룹 생성]을 눌러 그룹이름과 그룹에 추가할 사용자를 선택한다.
- 그룹에 추가할 정책을 선택한다.
- IAM 그룹이 생성되었고 그룹안에 마케팅팀 직원인 Juri가 추가됐음을 확인할 수 있다.
마치며
처음 입사했을 때 IAM 사용자가 뭔지 잘 모르는 상태로 AWS를 이용하려고 해서 권한이 없다고 떴을 때 당황했던 기억이 난다. 지금은 하루도 빠짐없이 IAM 사용자계정에 로그인하는 사람으로서 어느 정도 IAM에 대해서 이해했다고 자부한다.
언젠가는 내가 IAM 사용자를 생성해주는 사람이 되어있길 바라며 .. AWS IAM은 여기까지 알아보도록 하자.!