AWS IAM

IAM 기초

IAM 소개

“AWS Identity and Access Management 이하, IAM”을 사용하면 AWS 서비스와 리소스에 대한 액세스를 안전하게 관리할 수 있다. 또한, AWS 사용자 및 그룹을 만들고 관리하며 AWS 리소스에 대한 액세스를 허용 및 거부 할 수 있다.

AWS에서 Root사용자만이 할 수 있는 행동(IAM에게 결제 정보 위임, 이메일 변경 등)이 아니라면 AWS를 이용 할 때 반드시 IAM 사용자로 관리 해야한다.

이유는 IAM 사용자의 권한 또는 그룹은 언제든 빼앗아 행동을 무력화 할 수 있기 때문이다. 쉽게 예를 들어보자면 이렇다.

S3에 접근이 가능한 IAM 유저가 있다고 가정 하고, 이 IAM 유저가 불가피하게 해킹을 당했다. 우연치않게 이 것을 확인 한 관리자는 해당 IAM 유저의 권한을 지워버리면 이 IAM 유저는 아무런 행동도 할 수 없는 계정이 되는 것이다.

반면, 루트 사용자는 어떠한가? 루트 사용자에게 제한을 걸 수 있는가? 루트 사용자는 “super user do” 와 같은 절대 권력이다. 이 유저를 해킹 당하면 복구 하기가 굉장히 어렵다는 것을 간접적으로나마 이해할 수 있다.

👉 AWS는 IAM으로 시작해서 IAM으로 끝난다.

그래서, IAM이란?

IAM을 구성하는 4가지 요소

권한 검증 과정

image

사용자가 서비스를 이용 하거나 서비스가 다른 서비스를 이용 하는 경우 모두 위와 같은 과정을 거쳐 현재 권한이 부여 되어있는지를 검증하게 된다.

IAM 사용과 인증

AWS를 이용하는 방법

AWS 웹 콘솔(GUI)

프로그래밍 액세스 방식(CLI)

콘솔 액세스 자격 증명

콘솔 로그인을 위해 필요한 자격을 증명하는 과정으로 AWS 웹으로 접근 할 때 해당된다.

프로그램 방식 액세스 자격 증명

웹 브라우저에서 AWS를 사용하는 것이 아닌 터미널과 같은 쉘이나 프로그래밍 언어를 통해 접근 할 때 해당된다.

프로그램 방식 액세스 자격 증명을 활용 하는 방법