본문 바로가기
system_fundamentals/security_cryptography

RBAC

by 죄니안죄니 2026. 5. 15.
반응형
 RBACRBAC
 
 
 

RBAC(Role-based access control)는:

사용자에게 직접 권한을 주는 게 아니라,
"역할(Role)"에 권한을 묶어서 관리하는 방식
 

이다.

실무에서 가장 많이 쓰이는 권한 관리 방식이다.


가장 쉬운 예시

회사 시스템 생각하면 쉽다.


직접 권한 부여 방식 (비효율)

예:

홍길동:
- 주문조회
- 주문수정
- 회원조회
- 정산조회
 

이렇게 사용자마다 하나씩 넣으면:

사람 늘수록 지옥
 

된다.


RBAC 방식

권한들을 역할(Role)에 묶는다.


역할 생성

Role 권한
USER 조회
MANAGER 조회 + 수정
ADMIN 전체

사용자에게 역할 부여

사용자 역할
홍길동 USER
김팀장 MANAGER
관리자 ADMIN

핵심 구조

사용자
↓
역할(Role)
↓
권한(Permission)
 

이다.


즉 핵심은

권한을 사용자에 직접 안 붙임
 

이다.


왜 실무에서 RBAC 많이 쓰나?

엄청 관리하기 쉽기 때문.


예시

직원 1000명 있다고 가정.


권한 정책 변경

예:

MANAGER는 삭제 불가로 변경
 

RBAC면

MANAGER Role 하나만 수정
 

하면 끝.


직접 권한 방식이면

1000명 전부 수정해야 할 수도 있음.


실제 시스템 예시

쇼핑몰

Role 권한
CUSTOMER 상품조회
SELLER 상품등록
ADMIN 전체관리

ERP

Role 권한
STAFF 조회
ACCOUNTING 회계
HR 인사관리

Spring Security 실무

엄청 많이 사용.


예시

 
.hasRole("ADMIN")
 

또는:

 
@PreAuthorize("hasRole('ADMIN')")
 

흐름

로그인 후:

JWT / Session 안에 Role 저장
 

예:

 
{
  "userId":"hoon",
  "roles":["ADMIN"]
}
 

API 접근 시

ADMIN Role 있는가?
 

검사.


DB 구조도 보통 이렇게 감


1. USER

user_id name
1 홍길동

2. ROLE

role_id role_name
1 ADMIN

 


3. PERMISSION

perm_id perm_name
1 ORDER_READ

4. USER_ROLE

user_id role_id
1 1

5. ROLE_PERMISSION

role_id perm_id
1 1

즉 연결 구조

USER ↔ ROLE ↔ PERMISSION
 

RBAC 장점

장점 설명
관리 쉬움 권한 중앙관리
확장 쉬움 역할만 추가
실무 적합 조직 구조와 잘 맞음
보안성 향상 최소권한 구성 쉬움

단점도 있음

조직이 복잡해지면:

Role 폭발
 

문제 생길 수 있음.

예:

SEOUL_MANAGER
BUSAN_MANAGER
HQ_MANAGER
...
 

끝없이 늘어남.


그래서 등장한 게

모델 특징
ACL 객체 단위 권한
ABAC 속성 기반 권한

ACL 예시

"이 문서는 홍길동만 수정 가능"
 

ABAC 예시

부서=회계
지역=서울
근무시간=업무시간
 

조건 기반.


하지만 현실에서는

대부분:

RBAC + 약간의 추가 정책
 

조합이 가장 많다.


실무 핵심 포인트

1. 최소 권한 원칙

필요한 권한만 부여
 

2. 서버에서 인가 검사

프론트 버튼 숨김만 하면 안 됨.

반드시 서버에서:

Role 체크
 

해야 한다.


3. JWT 위조 검증 중요

JWT role 믿기 전에:

  • 서명 검증
  • 만료 검사

필수.


핵심 한 줄

RBAC는:

권한을 사용자에게 직접 주지 않고,
역할(Role)에 묶어서 사용자에게 역할을 부여하는 권한 관리 방식
 

이다.

반응형

'system_fundamentals > security_cryptography' 카테고리의 다른 글

ACL  (0) 2026.05.15
ABAC  (0) 2026.05.15
인증과 인가 차이  (0) 2026.05.15
전자서명 원리  (0) 2026.05.14
DH / ECDHE  (0) 2026.05.14

댓글