AWS 사용하기 02 - IAM 사용법

AWS 사용하기 02 - IAM 사용법

2018, Sep 13    

IAM 이란?

IAM 이란 Identify and Access Management 의 약자로 AWS 리소스를 사용하는 유저, 그룹, 사용권한 등을 전체적으로 관리하는 서비스 입니다. 모든 서비스에 걸쳐 영향을 미치기 때문에 AWS 를 잘 사용하기 위해서나 특히 팀이나 여러명이 작업하는 프로젝트라면 필수적으로 알고 넘어가야 하는 부분입니다.

조금 사용해본 경험으로 보자면 매우 유연하고 세밀한 부분까지 권한설정이 가능했습니다. 반면에 사용하기는 그다지 어렵지 않았습니다. 업계표준이 된건 다 이유가 있는듯 합니다.


IAM 의 사용법

IAM 의 사용법을 간략하게 살펴보겠습니다. 개발자의 경우는 이정도의 지식만 있어도 충분히 유연하게 사용할 수 있다고 생각합니다.

AWS 화면 상단에 있는 Service => IAM 클릭. Alt text


IAM 대쉬보드의 초기화면은 아래와 같습니다. Alt text


왼쪽의 있는 메뉴들을 하나씩 살펴보겠습니다.
먼저 Groups 입니다.
그룹을 추가, 삭제 하고, 그룹마다 세부적인 리소스 사용원한을 부여 하고, 유저들을 그룹별로 묶어 관리할 수 있습니다. 그룹에 소속된 유저는 자동으로 그룹이 가지고 있는 권한을 부여받게 됩니다.

그룹의 대쉬보드 화면. Alt text


두번째로 User 메뉴입니다.
유저 메뉴에서는 유저를 추가, 삭제하고, 유저를 그룹에 소속시키거나, 특정 유저에게만 권한을 부여 하거나 할 수 있습니다.

유저를 하나 만들어 보겠습니다. 유저 메뉴화면에서 Add User 를 클릭합니다. Alt text


유저 생성화면으로 이동합니다.

Alt text


유저 생성시 Access Type 을 주의할 필요가 있습니다. 두가지 타입 중 Programmatic Access 는 AWS API 나 AWS CLI 를 통해서 접속하는 것을 의미합니다. 해당 유저가 개발자라면 반드시 체크 해주어야 하는 접근 타입입니다. AWS Management Console access 는 대쉬보드 콘솔을 통해서 접근하는 타입을 의미합니다. 예를들어 api 나 CLI 사용할 일이 없는 프로젝트 메니져나 서버 관리자라면 AWS Management Console Access 만 체크해서 불필요한 접근을 제한 할 수 있습니다.

Alt text
다음 화면에서는 생성하는 유저를 특정 그룹에 포함시키거나, 기존의 유저가 가지고 있는 권한들을 복붙하거나 권한을 유저에게 직접 부여할 수 있습니다.

Alt text


유저계정을 생성하고 나면 이메일로 생성된 아이디와 비밀번호를 메일로 보낼 수 있습니다. 메일을 받은 유저는 루트 유저가 아닌 생성한 유저 아이디와 비밀번호로 AWS 에 접속하게 됩니다.


다름으로 Roles 메뉴입니다. Alt text

Roles 의 경우는 사람이나 그룹에 권한을 부여하는 것이 아닌 AWS의 리소스에 권한을 부여하는 걔념입니다. 예를 들어 EC2 인스턴트 에서 Lambda 리소스의 함수를 부를 경우, EC2 는 Lambda 를 사용할 수 있는 권한이 없기 때문에 접근할 수 없게 됩니다. 이러한 경우 EC2 리소스에 Lambda 사용권한을 부여하게 되면 Lambda 서비스에 접근할 수 있게 됩니다.


마지막으로 Policies 까지만 살펴보겠습니다.
Alt text

Policy 는 번역하면 정책이지만 정책보다는 권한의 느낌이 더 강한 것 같습니다. 위에서 보았듯이 그룹, 유저, role 에 부여되는 권한들을 세부적으로 관리할 수 있습니다.
예를 들면 세부적인 권한의 경우,

EC2의 Nano2 의 인스턴트만 실행할 수 있도록한다.
S3에 특정 버켓만 읽기전용으로 접근하도록 한다.

와 같은 권한 들을 설정할 수 있습니다. 서버 관리자라면 Policies 에 대해서는 세부적으로 알아야 할 필요가 있지 않을까 합니다. 돈과 직결되는 부분이기 때문에 중요합니다. EC2에 비싼 인스턴스를 실수로 실행해 버리면 바로 과금폭탄:bomb: