수학과의 좌충우돌 프로그래밍

[AWS] IAM 그룹, 사용자, 역할, 정책에 대해서 알아보자 본문

DevOps/AWS

[AWS] IAM 그룹, 사용자, 역할, 정책에 대해서 알아보자

ssung.k 2020. 8. 9. 21:36

AWS IAM이란?

 

[AWS] Identity and Access Management, IAM 사용자 생성

IAM 이란? IAM이란 Identity and Access Management의 약자로 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다. 회사에서 클라우드 서비스 없이 물리적인 서버, 데이터베이스, 스토리��

ssungkang.tistory.com

지난 번 포스팅에서 IAM에 대해서 알아보고 그룹과 사용자를 만들어보는 예제를 진행하였습니다.

하지만 AWS IAM 좌측 탭을 보면 엑세스 관리 에 대해 그룹, 사용자, 역할, 정책이 존재합니다.

각각에 대해 알아보도록 합시다.

이번 포스팅에서는 엑세스 관리 측면에 대해서만 알아보도록 하겠습니다.

 

사용자로서의 엑세스 관리

UBAC, User-Based Access Control 이라고도 하며 사용자를 생성할 때 기존 정책에 직접 연결하여 사용할 수 있습니다.

가장 단순한 방법으로 이해하기도 편합니다.

다음과 같이 각 사용자마다 권한을 부여하는 방식입니다.

사용자1 : RDS 권한 부여
사용자2 : S3 권한 부여
사용자3 : S3 권한 부여
사용자4 : RDS, S3, EC2 권한 부여
사용자5 : RDS, S3, EC2 권한 부여

 

사용자가 얼마 없을 때는 해당 방법이 더 직관적이고 편할 수 있지만 사용자가 많아지게 되면 관리하기 불편해집니다.

 

그룹으로서 엑세스 관리

GBAC, Group-Based Access Control 이라고도 하며 사용자에게 직접 권한을 부여하지 않고 그룹에 부여한 뒤 사용자들을 그룹으로 관리하는 방식입니다.

그룹 1 : RDS 권한 부여
그룹 2 : S3 권한 부여
그룹 3 : RDS, S3, EC2 권한 부여

사용자1 : 그룹 1
사용자2 : 그룹 2
사용자3 : 그룹 2
사용자4 : 그룹 3
사용자5 : 그룹 3

 

이 방식도 권한이 다양해지면 그룹이 복잡해지며, 관리가 복잡해집니다.

 

역할로서의 엑세스 관리

RBAC, Role-Based Access Control 이라고도 하며 그룹에 권한을 바로 부여하는 대신, 역할을 만들고 역할을 그룹이나 사용자에게 줍니다.

그룹은 여러 사용자들을 묶는 개념으로 사용되고 역할은 여러 권한들을 묶는 개념으로 사용이 되어 그룹에 역할을 부여하는 방식입니다.

세분화된 엑세스 관리가 필요한 시점에서 그룹을 추가하는 것이 아니라, 그룹은 아래와 같이 정해놓고 역할을 통해 관리하게 됩니다.

  • 그룹 예시

    • 관리자
    • 사용자
    • 게스트

 

속성으로서 엑세스 관리

ABAC, Attribute-Based Access Control 이라고도 하며 사용자가 가진 속성을 통해 더 미세하게 엑세스 관리가 가능합니다.

더 미세하게 관리해야 할 예시를 살펴봅시다.

사용자 : 최현진 교사, 정일우 교생
그룹 : 3학년 11반 교사
역할 : 생활기록부 관리
권한 : 생활기록부 입력

교사와 교생 두 사용자가 있습니다. 둘 모두 3학년 11반 학생들을 맡고 있어 3학년 11반 교사그룹에 속해있습니다. 생활기록부 관리 역할은 생활기록부 입력 권한을 받은 상태도 3학년 11반 교사 의 역할이 됩니다. 하지만 이 경우, 교생인 정일우도 생활기록부를 입력할 수 있는 문제가 생깁니다.

실제로 교생선생님이 생활기록부를 입력할 수 있는지 여부는 잘 모르지만 예시를 위해 안된다고 합시다.

물론 그룹을 조금 더 세분화하여 역할을 나누는 것도 방법이지만 여기서는 속성에 접근해서 해결해보겠습니다.

사용자 : 최현진 교사, 정일우 교생
그룹 : 3학년 11반 교사
역할 : 생활기록부 관리
정책 : 생활기록부 입력 if 사용자의 직업 == 교사

이 경우 사용하는 것이 바로 정책 입니다.

정책을 통해 위처럼 동적으로 권한 부여가 가능해집니다.

Comments