IAM(Identity and Access Management)이란 AWS 리소스에 대한 접근을 안전하게 제어할 수 있는 서비스이다.

프로비저닝된 서비스들에 대한 인증 및 권한을 관리하는 또하나의 클라우드 서비스로 이해하면 간단하다.



AWS 서비스를 이용 시, AWS 리소스에 대한 사용 권한을 설정할 수 있다. 즉 아무나 자신의 리소스를 관리할 수 없도록 하는 보안 장치같은 것이다.



이를 위한 방법으로는 다음과 같은 방법들이 있다.


(1) AWS 계정을 직접 생성하여 해당 계정을 통해 직접 AWS 리소스에 접근하는 방법이 있다.


(2) IAM 계정 생성을 통해 해당 리소스에 접근하는 방법이 있다.



위 방법들에 대한 간략한 설명은 다음과 같다.


처음 AWS 에 계정을 생성하면 Root User Credential 이라는 자격증명을 받게 되고, 이를 루트 사용자 권한이라 한다.

이를 이용하면, AWS 의 모든 리소스에 무제한으로 접근 및 제어가 가능하지만, 이 Credential 은 계정과 직접적으로 연결되어 있기 때문에 일반적인 Access 시나 협업을 할 때에는 사용하지 않는 것이 좋다. (1번 방법)


보통은 Root User Credential 을 이용해 서비스에 알맞게 IAM Credential 을 생성하여 사용자를 인증하고 리소스에 접근할 수 있도록 한다. (2번 방법)



IAM 은 계정에 대한 인증 및 권한 부여를 제어하는 데 필요한 인프라를 제공한다. IAM 인프라에는 다음과 같은 요소들이 포함되어 있다.


- Principal(보안 주체) : AWS 리소스에 대한 작업을 수행할 수 있는 개체를 말한다. AWS 계정 루트 사용자, IAM 계정 사용자 및 IAM 역할 사용자 등이 있다.


- 요청 : 보안 주체가 AWS Management Console, AWS API 및 CLI 를 사용하려고 할 때의 요청이다. 


- 인증 : 보안 주체는 리소스를 사용하기 위해 요청을 만들 때, 인증 과정을 거치게 된다.


- 승인 : 인증된 보안주체의 요청을 허가할지 말지 승인 과정을 거치게 된다. 각 리소스별로 정책을 명시하고 이 정책에 부합하는지를 확인한다.


- 작업 또는 연산 : 인증된 요청의 승인이 완료된 후 서비스가 실행된다. 주로 AWS 리소스들에 대한 CRUD 가 제공된다.


- 리소스 : 작업을 통해 리소스에 반영 및 조회가 가능하다. 



이렇게 생성된 IAM 자격 증명을 통해 IAM User가 AWS 계정의 리소스들에 접근하고 사용할 수 있다.


이러한 IAM User 들에 대한 관리는 IAM Policy 라 하는 일종의 정책으로 관리가 되는데, 정책을 통해 어떤 리소스의 어떤 Credential 들에 대해 허용(Allow) 또는 비허용(Disallow) 할지 결정한다.


IAM Policy 는 IAM User 들을 개별 관리할 수도 있지만 IAM Group 의 형태로 묶어서 권한을 할당할 수도 있다. 혹은 Role 을 정해서 Role 에 적합한 권한들만을 부여한 뒤, 해당 자격증명을 통해 관리하게 할 수도 있다.

이처럼 IAM 을 사용하면 보안과 권한 관련 설정들에 대해 인프라 담당자에게만 권한을 부여하거나 해당 팀원들에게만 최소한의 권한을 부여하도록 할 수 있다.



자세한 내용은 AWS 공식 문서를 참조하면 잘 설명 되어 있다.

(출처 : https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/introduction.html)

+ Recent posts