본문 바로가기

프로그래밍 지식/웹 개발

접근 제어 모델 (MAC, DAC, RBAC, ABAC)

프로젝트를 만들면서도, 또 앞으로 만들 프로젝트들에도 여러가지 회원에 권한을 담당하는 파트들이 존재했는데

(ex) 관리자, 일반 유저, 결제한 회원등 )

 

앞으로 설계 할 경우 이런 모델에 대한 이해를 바탕으로 정리하면 좋을것이라 생각되어 정리해봤따.

 

MAC (Mandatory Access Control)

  • 강제적 접근 통제 
  • 자원에 대한 모든 권한을 관리자로부터 부여 받는다.
  • 관리자만 사용자, 객체에 대한 등급을 수정할수 있다.
  • 관리자가 모든 사용자/객체에 대해 관리하므로 보안에 좋지만 관리하기 힘들다.

 

 

DAC (Discretionary Access Control)

  • 임의적 접근 통제
  • 데이터 소유자가 직접 접근권한을 부여하는 방식
  • 실수로 많은 권한을 부여할수 있어 보안에 취약

 

RBAC (Role Based Access Control)

  • 역할 기반 접근통제
  • 각 사용자는 하나 이상의 역할을 가지며 역할에 따라 권한이 부여된다
  • 권한에 따른 기능들이 딱딱 정해지기 때문에 관리하기 편하면서 보안에도 좋다.(MAC와 DAC의 단점을 보완)
  • ex) USER,MANAGER 권한을 가진 경우 두가지 권한에 해당되는 기능들에 접근가능하다.
  • ex) 집의 열쇠키와 비슷하다. 키마다 특정 문을 열수있고 또한 그 키는 딱 정해져있다. 

 

 

ABAC ( Attribute Based Access Control)

  • 속성 기반 접근 제어
  • 사용자나 객체의 속성에 따라 권한을 부여한다.
  • 다양한 조건과 규칙을 고려할수 있다.
  • 복잡하고 비용이 많이 들지만, 보안이 좋고 유연하다.
  •  ex) AWS의 IM 
  •  ex) 사용자가 특정 직업 이면서~~ 특정 업무에 해당된 경우 해당 권한을 부여한다. 

 

 

 

https://www.researchgate.net/figure/Comparison-between-DAC-MAC-RBAC-and-ABAC_tbl2_338993052

 

'프로그래밍 지식 > 웹 개발' 카테고리의 다른 글

OAuth 2.0 이란  (0) 2021.07.09
HTTP 기본 지식 - HTTP Header  (0) 2021.01.25
HTTP 기본 지식 - HTTP Status Code  (0) 2021.01.24
HTTP 기본 지식 - HTTP Method  (0) 2021.01.23
HTTP 기본 지식 - HTTP의 특징  (0) 2021.01.23