**접근 제어(access control)**는 인증된 사용자가 무엇을 할 수 있는지를 관리합니다 — RBAC(Role-Based Access Control) 같은 모델과 least privilege 같은 원칙을 통해서입니다. broken access control이 OWASP의 #1 취약점이므로 적절한 접근 제어는 매우 중요합니다.
접근 제어 모델
RBAC (Role-Based Access Control) → 사용자를 ROLE에 할당; role이 PERMISSION을 가짐:
→ 사용자 → role(admin, editor, viewer) → permission → 접근 결정
→ 관리 가능, 흔함; role의 permission을 바꾸면 그 모든 사용자가 갱신됨
ABAC (Attribute-Based) → ATTRIBUTE(사용자, 리소스, 컨텍스트)에 기반한 결정 → 유연하고
세분화(예: "editor는 업무 시간에 자기 부서의 문서를 편집 가능")
ACL → 누가 무엇을 할 수 있는지에 대한 리소스별 목록
Least privilege 원칙
LEAST PRIVILEGE → 업무에 필요한 MINIMUM 접근만 부여, 그 이상은 안 됨:
→ 계정/구성요소가 손상될 경우 BLAST RADIUS를 제한
→ 사용자, 서비스, 프로세스, 데이터베이스 계정, API 키 등에 적용
→ 기초적인 보안 원칙(더 LESS 접근을 기본값으로; 필요할 때만 더 부여)
