본문 바로가기
system_fundamentals/security_cryptography

ABAC

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

ABAC(Attribute-based access control)는:

사용자의 "역할"만 보는 게 아니라,
여러 속성(Attribute)을 조합해서 권한을 판단하는 방식
 

이다.

즉 RBAC보다 훨씬 유연하다.


RBAC와 가장 큰 차이


RBAC

Role 중심
 

이다.

"관리자니까 허용"

ABAC

조건 기반
 

이다.

"서울지사 직원이고,
회계부서이며,
근무시간이고,
본인 데이터니까 허용"

즉 ABAC 핵심

권한을 "규칙(policy)"으로 판단
 

하는 것.


Attribute(속성)란?

ABAC에서는 여러 속성을 사용한다. 리소스 자체에 메타데이터를 관리.

"사용자 속성 + 리소스 속성 + 환경 속성"을 조합해서 권한 판단

//문서의 JSON정보
{
  "documentId": 100,
  "authorId": "kim",
  "ownerDept": "finance",
  "classification": "CONFIDENTIAL",
  "securityLevel": 2
  "createdAt": "2026-05-15",
  "status": "APPROVED"
  지역,
  상태,
  IP,
  디바이스,
  생성자,
  수정자
}

//사용자 JSON정보
{
  "userId": "kim",
  "dept": "finance",
  "securityLevel": 3
}
//정책
// finance 부서이고, 사용자 등급 >= 문서 등급이면 허용

1. 사용자 속성(User Attribute)

예:

  • 부서
  • 직급
  • 지역
  • 고용형태

2. 리소스 속성(Resource Attribute)

예:

  • 문서 작성자
  • 데이터 소유자
  • 문서 등급

3. 환경 속성(Environment Attribute)

예:

  • 시간
  • IP
  • 위치
  • VPN 여부

4. 행동(Action)

예:

  • READ
  • UPDATE
  • DELETE

실제 판단 예시

IF
부서 == 회계팀
AND
근무시간 == TRUE
AND
문서등급 <= 사용자등급

THEN 허용
 

즉 ABAC는 사실상

정책 엔진
 

에 가깝다.


실제 예시

예 1 — 병원 시스템

의사만 조회 가능
 

수준이 RBAC.


ABAC는:

담당 의사이고
근무 중이며
같은 병원 소속일 때만 허용
 

같은 세밀한 제어 가능.


예 2 — 회사 문서

RBAC:

MANAGER만 접근
 

ABAC:

부서=인사
직급>=과장
사내망 접속
업무시간
 

전부 만족해야 허용.


왜 ABAC가 필요해졌나?

RBAC는 단순하고 좋지만:

Role 폭발 문제
 

가 있다.


예시

SEOUL_MANAGER
BUSAN_MANAGER
NIGHT_MANAGER
...
 

끝없이 늘어난다.


ABAC는 역할 대신 조건 사용

즉:

Role 조합 증가 문제 해결
 

가능.


클라우드에서 엄청 중요

특히:

  • Amazon Web Services IAM
  • Microsoft Azure
  • Google Cloud IAM

등이 ABAC 개념 강하게 사용.


AWS 예시 느낌

 
{
  "department": "finance",
  "region": "seoul"
}
 

기반 정책.


실무에서 많이 쓰는 구조

현실에서는 보통:

RBAC + ABAC 혼합
 

이다.


예시

1차

RBAC:

ADMIN만 접근 가능
 

2차

ABAC:

본인 부서 데이터만 수정 가능
 

Spring 실무 느낌

RBAC는 간단:

 
hasRole("ADMIN")
 

ABAC는:

 
user.department == document.department
 

같은 조건 검사 필요.


그래서 구현 난이도 상승

ABAC는:

  • 정책 엔진 필요
  • 조건 평가 필요
  • 성능 고려 필요

하다.


대표 정책 엔진

예:

  • Open Policy Agent
  • XACML

장점

장점 설명
매우 유연 복잡한 정책 가능
세밀한 권한 조건 기반
Role 폭발 감소 조합 문제 해결

단점

단점 설명
구현 복잡 정책 엔진 필요
디버깅 어려움 조건 많음
성능 부담 매 요청 정책 평가

그래서 현실은

규모 방식
일반 웹서비스 RBAC
대기업/금융/클라우드 RBAC + ABAC
초대형 엔터프라이즈 ABAC 적극 활용

핵심 한 줄

ABAC는:

사용자의 역할뿐 아니라
부서·시간·위치·데이터 소유자 같은 다양한 속성을 조합해
권한을 결정하는 정책 기반 인가 방식
 

이다.

반응형

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

권한 시스템 설계  (1) 2026.05.15
ACL  (0) 2026.05.15
RBAC  (0) 2026.05.15
인증과 인가 차이  (0) 2026.05.15
전자서명 원리  (0) 2026.05.14

댓글