티스토리 뷰

반응형

🔷 서버 접근 통제의 3가지 방법 — MAC, DAC, RBAC 완전 정리

✅ 접근 통제란 무엇인가

서버나 시스템을 안전하게 운영하기 위해 가장 중요한 것은 누가 어떤 데이터에 접근할 수 있고, 어떤 작업을 할 수 있는지를 정하는 것입니다. 이것을 접근 통제(Access Control)라고 합니다. 접근 통제는 데이터, 파일, 네트워크와 같은 자원에 대해 사용자의 권한을 구분해, 업무에 필요한 범위만 허용하고 그 외에는 차단하는 데 목적이 있습니다. 적절한 접근 통제를 설정하면 불필요한 노출을 방지하고 보안 사고를 예방할 수 있습니다.

접근 통제를 구현하는 방법에는 여러 가지가 있지만, 대표적으로 널리 사용되는 방식은 MAC(Mandatory Access Control), DAC(Discretionary Access Control), RBAC(Role-Based Access Control)입니다. 이 세 가지 방식은 각기 다른 설계 철학과 특징을 가지며, 사용되는 환경과 목적에 따라 선택됩니다.


✅ MAC — Mandatory Access Control

🔷 정의

MAC는 강제적 접근 통제로 불리며, 중앙에서 정의한 정책과 규칙에 따라 접근 권한을 통제하는 방식입니다. 사용자는 자신의 권한을 스스로 변경하거나 다른 사람에게 권한을 부여할 수 없고, 시스템이 지정한 규칙만 따를 수 있습니다.


🔷 등장 배경

MAC는 군사 기관과 정부 조직에서 사용하기 위해 설계되었습니다. 비밀, 극비, 기밀 같은 보안 등급에 따라 문서와 사용자를 분류하고, 엄격하게 통제를 유지해야 하는 환경에서는 사용자가 마음대로 권한을 바꿀 수 없도록 해야 했습니다. 불필요한 권한 확산을 막고, 일관된 정책을 유지하기 위해 등장했습니다.


🔷 작동 방법

MAC에서는 파일, 데이터, 시스템 자원과 같은 객체에 보안 등급을 부여하고, 사용자에게도 보안 권한 등급을 부여합니다. 접근을 시도할 때 시스템이 두 등급을 비교해, 사용자가 객체의 보안 등급 이상을 가지고 있을 때만 접근을 허가합니다. 군에서 ‘1급 비밀’ 등급의 문서에는 ‘1급 비밀’ 이상의 권한을 가진 사람만 접근할 수 있고, 권한이 낮은 사람은 열람조차 할 수 없는 구조입니다.


🔷 특징

  • 보안성이 매우 높고 일관성 있는 정책을 유지할 수 있습니다.
  • 사용자는 권한을 임의로 바꿀 수 없기 때문에 규칙을 항상 강제로 적용할 수 있습니다.
  • 유연성이 떨어지고 설정과 관리가 복잡하기 때문에 불편함을 느끼는 경우가 많습니다.
  • 군사 네트워크와 정부 비밀 문서 관리 시스템에 적용되어 엄격한 보안을 유지하는 데 사용됩니다.

✅ DAC — Discretionary Access Control

🔷 정의

DAC는 임의적 접근 통제로 불리며, 사용자가 자신이 소유한 데이터나 파일에 대해 권한을 설정하고 다른 사람에게 허용할 수 있는 방식입니다. 객체의 소유자가 주도적으로 권한을 관리할 수 있습니다.


🔷 등장 배경

유닉스와 리눅스 환경에서 사용 편의성을 높이기 위해 설계되었습니다. 모든 권한을 중앙 관리자가 일일이 설정하기보다, 사용자가 파일의 소유자로서 다른 사람과 공유할 수 있도록 해야 했기 때문에 등장했습니다. 개발자들이 협업하거나, 개인 사용자가 파일을 자유롭게 관리할 수 있도록 유연성을 강조했습니다.


🔷 작동 방법

DAC에서는 파일이나 디렉토리를 만든 소유자가 누구에게 읽기, 쓰기, 실행 권한을 줄지 결정합니다. 리눅스의 chmod 명령어를 이용해 파일에 접근할 수 있는 사용자를 선택하고 권한을 설정합니다. 회사 내부에서 한 개발자가 작성한 소스 코드 파일을 동료가 수정할 수 있도록 권한을 추가해 협업하는 상황에 자주 사용됩니다.


🔷 특징

  • 유연성과 편리함이 뛰어나며, 개인별로 권한을 세밀하게 설정할 수 있습니다.
  • 중앙 관리자가 아닌 소유자가 직접 권한을 조정하므로 효율적입니다.
  • 권한이 잘못 확산되거나 실수로 허용되는 경우 보안에 취약해질 수 있습니다.
  • 리눅스 서버에서 사용자별로 권한을 관리하거나, 개인 사용자 환경에서 파일을 공유할 때 사용됩니다.

✅ RBAC — Role-Based Access Control

🔷 정의

RBAC는 역할 기반 접근 통제로 불리며, 사용자에게 직접 권한을 주지 않고 조직 내 역할(Role)에 권한을 부여한 뒤 사용자를 역할에 배정하는 방식입니다. 권한은 개인이 아닌 역할에 귀속됩니다.


🔷 등장 배경

대규모 조직에서는 사용자 수가 많고, 업무가 바뀌거나 인사 이동이 잦아질수록 권한 관리가 매우 번거로워집니다. 이를 해결하기 위해 사용자가 속한 부서나 직책에 따라 권한을 지정하고, 사용자가 역할을 바꾸면 자동으로 권한도 변경되도록 하기 위해 등장했습니다. 기업과 대형 시스템 환경에서 인사와 보안 관리 효율을 높이려는 목적이었습니다.


🔷 작동 방법

RBAC에서는 먼저 조직의 역할과 각 역할이 필요한 권한을 정의합니다. ‘회계팀’ 역할에는 회계 시스템의 열람과 수정 권한을, ‘인사팀’ 역할에는 인사 정보 열람 권한을 설정합니다. 신규 직원이 입사하면 ‘회계팀’ 역할에 배정하면 자동으로 회계 관련 권한을 가지며, 다른 부서로 이동하면 새로운 역할에 맞는 권한으로 변경됩니다. 기업 ERP 시스템에서 직원의 부서 변경에 따라 접근 권한이 자동으로 갱신되는 구조가 대표적입니다.


🔷 특징

  • 관리가 단순해지고 대규모 환경에서도 효율적으로 운영할 수 있습니다.
  • 사용자별로 권한을 일일이 설정할 필요가 없어 인사 변경에 유연하게 대응할 수 있습니다.
  • 역할 설계가 잘못되면 권한 충돌이나 과도한 권한 부여로 이어질 수 있기 때문에 설계에 신중해야 합니다.
  • 대기업의 인사 관리 시스템이나 병원의 의료 기록 시스템 등에서 활용되어 효율성과 보안성을 동시에 확보합니다.

✅ 세 가지 방법 비교

구분 MAC DAC RBAC
관리 주체 중앙 관리자 파일 소유자 중앙 관리자
권한 기준 보안 등급 사용자 신분 역할
유연성 매우 낮음 매우 높음 중간
보안성 매우 높음 낮음 중간
사용 환경 군사, 정부기관 개인, 리눅스 시스템 대기업, 병원, 대규모 조직
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함
반응형