AWS IAM(Identity and Access Management)란 무엇일까?

AWS IAM 개요와 IAM 사용자, IAM 그룹

Posted by Juri on February 27, 2022

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 사용자를 생성해주자.

  1. IAM 메뉴에서 [사용자]를 선택하고 [사용자 생성]을 선택한다. 콘솔로 IAM 사용자를 이용할 수 있도록 암호를 선택, 콘솔에 최초 로그인을 하면 사용자가 다시 비밀번호를 생성할 수 있도록 비밀번호 재설정 필요를 선택한다.

  2. IAM 사용자에 부여하고자 하는 정책을 선택한다. 정책은 AWS서비스에 대한 접근 권한이다. AmazonRDSReadOnlyAccess를 선택해 RDS 읽기 권한을 준다. 참고로 AmazonRDSFullAccess는 RDS의 모든 조작을 허가하는 권한이다.
  3. IAM 사용자를 추가하면 바로 IAM 사용자 콘솔로 들어갈 수 있는 콘솔 링크와 비밀번호가 생성된다.

  4. 위에서 생성된 콘솔링크로 들어가서 비밀번호를 입력하면 비밀번호를 재설정할 수 있는 화면이 뜬다.

  5. 비밀번호 재설정을 마치고 콘솔로 들어간다. IAM 메뉴를 들어가면 권한이 없다고 뜨는 것을 확인할 수 있다. 이 IAM 사용자는 RDS 읽기를 제외한 모든 AWS 서비스를 이용할 수 없다.

IAM 그룹

IAM 사용자마다 정책을 설정하면 관리 측면에서 부담이 생긴다. IAM 그룹을 사용하면 그룹에 IAM 사용자를 등록해 여러 개의 IAM 사용자를 그룹별로 관리할 수 있다.

개요 : 마케팅팀에 30명의 신규직원이 들어왔다. IAM 그룹으로 모든 마케팅팀원의 IAM 사용자에 RDS 읽기권한을 부여해보자.

  1. [사용자그룹 생성]을 눌러 그룹이름과 그룹에 추가할 사용자를 선택한다.
  2. 그룹에 추가할 정책을 선택한다.
  3. IAM 그룹이 생성되었고 그룹안에 마케팅팀 직원인 Juri가 추가됐음을 확인할 수 있다.

마치며

처음 입사했을 때 IAM 사용자가 뭔지 잘 모르는 상태로 AWS를 이용하려고 해서 권한이 없다고 떴을 때 당황했던 기억이 난다. 지금은 하루도 빠짐없이 IAM 사용자계정에 로그인하는 사람으로서 어느 정도 IAM에 대해서 이해했다고 자부한다.

언젠가는 내가 IAM 사용자를 생성해주는 사람이 되어있길 바라며 .. AWS IAM은 여기까지 알아보도록 하자.!