불친절한 블로그

[AWS] IAM 알아보기 본문

IT Infrastructure

[AWS] IAM 알아보기

오누! 2021. 1. 15. 11:21
반응형

IAM - Identity and Access Management

 

IAM의 기본 용어 정리

  • IAM Group
  • IAM User
  • IAM Role
  • IAM Policy
  • Access Control
  • RBAC (Role-Based Access Control)
  • ABAC (Attribute-Based Access Control)

 

 

Access Control

기능들을 사용할 수 있고, 사용할 수 없게 권한을 통제하는 것을 Access Control(접근 제어)라고 한다.

 

IAM User

사용자에게 권한을 직접 부여할 수 있다.

사용자1 : a기능
사용자2 : b기능
사용자3 : a기능
사용자4 : b기능


IAM Group

사용자에게 일일히 권한을 부여하고 보니 동일한 기능을 사용하고 있는 사용자들이 생기면서

같은 기능 사용하는 사용자를 모아두면 좋겠다는 생각이 들었고

그 역할을 그룹이 하게 되었다.

그룹a : a가능
그룹b : b가능

사용자1 : 그룹a
사용자3 : 그룹a

사용자2 : 그룹b
사용자4 : 그룹b

 

IAM Role

그룹으로 묶는 것도 점점 복잡해지면서 권한 검사를 할때 그룹으로 조건을 거는 것이 어려울 수 있고

그룹으로 묶었을때 기능a가 가능한 그룹이 그룹a, 그룹c, 그룹d가 있는데 '어느 그룹 소속인지' 구별이 모호해진다.

Role(역할)이라는 개념이 생긴다.

그룹a : a가능
그룹b : b가능
그룹c : a가능, c가능
그룹d : a가능, c불가, d가능

사용자1 : 그룹a
사용자3 : 그룹a, 그룹d
사용자2 : 그룹b, 그룹c
사용자4 : 그룹b, 그룹d

 

 

RBAC (Role-Based Access Control)

그룹에다가 권한을 바로 주는 대신에 논리적으로 역할을 만들고 역할을 그룹이나 사용자에 연결한다.

즉 Group은 UserGroup으로 주로 사용되고, Role은 권한의 Group으로 사용된다.

그룹
  관리자 그룹
  근무자 그룹
  이용자 그룹

역할
  a를 할 수 있는 역할
  b를 할 수 있는 역할

 

ABAC (Attribute-Based Access Control)

권한 부여 형식(단순 허용, 불가)이 아니라 조건문 형식(if)으로 동적인 권한 부여가 가능하다.

사용자
  사용자1 : 그룹 a
  사용자2 : 그룹 a

그룹
  그룹 a : 역할 [a1,a2]

역할
  역할a1 : 정책 [aa1]
  역할a2 : 정책 [aa2]

정책
  allow aa1 (단순 권한)
  allow aa2 if 사용자1 == True
  allow aa3 if 그룹a == '~~~'
  allow aa4 if time between 09:00 and 12:00

IAM Policy

정책(Policy)은 술어논리(Predicate Logic)를 사용해서 동적이면서, 조건적으로 권한을 부여할 수 있게 하는 요소이다.

IAM Policy는 JSON형식으로 작성된다.

 

반응형
Comments