땅지원
땅지원's Personal blog
땅지원
전체 방문자
오늘
어제
  • 전체 (353)
    • Frontend (2)
      • React (2)
    • Backend (90)
      • Java (16)
      • Python (19)
      • Spring (23)
      • Database (21)
      • Troubleshooting (8)
    • DevOps (27)
      • ELK (13)
    • CS (40)
    • OS (2)
      • Linux (2)
    • Algorithm (95)
      • concept (18)
      • Algorithm Problem (77)
    • 인공지능 (25)
      • 인공지능 (12)
      • 연구노트 (13)
    • 수업정리 (35)
      • 임베디드 시스템 (10)
      • 데이터통신 (17)
      • Linux (8)
    • 한국정보통신학회 (5)
      • 학술대회 (4)
      • 논문지 (1)
    • 수상기록 (8)
      • 수상기록 (6)
      • 특허 (2)
    • 삼성 청년 SW 아카데미 (6)
    • 42seoul (12)
    • Toy project (3)
    • 땅's 낙서장 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 20.11.6 BB21플러스 온라인 학술대회
  • 20.10.30 한국정보통신학회 온라인 학술대회

인기 글

태그

  • I
  • E
  • D
  • ㅗ
  • 이것이 리눅스다 with Rocky Linux9

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
땅지원

땅지원's Personal blog

CS

Access Control 종류(ACL, RBAC, ABAC)

2024. 11. 5. 13:47

Access Control List (ACL)

사용자가 인증된 후에, 해당 사용자의 IP가 인증된 사용자 리스트(White List) 또는 차단된 사용자 리스트(Black 리스트)에 있는지에 따라 Access를 허용하거나 차단한다. 사용자 IP가 White List에 없을 경우에도 차단된다.

즉, ACL은 특정 사용자의 시스템 액세스 권한 여부를 결정하는 데 사용된다.

 

Role-based access control(RBAC)

사용자의 역할에 따라 액세스 권한을 부여하는 방식이다. 

RBAC에서 사용자는 다른 권한을 부여받을 수 있는 여러 역할을 가질 수 있다. 예를 들어 IT회사에서의 RBAC을 다음과 같이 나눠볼 수 있다.

  • 시스템 관리자 역할: 서버 관리, 시스템 관리
  • 데이터베이스 관리자 역할: 데이터 베이스 관리, 복구
  • 네트워크 관리자 역할: 네트워크 관리, 보안 설정

총 관리자는 각 권한을 부여/회수하는 것이 간단하고, 역할에 따라 어떤 권한을 갖고 있는지 쉽게 파악할 수 있다.

하지만 한계가 있다. 다음과 같은 경우를 살펴보자.
시스템 관리자가 데이터베이스의 역할도 부여받고 싶은데, 시스템 관리자의 역할이 주 업무이므로 데이터 베이스 관리 중 삭제, 복구는 불가능하도록 하고 싶다. 이럴 경우 어떻게 해야 할까?

다른 역할을 또 만들어야 한다.

  • 시스템 & 데이터 관리자 역할: 서버 관리, 시스템 관리, 삭제 기능을 제거한 데이터 베이스관리

이때 또 네트워크 관리자 역할도 부여받는다면... 점점 역할이 많아지고 복잡해진다.

 

Attribute-based access control(ABAC)

역할 대신 속성을 이용하여 더 세밀하게 권한을 부여할 수 있다. 위의 RBAC의 한계를 개선할 수 있다.

속성은 사용자, 리소스, 작업, 개체, 환경 등을 설명하는 데이터다.

예를 들어, 특정 부서의 크루가 파일에 접근하려면 아래의 속성을 전부 갖고 있어야 한다.

  • 사용자: 해당 부서 직원
  • 리소스: 파일
  • 동작: 읽기/쓰기
  • 환경: 해당 부서의 컴퓨터

이처럼 여러 속성을 활용하여 권한에 대해 좀 더 세밀한 작업을 할 수 있다.
만약 읽기만 가능하도록 하고 싶으면 쓰기 속성을 제거하고, 재택에서도 되도록 하려면 재택 속성만 추가하면 된다.

 

ACL -> RBAC -> ABAC 순으로 점점 Coarse -> Fine으로 되는 것을 확인할 수 있다. 
Fine일수록 유연해지고 세밀한 접근제어를 할 수 있지만, 그만큼 구현이 어렵고 관리포인트가 많아진다는 단점이 있다.

'CS' 카테고리의 다른 글

애플리케이션의 종류  (0) 2024.01.04
불변성(Immutable)과 빌더 패턴(Builder Pattern)에 대해  (0) 2024.01.03
[CS] 데이터베이스 정규화와 이상현상(Normalization & Anomaly)  (0) 2023.04.19
개발하면서 자주 만났던 이슈 및 용어 정리  (0) 2023.04.19
[CS] 네트워크  (1) 2023.02.28
    'CS' 카테고리의 다른 글
    • 애플리케이션의 종류
    • 불변성(Immutable)과 빌더 패턴(Builder Pattern)에 대해
    • [CS] 데이터베이스 정규화와 이상현상(Normalization & Anomaly)
    • 개발하면서 자주 만났던 이슈 및 용어 정리
    땅지원
    땅지원
    신입 개발자의 우당탕탕 기술 블로그

    티스토리툴바