콘텐츠로 바로가기

Authorization & RBAC-ABAC

인증된 사용자가 시스템 내의 어떤 하드웨어 자원에 접근할 수 있는지 수리적으로 결정하고, 역할이나 속성을 기반으로 정교한 접근 제어 평면을 구축하는 물리학을 다룹니다.

sys.entry
M

Me

hyunyoun's Blog

posts6 min read

1. Overview

인가 및 역할·속성 기반 제어(Authorization & RBAC-ABAC, ARA)는 신원이 확인된 주체(Subject)에게 허용된 객체(Object)의 범위를 수리적으로 획정하여, 데이터의 물리적 경계를 수호하는 '권한 거버넌스 물리학'입니다.

학습자는 관리의 효율성을 위해 사용자를 직무로 묶는 **RBAC (Role-Based Access Control)**과, 시간, 위치, 부서 등 정교한 수치 조건을 따지는 **ABAC (Attribute-Based Access Control)**의 수리적 수순을 배웁니다. 특히, "딱 필요한 만큼의 권한만 준다"는 **최소 권한 원칙(Least Privilege)**을 하드웨어 수준에서 강제하는 법을 익힙니다. 이를 통해 복잡한 마이크로서비스 환경에서도 권한 누설 없이 자원을 물리적으로 격리하는 하이엔드 인가 보증 역량을 확보합니다.

2. Scope & Boundaries

In-Scope

  • RBAC Hierarchies: 유저-역할-권한으로 이어지는 수리적 매핑 및 상속 원리
  • ABAC Policies: 주체, 자원, 환경 속성을 변수로 하는 수치적 결정 논리(Boolean Logic)
  • ACL (Access Control List): 개별 하드웨어 자원 단위의 물리적 허용 목록 관리
  • Privilege Separation: 주요 기능 수행 시 수리적으로 다른 계정을 사용하게 만드는 물리 격리
  • Authorization Flow: 토큰(Token)을 통한 권한 정보의 전파 및 수리적 검증 수순

Out-of-Scope

  • 사용자가 누구인지 확인하는 인증(Authentication) 자체 기술 (10-04-01 AMN 영역에서 분담)
  • 데이터의 물리적 암호화 처리 기술 (10-01-04 DRI 영역에서 분담)

Boundaries

  • ARA vs. AMN: AMN(10-04-01)이 '열쇠가 진짜인지 확인'하는 것이라면, ARA는 '그 열쇠가 어떤 방의 문을 열 수 있는지 수리적으로 정의'하는 일로 구분합니다.

3. Counterexample

  • 단순히 "관리자 페이지 권한 주기"라 설명하는 것은 ARA 학습이 아닙니다. 왜 역할 폭발(Role Explosion) 현상이 대규모 하드웨어 조직에서 관리 지옥을 수리적으로 만들어내는지 증명할 수 있어야 하며, 동적 접근 제어 시 사용자의 물리적 위치(IP)가 사무실이 아님에도 불구하고 권한이 유지되는 '속성 검증 누락'의 보안 수치 재앙을 논증하지 못한다면 인가 보안의 본질을 이해하지 못한 것입니다.

4. Prerequisites

  • Security Foundations & Cryptography (Basic): 10-01-XX의 기초 보안 원리 및 기밀성 이해가 필수입니다.
  • Authentication Mechanisms (Basic): 10-04-01의 신원 확인 및 세션 관리 이해가 필수입니다.

5. Learning Map

  1. Defining the Boundaries: 시스템 내의 모든 하드웨어 자원을 식별하고, 누가 무엇을 할 수 있는지 수리적 지도를 그립니다.
  2. Standardizing Roles: 복잡한 사용자들을 '직무'라는 수치적 단위로 묶어 권한 관리 효율을 극대화합니다.
  3. Dynamic Conditions: 단순 직무를 넘어 "이 시간, 이 온도, 이 장소"에서만 통하는 고차원 속성(ABAC)을 입힙니다.
  4. Adaptive Governance: 조직의 물리적 변화에 따라 권한 지도가 실시간으로 자동 업데이트되는 하이엔드 통제권을 완성합니다.

6. Learning Topics

Basic

Core: 권한 부여의 기본과 ACL (AuthZ Foundations)

  • Why to Learn: 서버의 특정 파일이나 DB 테이블을 아무나 건드리지 못하게 원천 물리 차단하기 위해서입니다.
  • What to Learn:
    • Permissions: Read, Write, Execute 등의 물리적 동작 수치 정의
    • Access Control List (ACL): 파일 시스템이나 하드웨어 기기에 붙은 권한표 읽기
    • Fail-Closed: 권한 정책에 오류가 났을 때 '모두 차단' 모드로 수리 고정되는 원칙
  • How to Learn:
    • 리눅스 하드웨어 쉘에서 chmod를 사용하여 파일 권한 수치(755, 644 등)가 물리적으로 어떻게 바뀌는지 확인 실습
    • 윈도우의 '고급 공유 설정'에서 특정 유저 이름이 명시되지 않으면 접근이 거부되는 물리 현상 관찰
  • Implement: 대상과 행위를 입력받아 허용 여부(True/False)를 뱉는 기초 AccessChecker

Core: 역할 기반 접근 제어 (RBAC Mechanics)

  • Why to Learn: 수만 명의 사용자에게 일일이 권한을 주는 수리적 불가능을 '역할'이라는 바구니로 해결하기 위함입니다.
  • What to Learn:
    • User-Role-Permission Mapping: 다대다 관계의 수리적 정규화
    • Role Hierarchy: 팀장 역할이 팀원의 권한을 수리적으로 자동 상속받는 구조
    • Segregation of Duties (SoD): 결제자와 승인자의 역할을 물리 분리하여 부정 방지
  • How to Learn:
    • 기업용 하드웨어 관리 도구(AD, AWS IAM)에서 가상의 '개발팀' 역할을 만들고 멤버를 추가하여 권한이 전이되는 수순 실습
    • SoD 원칙을 어기고 한 사람이 모든 권한을 가졌을 때의 보안 위험도를 수치적으로 산출
  • Implement: 데이터베이스에 저장된 유저-롤 정보를 토대로 권한을 판정하는 RBAC_Engine

Practical

Core: 속성 기반 접근 제어와 동적 권한 (ABAC Engineering)

  • Why to Learn: "인턴은 낮에만, 본사 건물 물리 내부에서만 이 폴더를 볼 수 있다"는 정교한 정책을 수리 구현하기 위해서입니다.
  • What to Learn:
    • Policy Decision Point (PDP): 권한 요청을 수리적으로 판단하는 중앙 두뇌
    • Policy Enforcement Point (PEP): 하드웨어 접점에서 실제 통행을 제어하는 물리 집행부
    • Context Attributes: 위치, 시간, 디바이스 신뢰도 등의 실시간 수치 변수
  • How to Learn:
    • AWS IAM Policy의 Condition 필드에 시간 제한 수치를 넣어보고, 정해진 시간이 지나면 접근이 물리 차단되는지 실험 실습
    • XML이나 JSON 형태의 보안 정책 문서가 수리적 논리 연산(AND,ORAND, OR)을 어떻게 처리하는지 소스 코드 분석
  • Implement: 주체와 환경 변수를 모두 넣어 복합적인 허용 여부를 결정하는 SmartPolicyEvaluator

Advanced

Core: 권한 거버넌스와 자동화된 오딧 (AuthZ Governance)

  • Why to Learn: 오래된 직원이 퇴사했음에도 권한이 남아서 정보가 유출되는 '유령 권한'을 수리적으로 소멸시키기 위함입니다.
  • What to Learn:
    • Privilege Drift: 시간이 지남에 따라 권한이 물리적으로 비대해지는 현상 추적
    • Access Review: 주기적으로 권한의 수치적 정당성을 재검토하는 거버넌스 수순
    • XACML & OPA: 어떤 환경에서도 통하는 범용 보안 정책 언어 표현법
  • How to Learn:
    • Rego 언어(Open Policy Agent)를 사용하여, 쿠버네티스 하드웨어 클러스터의 모든 접근 권한을 수리적으로 정의하는 실습
    • 사용자별 '권한 사용 빈도' 수치가 0인 항목을 자동으로 찾아내어 회수를 건의하는 물리 자동화 연구
  • Implement: 현재 조직의 권한 지도를 시각화하고 위험한 허점(Wildcard 등)을 지적하는 GovernanceRadar

7. Terminology

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
Authorization 인증된 주체에게 자원에 대한 특정 물리적 행위를 수리적으로 허락하는 과정입니다. 기본 인가 보안 AuthZ / Permit Authentication 인증(로그인)과 다른 단계임 P3:CyBOK core
RBAC 사용자의 직렬이나 위치에 따른 역할(Role)을 정의하고 이에 수리적 권한을 부여하는 방식입니다. 기본 관리 효율 Role / Map ABAC 대규모 조직에 적합 Industry core
ABAC 고정된 역할 대신 속성(Attribute)들의 수리적 조합을 판단하여 접근을 제어하는 고수준 방식입니다. 실무 정밀 제어 Logic / Context RBAC 구현과 연산 부하가 큼 Industry core
SoD 오류나 부정 방지를 위해 단일 하드웨어 프로세스를 수리적으로 둘 이상의 사람이 수행하게 분리하는 원칙입니다. 추천 위험 관리 Audit / Fraud Policy 한 명의 권한 남용 방지 Industry core

8. References

Primary

Secondary

  • [Access Control and Identity Management] — Comprehensive textbook.
  • [NIST SP 800-162: Guide to Attribute Based Access Control (ABAC)] — The technical standard.

Industry

  • [Open Policy Agent (OPA) Documentation] — The modern industry standard for AuthZ.
  • [AWS IAM Best Practices] — Practical implementation guide.

9. Final Checklist

Primary

  • '가용성'을 해치지 않으면서 '최소 권한 원칙'을 하드웨어 환경에 수리적으로 적용하는 수순을 설명 가능한가? (P3)
  • 'RBAC' 환경에서 '정적 역할 상속'이 유발하는 수리적 보안 결함(Lattice 구조 문제)을 기술할 수 있는 가? (P3)

Secondary

  • '역할 기반 인증'이 마이크로서비스 간의 통신에서 '토큰 페이로드 물리 용량'에 미치는 수치적 영향을 소통 가능한가?
  • ABAC 정책 결정 시 '지연 시간(LatencyLatency)'이 서비스 성능 지표에 미치는 물리적 하중을 논증할 수 있는 가?

Industry

  • 실무 서비스에서 퇴사자나 보직 변경자의 권한을 물리적으로 즉각 회수하는 'Deprovisioning' 거버넌스 수순을 제안할 수 있는 가? (SFIA)
  • **OPA (Rego)**를 활용해 인프라 배포 코드(IaC)의 권한 설정을 수리적으로 사전 검증하는 구조를 분석할 수 있는 가?