본문 바로가기
system_fundamentals/security_cryptography

ACL

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

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

댓글