반응형



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 |
댓글