DAC

DAC(Discretionary Access Control, 임의적 접근통제)는 시스템 자원에 대한 접근을 사용자 또는 그룹의 신분에 기반해 제한하는 접근 통제 방식이다. 자원의 *소유자(Owner)*가 자신의 재량으로 타인에게 권한을 부여하거나 회수할 수 있다는 점이 가장 큰 특징이다.

핵심 개념

  • 주체(Subject): 자원에 접근하려는 사용자·프로세스
  • 객체(Object): 파일·디렉터리 등 보호 대상 자원
  • 신분 기반: 사용자가 누구인가에 따라 권한 결정
  • 소유자 재량: 자원 소유자가 권한을 자유롭게 조절

대표 구현

  • Unix/Linux 파일 권한: rwx × (owner/group/other)
  • Windows NTFS ACL: 접근 제어 목록으로 사용자별 권한 지정
  • DB 권한: GRANT/REVOKE 명령

장점

  • 유연성: 소유자가 필요에 따라 권한을 조정
  • 직관성: 소유/공유 개념이 사람들에게 익숙
  • 구현 단순: 대부분 OS에 기본 탑재

단점과 한계

  • 일관성 부족: 소유자가 과도하게 권한을 풀어주면 전사적 보안 정책이 무력화
  • 트로이 목마 취약: 악성 프로그램이 소유자 권한으로 권한 전파
  • 관리 복잡: 자원이 많아지면 개별 권한 추적이 어려움

다른 모델과의 비교

모델권한 결정 주체기준
DAC자원 소유자사용자 신분
MAC시스템/관리자보안 등급(Label)
RBAC조직 정책역할

MAC이 가장 엄격하고, DAC는 가장 유연하다. RBAC는 실무 운영의 균형점으로 널리 쓰인다.

언제 DAC가 적합한가

  • 자원 소유자가 명확하고 소규모 팀
  • 협업 중심 환경(파일 공유 등)
  • 엄격한 보안 등급이 필요 없는 일반 서비스

관련 노트