개념 정리/IT 인프라

[IT 용어] RBAC (역할 기반 접근 제어, Role-Based Access Control)

PaperDrop 2025. 6. 20. 10:36

 

○ 개요

RBAC (Role-Based Access Control)는 ‘역할 기반 접근 제어’를 의미하며, 사용자의 역할(Role)에 따라 시스템 자원에 대한 접근 권한을 부여하는 보안 모델입니다. 이 모델은 기업이나 조직에서 보안성과 효율성을 동시에 확보할 수 있게 해주는 대표적인 접근 제어 방식입니다.

 

 

○ RBAC의 핵심 개념

RBAC는 다음의 세 가지 핵심 요소로 구성됩니다:

  • 사용자(User): 시스템에 접근하는 주체. 예: 직원, 관리자, 외부 파트너 등.
  • 역할(Role): 하나 이상의 권한을 집합으로 구성한 추상 개념. 예: 인사팀, 개발자, 시스템 관리자.
  • 권한(Permission): 특정 자원에 대한 접근 또는 작업을 허용하는 세부적인 행위. 예: 읽기, 쓰기, 수정, 삭제.

이 구조는 사용자가 직접 권한을 가지는 것이 아니라 역할을 부여받고, 그 역할에 포함된 권한을 간접적으로 부여받는 방식입니다.

 

 

○ RBAC의 주요 특징

  • 보안성 강화: 최소 권한 원칙(Least Privilege)을 적용하여 불필요한 권한 남용을 방지합니다.
  • 관리 효율성: 개별 사용자마다 권한을 일일이 설정할 필요 없이 역할만 관리하면 되므로, 유지보수가 수월합니다.
  • 확장성 및 유연성: 역할 변경만으로 대규모 사용자 권한 조정이 가능합니다.
  • 감사 추적 용이: 어떤 역할이 어떤 자원에 접근했는지 쉽게 추적 가능합니다.

 

○ RBAC의 유형

 - RBAC은 실제 운영 환경에 따라 세분화된 모델로 활용될 수 있습니다:

  • 기본 RBAC (Flat Role-Based Access Control): 단순한 역할 구조로 사용자를 역할에 연결합니다.
  • 계층적 RBAC (Hierarchical RBAC): 상위 역할이 하위 역할의 권한을 상속받는 구조. 예: 팀장은 팀원의 권한을 포함함.
  • 제약 기반 RBAC (Constrained RBAC): 시간, 장소, 컨텍스트 등 특정 조건에 따라 권한 사용을 제한합니다.
  • 정책 기반 RBAC: 규칙(Policy)이나 조건(Condition)에 따라 역할 또는 권한 부여를 자동화합니다.

 

○ RBAC과 다른 접근 제어 모델과의 비교

모델 설명 특징
DAC (Discretionary Access Control) 소유자가 접근 권한을 부여 유연하나 보안에 취약
MAC (Mandatory Access Control) 시스템에 의해 강제적으로 권한 부여 보안은 강력하나 유연성이 떨어짐
RBAC 역할 기반으로 권한 할당 보안성과 관리 효율을 동시에 만족
 

 - RBAC은 DAC의 유연성과 MAC의 통제를 절충한 실용적 모델로, 특히 조직 내 사용자 계층이 명확한 환경에 적합합니다.

 

 

○ RBAC이 사용되는 사례

  • 기업 IT 인프라 보안: AD(Active Directory) 환경에서 부서별 역할에 따른 접근 제어
  • 병원 및 의료 정보 시스템: 의사, 간호사, 행정직원 등 직군별로 의료 기록 접근 제한
  • 클라우드 서비스: AWS IAM이나 Azure RBAC에서 리소스에 대한 역할 기반 접근 제어
  • ERP 시스템: 모듈별 기능 접근 권한을 역할 기반으로 관리

 

 

○ RBAC 도입 시 고려사항

  1. 정확한 역할 정의: 역할을 너무 세분화하면 관리가 복잡해지고, 너무 넓게 정의하면 보안 취약점이 생깁니다.
  2. 권한 검토 및 감사 프로세스 구축: 주기적인 권한 검토가 중요합니다.
  3. 직무 변경 반영 체계 수립: 조직 내 이동, 퇴사, 승진 시 권한 재조정 자동화 필요

 

 

○ RBAC의 한계와 보완

  • 동적 상황 인식 부족: 사용자의 현재 행위나 환경을 고려하지 못함
  • 역할 설계의 난이도: 초기 설계가 잘못되면 권한 남용 가능성 존재

  이러한 한계를 극복하기 위해 ABAC (Attribute-Based Access Control)이나 PBAC (Policy-Based Access Control)과 혼합하여 사용하는 경우도 많습니다.

 

 

○ ABAC (Attribute-Based Access Control)

 - ABAC는 속성 기반 접근 제어로, ‘속성(Attribute)’에 따라 접근을 허용하거나 거부하는 방식입니다.

 

🔹 핵심 개념

  • 주체(subject), 객체(object), 환경(environment), **행위(action)**에 각각 속성을 부여하고, 이 속성들을 기반으로 정책이 평가됨.
  • 예: 사용자의 직급, 부서, 근무 위치, 요청 시간대 등

🔹 특징

  • 매우 세밀하고 유연한 권한 관리 가능
  • 상황(Context)을 고려한 접근 제어가 가능함
  • 보안 정책이 복잡해질 수 있음 (정책 수가 많아짐)

 

○ PBAC (Policy-Based Access Control)

 - PBAC는 정책 기반 접근 제어로, 사전에 정의된 정책(Policy)에 따라 권한을 판단합니다.

 

🔹 핵심 개념

  • 정책은 주로 조건문 형태로 구성되며, 조건이 충족되면 접근 허용
  • ABAC과 유사하나, 더 비즈니스 규칙 중심의 구조
  • 예: “영업팀 직원은 업무 시간에만 고객 데이터에 접근할 수 있다”

🔹 특징

  • 비즈니스 규칙 기반으로 접근 통제 설계
  • 관리자가 이해하기 쉬운 정책으로 표현 가능
  • RBAC/ABAC을 확장하거나 통합하는 데 유용

 

○ 비교 : RBAC vs ABAC vs PBAC

모델 기준 유연성 관리 용이성 대표 활용
RBAC 역할(Role) 중간 쉬움 기업 내부 시스템, 정형화된 조직
ABAC 속성(Attribute) 매우 높음 어려움 클라우드, 복잡한 권한 시나리오
PBAC 정책(Policy) 높음 중간 보안이 중요한 금융/의료, 규제 환경