의미
- 권한이 있는 사람만 사용하도록 되어 있는 System에서, 권한이 없는 것을 감지하고 제외하는 것
- 사용자의 신원에 대해 인증(Authentication)하고 권한을 부여(Authorization)하는 절차를 요구
- Authentication, Authorization, Audit을 포함하는 개념
- Authorization은 접근 가능한 작업을 지정
- Authentication을 통해 신원 확인
- Audit은 User의 행동 기록을 식별
- 좁은 의미로는 Authenticated Subject가 access에 대해 Authorized되었는지에 따라 Acceses request를 grant하거나 reject하는 것
- Authentication과 Access Control은 일반적으로 함께(a single operation) 동작
Access Control Model
- Attribute-Based Access Control (ABAC) - 속성 기반
- User의 속성, Resource 속성, 환경 조건 등을 평가하는 Policy를 사용
- Discretionary Access Control (DAC)
- 데이터 소유자가 특정 Resource에 Access할 수 있는 User를 결정
- 즉, 제어권을 가진 소유자가 제어권을 전달할 수 있다는 의미에서 임의적(Discretionary)
- Graph-Based Access Control (GBAC)
- 열거 대신, organizational query language를 사용하여 정의
- History-Based Access Control (HBAC)
- 활동 내역(action, 요청 시간, 요청 내용 등)의 실시간 평가에 기반
- History-of-Presence-Based Access Control (HPBAC)
- Presence Policy에 기반, 해당 정책은 일반적으로 빈도, 규칙성 등의 측면에서 작성됨
- 예시
- 요청자가 최근 1주일 내에 k회 방문, 2회 연속 방문이 T시간 이상 떨어져 있지 않을 때 허용
- Identity-Based Acceess Control (IBAC)
- ACL에 identity가 표시되는지에 따라 허용
- Lattice-Based Access Control (LBAC)
- complex access control, object와 subject 사이의 interaction에 기반
- subject의 권한이 object의 권한보다 높을 때 접근 허용
- Mandatory Access Control (MAC)
- 개별 사용자는 권한 변경, 설정, 취소 등이 불가능
- 관리자가 정책을 제어
- 은행장이 고객 데이터파일에 접근권한이 있더라도, 시스템 관리자가 은행장에게 허가해야 작업 수행 가능
- user가 권한만으로 무단 작업 수행하는 것을 막기 위한 이중 잠금 형태
- Organization-Based Access Control (OrBAC)
- Role-Based Access Control (RBAC)
- Rule-Based Access Control (RAC)
- Responsibility-Based Access Control
Access Control Model의 class
- Capability-based
- 위조할 수 없는(unforgeable) Capability를 소유하면 권한 부여
- House Key를 소유하면 House의 Access 권한이 생기는 방식과 유사함
- ACL (Access Control List)-based
- ACL에 나타난 ID에 따라 권한 부여
- 경비원이 참석자 목록을 보고 접근을 통제하는 방식과 유사함
Reference
- 위키백과 "Authentication", https://en.wikipedia.org/wiki/Authentication
- 위키백과 "Access Control", https://en.wikipedia.org/wiki/Access_control#Computer_security
- CloudFlare, https://www.cloudflare.com/ko-kr/learning/access-management/what-is-access-control/