AWS 사용하기 02 - IAM 사용법
IAM 이란?
IAM 이란 Identify and Access Management 의 약자로 AWS 리소스를 사용하는 유저, 그룹, 사용권한 등을 전체적으로 관리하는 서비스 입니다. 모든 서비스에 걸쳐 영향을 미치기 때문에 AWS 를 잘 사용하기 위해서나 특히 팀이나 여러명이 작업하는 프로젝트라면 필수적으로 알고 넘어가야 하는 부분입니다.
조금 사용해본 경험으로 보자면 매우 유연하고 세밀한 부분까지 권한설정이 가능했습니다. 반면에 사용하기는 그다지 어렵지 않았습니다. 업계표준이 된건 다 이유가 있는듯 합니다.
IAM 의 사용법
IAM 의 사용법을 간략하게 살펴보겠습니다. 개발자의 경우는 이정도의 지식만 있어도 충분히 유연하게 사용할 수 있다고 생각합니다.
AWS 화면 상단에 있는 Service => IAM 클릭.
IAM 대쉬보드의 초기화면은 아래와 같습니다.
왼쪽의 있는 메뉴들을 하나씩 살펴보겠습니다.
먼저 Groups 입니다.
그룹을 추가, 삭제 하고, 그룹마다 세부적인 리소스 사용원한을 부여 하고, 유저들을 그룹별로 묶어 관리할 수 있습니다. 그룹에 소속된 유저는 자동으로 그룹이 가지고 있는 권한을 부여받게 됩니다.
그룹의 대쉬보드 화면.
두번째로 User 메뉴입니다.
유저 메뉴에서는 유저를 추가, 삭제하고, 유저를 그룹에 소속시키거나, 특정 유저에게만 권한을 부여 하거나 할 수 있습니다.
유저를 하나 만들어 보겠습니다. 유저 메뉴화면에서 Add User 를 클릭합니다.
유저 생성화면으로 이동합니다.
유저 생성시 Access Type 을 주의할 필요가 있습니다. 두가지 타입 중 Programmatic Access 는 AWS API 나 AWS CLI 를 통해서 접속하는 것을 의미합니다. 해당 유저가 개발자라면 반드시 체크 해주어야 하는 접근 타입입니다. AWS Management Console access 는 대쉬보드 콘솔을 통해서 접근하는 타입을 의미합니다. 예를들어 api 나 CLI 사용할 일이 없는 프로젝트 메니져나 서버 관리자라면 AWS Management Console Access 만 체크해서 불필요한 접근을 제한 할 수 있습니다.
다음 화면에서는 생성하는 유저를 특정 그룹에 포함시키거나, 기존의 유저가 가지고 있는 권한들을 복붙하거나 권한을 유저에게 직접 부여할 수 있습니다.
유저계정을 생성하고 나면 이메일로 생성된 아이디와 비밀번호를 메일로 보낼 수 있습니다. 메일을 받은 유저는 루트 유저가 아닌 생성한 유저 아이디와 비밀번호로 AWS 에 접속하게 됩니다.
다름으로 Roles 메뉴입니다.
Roles 의 경우는 사람이나 그룹에 권한을 부여하는 것이 아닌 AWS의 리소스에 권한을 부여하는 걔념입니다. 예를 들어 EC2 인스턴트 에서 Lambda 리소스의 함수를 부를 경우, EC2 는 Lambda 를 사용할 수 있는 권한이 없기 때문에 접근할 수 없게 됩니다. 이러한 경우 EC2 리소스에 Lambda 사용권한을 부여하게 되면 Lambda 서비스에 접근할 수 있게 됩니다.
마지막으로 Policies 까지만 살펴보겠습니다.
Policy 는 번역하면 정책이지만 정책보다는 권한의 느낌이 더 강한 것 같습니다. 위에서 보았듯이 그룹, 유저, role 에 부여되는 권한들을 세부적으로 관리할 수 있습니다.
예를 들면 세부적인 권한의 경우,
EC2의 Nano2 의 인스턴트만 실행할 수 있도록한다.
S3에 특정 버켓만 읽기전용으로 접근하도록 한다.
와 같은 권한 들을 설정할 수 있습니다. 서버 관리자라면 Policies 에 대해서는 세부적으로 알아야 할 필요가 있지 않을까 합니다. 돈과 직결되는 부분이기 때문에 중요합니다. EC2에 비싼 인스턴스를 실수로 실행해 버리면 바로 과금폭탄