0Pricing
Cloud & IT Cert Prep · 강의

권한 부여 모델: RBAC, MAC, DAC

역할 기반, 강제적, 임의적 접근 제어 모델을 비교하고, 기업 및 정부 환경에서 각각이 적합한 시점을 학습합니다.

권한 부여 모델: RBAC, MAC, DAC은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

접근 제어 모델 개요

접근 제어 모델은 어떤 주체(사용자, 프로세스)가 어떤 대상(파일, 시스템, 데이터)에 접근할 수 있는지를 관리하는 규칙과 정책을 정의합니다. 선택한 모델에 따라 접근 권한을 부여할 수 있는 사람, 권한을 할당하는 방법, 적용 방식이 결정됩니다. Security+ 시험에서는 네 가지 주요 모델을 다룹니다. 임의적 접근 제어(DAC), 강제적 접근 제어(MAC), 역할 기반 접근 제어(RBAC), 규칙 기반 접근 제어입니다. 각 모델의 장점과 적절한 사용 사례를 이해하는 것은 효과적인 권한 부여 시스템을 설계하는 데 필수적입니다.

임의적 접근 제어(DAC)

임의적 접근 제어(DAC)에서는 리소스 소유자가 자신의 리소스에 접근할 수 있는 사람을 결정하고 다른 사용자에게 접근 권한을 부여하거나 철회할 수 있습니다. '임의적'이라는 말은 소유자가 결정한다는 뜻입니다. 시스템은 소유자의 결정을 적용하지만 결정을 대신 정하지는 않습니다. 이 모델은 대부분의 개인 컴퓨팅 환경에서 사용됩니다(Windows NTFS 파일 권한, Linux/Unix 파일 권한). DAC의 보안상 한계는 모든 리소스 소유자가 올바른 접근 결정을 내려야 한다는 점입니다. 파일에 대한 접근 권한을 받은 사용자는 관리자 개입 없이 다른 사람에게 그 권한을 부여할 수 있으므로, 민감한 데이터가 의도한 대상 범위를 넘어 확산될 수 있습니다.

# DAC example: Linux file permissions (owner controls access)
# Create a file and check default permissions
touch confidential_data.txt
ls -la confidential_data.txt
# -rw-rw-r-- 1 alice users  (owner=alice, can read/write; group can read/write; others read)

# Owner (Alice) discretionarily removes all access for others
chmod 600 confidential_data.txt
# -rw------- 1 alice users  (only Alice can read/write)

# Alice grants read to a specific user via ACL
setfacl -m u:bob:r confidential_data.txt

DAC 위험: 혼동된 대리인 문제

DAC에는 두 가지 본질적인 보안 위험이 있습니다. 전이적 접근: 사용자 A가 사용자 B에게 접근 권한을 부여하고, 사용자 B가 사용자 C에게 권한을 부여하면 원래 소유자는 C가 자신의 리소스에 접근할 수 있다는 사실조차 모를 수 있습니다. 혼동된 대리인 문제: 낮은 권한의 사용자를 대신해 동작하는 높은 권한의 프로그램이 사용자가 직접 사용할 수 없는 권한을 의도치 않게 사용할 수 있습니다. DAC 환경에서는 하나의 손상된 계정이 해당 사용자에게 부여된 모든 리소스에 접근할 수 있으며, 손상이 발견되기 전에 다른 사람에게 접근 권한을 부여할 수도 있습니다. DAC는 편리하지만 정보를 엄격하게 격리하기 어렵게 만듭니다.

강제적 접근 제어(MAC)

강제적 접근 제어(MAC)에서는 운영 체제가 주체(사용자)와 대상(데이터)에 할당된 보안 레이블을 기반으로 접근 정책을 적용합니다. 사용자는 이러한 정책을 재정의하거나 변경할 수 없으며, 시스템 관리자 또는 보안 정책만 이를 수정할 수 있습니다. MAC는 데이터를 엄격하게 구획해야 하는 기밀 정부 및 군사 환경에서 사용됩니다. 'Secret' 등급의 허가를 받은 사용자는 데이터 소유자가 접근을 허용하고 싶어 하더라도 'Top Secret'으로 표시된 데이터에 접근할 수 없습니다. Bell-LaPadula 모델(상위 등급 읽기 금지, 하위 등급 쓰기 금지)과 Biba 모델(상위 등급 쓰기 금지, 하위 등급 읽기 금지)은 형식적인 MAC 구현입니다.

# SELinux is a MAC implementation for Linux
# Check SELinux mode and policy
getenforce  # Enforcing / Permissive / Disabled
sestatus    # Detailed SELinux status

# View SELinux security context labels on files
ls -Z /etc/passwd
# system_u:object_r:passwd_file_t:s0 /etc/passwd

# Security context: user:role:type:level
# A process can only access files where its type has explicit permission
sudo ausearch -m avc -ts recent  # View MAC policy denials

Bell-LaPadula 및 Biba MAC 모델

두 가지 형식적인 MAC 모델은 보안 목표를 수학적 규칙으로 표현합니다. Bell-LaPadula는 기밀성에 초점을 둡니다. 주체는 자신의 분류 등급보다 높은 데이터를 읽을 수 없고(상위 등급 읽기 금지), 데이터를 더 낮은 분류 등급에 쓸 수 없습니다(하위 등급 쓰기 금지). 이를 통해 민감한 정보가 권한이 없는 사용자에게 전달되는 것을 막습니다. Biba는 무결성에 초점을 둡니다. 주체는 더 높은 무결성 등급에 쓸 수 없고(상위 등급 쓰기 금지), 더 낮은 무결성 등급에서 읽을 수 없습니다(하위 등급 읽기 금지). Biba는 무결성이 낮은 입력으로 인해 무결성이 높은 데이터가 오염되는 것을 방지합니다. 실제 MAC 시스템(예: SELinux)은 두 모델의 요소를 결합합니다.

역할 기반 접근 제어(RBAC)

역할 기반 접근 제어(RBAC)는 개별 사용자에게 직접 권한을 부여하는 대신 역할에 권한을 할당한 다음 사용자를 역할에 배정합니다. 이를 통해 대규모 환경에서 개별 권한을 할당해야 하는 관리상의 문제를 해결합니다. 기업 환경에서 흔히 사용하는 역할로는 admin, auditor, developer, HR_manager, finance_analyst가 있습니다. 새 직원이 입사하면 적절한 역할에 추가되고 해당 역할에 필요한 모든 권한을 즉시 상속합니다. 직원이 직책을 변경하면 역할도 변경되고 권한이 자동으로 조정됩니다. RBAC는 기업 IAM 시스템에서 가장 널리 사용되는 모델입니다.

# RBAC example (database permissions)
# Create roles and assign permissions
CREATE ROLE readonly_analyst;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly_analyst;

CREATE ROLE data_engineer;
GRANT SELECT, INSERT, UPDATE ON customer_data TO data_engineer;

# Assign users to roles
GRANT readonly_analyst TO alice;
GRANT data_engineer TO bob;

# When Alice is promoted: revoke old role, grant new one
REVOKE readonly_analyst FROM alice;
GRANT data_engineer TO alice;

RBAC의 장점: 확장성과 직무 분리

RBAC의 가장 큰 장점은 관리 확장성입니다. 역할의 권한을 수정하면 해당 역할의 모든 사용자에게 즉시 적용되므로, 수백 개 시스템에서 개별 사용자 기록을 업데이트할 필요가 없습니다. RBAC는 하나의 역할에 충돌하는 권한이 함께 부여되지 않도록 하여 직무 분리를 자연스럽게 지원합니다(예: 금융 거래를 생성하고 승인하는 일을 모두 수행할 수 있는 역할). 또한 감사자는 수천 건의 개별 사용자 할당을 감사하는 대신 역할과 해당 권한을 검토할 수 있으므로 규정 준수도 간소화됩니다. 한계는 역할 폭증입니다. 조직이 지나치게 세분화된 역할을 만들면 관리가 복잡해져 확장성이라는 장점이 약화될 수 있습니다.

규칙 기반 접근 제어

규칙 기반 접근 제어는 RBAC와 혼동해서는 안 되며, 신원이나 역할만이 아니라 일련의 조건부 규칙에 따라 접근을 허용하거나 거부합니다. 방화벽 규칙이 대표적인 예입니다. '포트 443에서 192.168.1.0/24의 모든 IP로부터 TCP를 허용하고, 그 외 모든 트래픽은 거부한다.'와 같이 설정합니다. 접근은 일치하는 항목을 찾을 때까지 순서대로 규칙과 비교하여 평가됩니다. 규칙 기반 제어는 다른 모델과 함께 사용되는 경우가 많습니다. MAC는 보안 레이블을 규칙으로 사용하고, 속성 기반 접근 제어(ABAC)는 규칙 기반 논리를 확장하여 여러 속성(사용자 부서, 장치 유형, 시간대, 리소스 분류)을 동시에 평가하고 세밀한 결정을 내립니다.

# Rule-based access control: iptables firewall rules
# Rules are evaluated in order; first match wins

# Allow established/related connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow specific source IP to SSH
iptables -A INPUT -s 10.0.0.100 -p tcp --dport 22 -j ACCEPT

# Allow HTTPS from anywhere
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# Default deny all other inbound
iptables -A INPUT -j DROP

속성 기반 접근 제어(ABAC)

ABAC (속성 기반 접근 제어)는 가장 유연하고 세밀한 접근 제어 모델입니다. 접근 결정은 여러 속성을 동시에 평가합니다. 주체 속성(사용자 부서, 허가 등급, 위치), 대상 속성(데이터 분류, 소유자 부서, 보존 레이블), 환경 속성(시간대, 장치 유형, 네트워크 위치), 행위 속성(읽기, 쓰기, 삭제)이 그 예입니다. 정책은 다음과 같이 설정할 수 있습니다. 'user.department = Finance AND resource.classification = Internal AND device.type = corporate AND time.hour BETWEEN 8 AND 18인 경우 접근을 허용한다.' ABAC는 제로 트러스트 정책 결정을 지원하며 XACML과 클라우드 IAM 정책 엔진 같은 제품에서 구현됩니다.

적합한 모델 선택하기

적절한 접근 제어 모델은 보안 요구 사항과 조직의 상황에 따라 달라집니다. DAC: 엄격한 통제보다 편의성을 중시하는 개인 컴퓨팅 환경과 소규모 팀에 적합합니다. MAC: 정보를 엄격하게 구획해야 하는 기밀 정부 및 군사 환경에 필요합니다. RBAC: 관리 확장성이 중요하고 역할이 직무와 명확하게 연결되는 기업에 적합합니다. ABAC: 상황을 인식하는 세밀한 정책이 필요한 클라우드 환경과 제로 트러스트 아키텍처에 적합합니다. 실제로 대부분의 조직은 여러 모델을 조합하여 사용합니다. RBAC를 기반으로 하고 상황에 민감한 접근 결정에는 ABAC를 적용하는 방식입니다.

접근 제어 목록(ACL)

접근 제어 모델과 관계없이 접근 제어 목록(ACL)은 가장 일반적인 기술적 구현 메커니즘입니다. 리소스에 연결된 ACL은 어떤 주체가 어떤 작업을 수행할 수 있는지 지정합니다. 파일 시스템 ACL(Windows NTFS, Linux POSIX ACL)은 파일과 디렉터리에 대한 접근을 제어합니다. 네트워크 ACL은 라우터 또는 클라우드 네트워크 수준에서 트래픽 흐름을 제어합니다. 데이터베이스 ACL은 테이블 및 행 수준의 접근을 제어합니다. ACL은 지금까지 살펴본 모든 모델을 구현할 수 있습니다. 소유자가 파일의 ACL을 제어하면 해당 ACL은 DAC를 구현하고, 보안 시스템에서 레이블이 항목을 결정하면 MAC을 구현하며, 애플리케이션의 ACL에서 항목이 역할을 참조하면 RBAC을 구현합니다.

# Windows NTFS ACL example using icacls
# View current ACL on a folder
icacls 'C:\Sensitive\HR_Data'
# BUILTIN\Administrators:(OI)(CI)(F)  <- Full control
# CONTOSO\HR_Team:(OI)(CI)(RX)        <- Read and Execute

# Grant specific permissions to HR Managers group
icacls 'C:\Sensitive\HR_Data' /grant 'CONTOSO\HR_Managers:(OI)(CI)(M)'
# (OI)=Object Inherit, (CI)=Container Inherit, (M)=Modify

# Remove access for a former contractor
icacls 'C:\Sensitive\HR_Data' /remove 'CONTOSO\contractors'

빠른 확인

이 lesson에서 다룬 CompTIA 보안+(SY0-701) 개념에 대한 이해도를 확인해 보십시오.

lesson 요약

이 lesson에서 배운 내용은 다음과 같습니다. DAC를 사용하면 리소스 소유자가 접근을 제어할 수 있습니다(유연하지만 위험할 수 있음). MAC은 시스템이 적용하는 보안 레이블을 사용합니다(엄격하며 기밀 환경에서 사용됨). RBAC은 기업 환경의 확장성을 위해 권한을 역할에 할당합니다. ABAC은 여러 Attribute를 평가하여 세밀한 제로 트러스트 결정을 내립니다. 다음에는 페더레이션 ID: SAML, OAuth 및 OpenID 연결을 살펴봅니다.

자주 묻는 질문

“권한 부여 모델: RBAC, MAC, DAC” 강의는 무료인가요?

네 — “권한 부여 모델: RBAC, MAC, DAC” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

“권한 부여 모델: RBAC, MAC, DAC”에서 뭘 배우나요?

역할 기반, 강제적, 임의적 접근 제어 모델을 비교하고, 기업 및 정부 환경에서 각각이 적합한 시점을 학습합니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“권한 부여 모델: RBAC, MAC, DAC” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 비밀번호 정책과 다중 요소 인증
  2. 생체 인식과 토큰 기반 인증
  3. 권한 부여 모델: RBAC, MAC, DAC
  4. 연합형 ID: SAML, OAuth, OpenID Connect
← Cloud & IT Cert Prep(으)로 돌아가기