반응형



ACL(Access-control list)은:
"이 객체에 누가 어떤 권한을 가지는지"
직접 기록해두는 방식
이다.
즉:
객체(Object) 중심 권한 관리
라고 보면 된다.
가장 쉬운 예시
구글 드라이브 생각하면 거의 ACL이다.
예:
파일 A
- 홍길동: 읽기/수정 가능
- 김철수: 읽기만 가능
- 외부인: 접근 불가
이런 식.
핵심 특징
RBAC는:
[ 사용자 → 역할(Role) → 권한 ] 구조.
ACL은:
[ 객체(Object)마다
누가 뭘 할 수 있는지 저장 ] 한다.
누가 뭘 할 수 있는지 저장 ] 한다.
예시로 비교
RBAC
ADMIN이면 모든 문서 수정 가능
ACL
문서 A는 홍길동만 수정 가능
문서 B는 김철수만 수정 가능
즉 ACL은 훨씬 세밀함
특정 데이터 단위까지 제어 가능.
실제 ACL 구조
예:
| Object | User | Permission |
| file1 | hoon | READ |
| file1 | kim | WRITE |
| file2 | lee | DELETE |
즉 핵심은
권한이 "객체 기준"으로 저장
된다는 것.
운영체제도 ACL 사용
예:
- Microsoft Windows NTFS 권한
- Linux 파일 권한 확장 ACL
Windows 예시
파일 속성 보면:
홍길동 - 읽기
관리자 - 전체제어
게스트 - 거부
같은 거 있음.
그게 ACL 개념.
Linux 기본 권한은 사실 단순 RBAC 느낌
rwx
owner/group/other
하지만 확장 ACL 사용하면:
setfacl
로 사용자별 권한 가능.
웹 서비스 예시
게시글
ACL 없으면: USER는 게시글 수정 가능 (너무 넓다)
ACL 사용하면: "작성자 본인만 수정 가능" (세밀한 제어 가능)
그래서 ACL 많이 쓰이는 곳
| 분야 | 예시 |
| 파일 시스템 | NTFS |
| 클라우드 저장소 | Google Drive |
| 문서 시스템 | Notion |
| 게시판 | 작성자 수정 |
| 협업 툴 | Slack/Confluence |
장점
| 장점 | 설명 |
| 매우 세밀 | 객체 단위 제어 |
| 유연함 | 사용자별 권한 가능 |
| 현실적 | 협업 시스템 적합 |
단점⭐⭐⭐⭐⭐
권한 수 폭발
파일 100만 개 있으면: ACL 데이터도 엄청 증가한다.
관리 어려움
예: 누가 어디 접근 가능한지 추적 어려움
성능 문제
매 요청마다: ACL 조회 필요 가능.
그래서 현실은 혼합 사용
실무 대부분:
RBAC + ACL
조합.
예시
1차 RBAC - 로그인 사용자만 게시판 접근2차 ACL - 본인 글만 수정 가능
Spring Security 실무
RBAC:
hasRole("ADMIN")
ACL 느낌:
post.getWriterId() == loginUserId
즉 ACL은
데이터 단위 권한 검사
에 가깝다.
ABAC와 차이
헷갈리기 쉬움.
ACL - "이 객체에 누구 허용?" 객체 중심.
ABAC - "조건 만족하면 허용" 정책 중심.
쉽게 비유
RBAC - 직급표
ACL - 문마다 출입명단 붙여둔 것
ABAC - 상황 조건 맞으면 자동 허용
핵심 한 줄
ACL은:
각 객체(Object)마다
어떤 사용자(User)가 어떤 권한(Permission)을 가지는지
직접 저장하는 권한 관리 방식
이다.
반응형
'system_fundamentals > security_cryptography' 카테고리의 다른 글
| HTTPS는 어떻게 안전한가 (0) | 2026.05.15 |
|---|---|
| 권한 시스템 설계 (1) | 2026.05.15 |
| ABAC (0) | 2026.05.15 |
| RBAC (0) | 2026.05.15 |
| 인증과 인가 차이 (0) | 2026.05.15 |
댓글