권한 부여 (Authorization)
권한 부여는 인증된 사용자(또는 시스템)가 특정 리소스에 액세스하거나 특정 작업을 수행할 수 있는 권한이 있는지 확인하는 보안 프로세스입니다.
인가를 통해 사용자가 무엇을 할 수 있는지 결정됩니다. 이는 사용자가 누구인지 확인하는 인증 다음에 이어집니다. 인가는 역할 기반 접근 제어(RBAC) 또는 속성 기반 접근 제어(ABAC)와 같은 접근 제어 메커니즘에 의존하여 미리 정의된 규칙 및 정책에 따라 접근을 허용하거나 거부합니다. 이 프로세스는 사용자가 사용하도록 권한을 부여받은 리소스 및 기능에만 접근할 수 있도록 하여 보안을 강화하고 무단 작업을 방지합니다.
graph LR
Center["권한 부여 (Authorization)"]:::main
Pre_authentication["authentication"]:::pre --> Center
click Pre_authentication "/terms/authentication"
Rel_rbac["rbac"]:::related -.-> Center
click Rel_rbac "/terms/rbac"
Rel_authentication["authentication"]:::related -.-> Center
click Rel_authentication "/terms/authentication"
Rel_single_sign_on_sso["single-sign-on-sso"]:::related -.-> Center
click Rel_single_sign_on_sso "/terms/single-sign-on-sso"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 5살도 이해할 수 있게 설명
🔑 인가는 사서가 당신이 누구인지뿐만 아니라 *어떤 책*을 빌릴 수 있는지 확인하기 위해 도서관 회원증을 확인하는 것과 같습니다.
🤓 Expert Deep Dive
``markdown
## 기술 사양: 권한 부여 - 심층 분석
권한 부여는 인증된 주체(사용자, 서비스 등)가 특정 리소스 및 작업에 대해 접근 권한 및 허가를 확인하고 강제하는 프로세스입니다. 이는 성공적인 인증 이후에 작동합니다.
### 핵심 개념
인증과의 구분: 인증은 신원을 확인하고('당신이 누구인지'); 권한 부여는 허용되는 작업을 정의합니다('무엇을 할 수 있는지').
정책 기반 의사 결정: 요청에 대해 미리 정의된 정책을 평가하여 접근이 허용되거나 거부됩니다.
권한의 세분화: 권한은 광범위한 역할부터 특정 리소스에 대한 세분화된 작업(예: 읽기, 쓰기, 삭제, 실행)까지 다양합니다.
리소스 중심 vs. ID 중심: 권한 부여는 주체가 리소스에 접근할 수 있는 것을 정의하거나, 주체가 허용되는 리소스 및 작업을 정의하는 방식으로 모델링될 수 있습니다.
상황별 권한 부여: 접근 결정에는 동적인 환경적 요인(예: 시간, 위치, 장치 상태)이 포함될 수 있습니다.
### 권한 부여 모델
접근 제어 목록(ACL): 주체에 대한 접근을 명시하는 리소스에 첨부된 권한.
역할 기반 접근 제어(RBAC): 권한은 역할에 할당되고, 역할은 사용자에게 할당됩니다. 관리를 단순화합니다.
속성 기반 접근 제어(ABAC): 접근 결정은 주체, 객체, 작업 및 환경의 속성을 평가하는 정책을 기반으로 합니다. 매우 유연합니다.
정책 기반 접근 제어(PBAC): 접근은 명시적이고 선언적인 정책에 의해 주도되며, 종종 ABAC를 포함합니다.
### 권한 부여 결정 수명 주기
정책 강제 지점(PEP): 요청을 가로채서 결정을 위해 전달합니다.
정책 결정 지점(PDP): 정책을 평가하고 허용/거부 결정을 내립니다.
정책 정보 지점(PIP): PDP에 컨텍스트 또는 속성을 제공합니다.
* 정책 관리 지점(PAP): 정책을 관리합니다.
### 기술적 고려 사항
IAM, 데이터베이스와 같은 데이터 저장소, API 게이트웨이, 서비스 메시와 같은 강제 메커니즘, 동적 vs. 정적 권한 부여, JWT, 마이크로서비스와 같은 분산 시스템 과제, 확장성, 철회, 감사, 최소 권한 원칙 및 직무 분리 등이 포함됩니다.
### ELI5 비유: 도서관 시스템
인증은 도서관 회원증을 받기 위해 신분증을 보여주는 것입니다. 권한 부여는 회원증으로 무엇을 할 수 있는지입니다: 책을 빌리거나, 스터디룸을 이용하거나, 희귀 자료실을 볼 수 있습니다. 사서가 도서관 규칙(정책)에 대해 회원증의 권한을 확인하여 접근을 결정합니다.
``