지난 게시글에 이어서 역할기반 접근제어와 속성 기반 접근제어에 대해 공부하고자 한다.
1. 역할기반 접근제어(RBAC)
백엔드에서도 ADMIN, USER ROLE에 따라 연결할 수 있는 API 차등두는 거 생각하면 된다....
Role-Based Access Control | |
용어 정의 | 특정 사용자 및 그룹에 역할을 부여하여 역할이 가지고 있는 권한을 수행함으로써 접근제어 수행 |
조직 내에서 사용자가 가지는 역할Role에 기반하여 접근 결정 | |
4가지 참조모델로 확장 RBAC 0, RBAC 1, RBAC 2, RBAC 3 |
- 적용 분야 : 데이터베이스, 시스템 관리, 운영체제 제품
기존 접근제어 모델과의 차이점(등장 배경)
- 사용자 정보가 자주 바뀌는 경우 권한 관리의 어려움 → 역할에 따라 권한을 다르게 부여
DAC, MAC | RBAC |
사용자에게 권한 부여(사용자 중심 권한 부여) | 사용자에게 역할 부여를 통한 권한 수행 |
지속적인 권한 관리 필요(빈번한 수정 발생 시 비효율적) | 역할 부여 및 취소 가능(효율적 권한 관리 가능) |
수행 과정
- 단순한 형태의 접근 제어 수행
: 역할 생성 → 사용자/사용자 그룹 연결(맵핑) → 사용자의 접근, 사용 요청 시 접근제어 수행
- 사용자 할당 & 권한 할당
장단점
장점 | 임의적 접근제어는 객체마다 권한 부여 및 회수를 지속적으로 했어야 했으나 |
역할기반 접근제어는 역할 회수 및 부여를 통해 효율적으로 수행 작업 축소 가능 |
단점 역할 폭발 Role Explosion |
역할의 많은 증가로 세밀한 접근제어 불가능 |
빈번한 역할 생성 및 관리 | |
ex. Role2는 Role1의 90% 유사 권한이 필요한데 그대로 사용시 10%의 권한이 과도하게 발생하므로 역할 재정의가 필요 |
2. 역할기반 접근제어(RBAC) 모델
- RBAC 모델에 관한 연구 : Ravi S. Sandhu의 RABC 모델, NIST의 RABC 참조모델
기본형 RBAC(Flat/Core RBAC)
핵심 구성 요소 | |
사용자 | 사람이나 자율적인 에이전트 |
역할 | 조직과 관련된 직무, 책임, 자격 |
권한 | 하나 이상의 객체들에 대한 접근의 승인이나 특정 행위를 할 수 있는 특권 |
세션 (사용자-역할 다대다의 매핑 테이블 같은 역할) |
사용자의 특정 권한 사용을 위해 사용자와 역할 간의 세션 생성 및 역할 할당 |
한 사용자를 여러 역할에 매핑 가능 |
구성 요소의 관계 | |
U는 R에 배정(UA) | P도 R에 배정(PA) |
사용자-역할, 역할-권한 배정은 다대다 | 사용자는 동시에 여러 세션 소유 가능 |
U는 특정 S 안에서 사용 가능한 모든 역할에 배정된 권한의 합집합을 소유 |
계층형 RBAC(Hierarchical RBAC)
일반적 계층형 RBAC | 역할 계층에서의 다중 상속 허용 |
마치 벤다이어그램처럼 | |
제한적 계층형 RBAC | 역할 계층에서 1단계 직계 상속만 허용 - 다중 상속 금지 |
트리 또는 역트리 형태의 계층구조 |
제약형 RBAC(Constrained RBAC)
임무분리 Separation of Duty | |
정적 임무분리 (역할에 선언됨) |
Static Separation of Duty |
동일 사용자에게 (정적 임부분리가 선언된) 두 개 이상의 역할에 배정되지 못하게 하는 것 | |
동적 임무분리 (역할에 선언됨) |
Dynamic Separation of Duty |
동일 사용자에게 (동적 임무분리가 선언된) 두 개 이상의 역할에 배정될 수 있지만, 동시에 이 역할들을 사용할 수 없게 하는 것 |
대칭형 RBAC(Symmetric RBAC)
- 적절한 권한-역할 배정
- 과거의 권한-역할 배정은 새로운 상황 변화에 따라 적절하지 않을 수 있으므로 상황 변화에 능동적인 대처, 관리상의 다양한 상황 고려 필요
Ravi S. Sandhu의 RBAC 모델
Models | 계층 | 제약 | 비고 |
RBAC 0 | NO | NO | == 기본형 RBAC |
RBAC 1 | YES | NO | == 계층형 RBAC |
RBAC 2 | NO | YES | == 제약형 RBAC |
RBAC 3 | YES | YES |
3. 속성기반 접근제어(ABAC) 모델
Attribute-Based Access Control | |
용어 정의 | 객체==자원과 주체의 속성에 대한 조건을 토대로 접근제어 수행 |
특정 속성들이 정의되어 있는 상태에서 주체가 접근을 요청할 때 해당 속성들을 가지고 있는지를 판단하여 접근제어 수행 |
|
속성이 정책을 만족하는지 판단하여 세부적인 접근제어 수행 |
주요 요소 : 주체, 객체, 속성
- 속성 : ex. 이름, 시간, 장소, 직책, 부서 등 → 환경 조건 (환경 조건은 주체 및 객체와는 독립적인 동적 요소)
- 주체 : ex. 사용자 개인, 그룹, 애플리케이션 등 → 주체 속성 (이름, 직업 등 자신을 설명하고 실벽하는데 도움이 되는 주체가 가지고 있는 속성 리스트)
- 객체 : == 자원 → 객체 속성
장단점
장점 | 역할기반 접근제어의 경우 특정 요일/시간에 객체에 접근하도록 설정 불가하지만 |
속성기반 접근제어의 경우 위 접근제어 가능 ex. 회사의 일과시간에만 객체에 접근이 가능하도록 ex. 다양한 사물인터넷 센서를 사용할 수 있는 사물인터넷 환경에서 자주 사용 |
|
객체 및 주체 속성을 통한 세밀한 접근제어 ex. 의료 분야 : 특정 환자명 속성을 가진 의료 파일을 특정 환자 담당의 속성을 가진 의사가 접근 가능 |
|
유연한 접근제어 (역할기반 접근제어와 달리 환경에 따라 동적 변화 요소 사용 가능) |
단점 | 객체와 주체에 대한 속성의 주기적, 개별적인 관리 필요 (큰 틀의 RBAC + 세부적인 ABAC 조합 추천) |
인가 여부 결정 과정에서 높은 성능 비용이 발생할 우려 | |
클라우드와 사물인터넷에서 널리 각광 |
각 접근제어 모델의 종류와 특징 암기가 관건인 듯하다...
'Information Security' 카테고리의 다른 글
[DB보안] 빅데이터 생명 주기에 따른 보안 기술 (0) | 2024.06.13 |
---|---|
[DB보안] 빅데이터의 정의와 속성에 따른 처리 과정 및 보안 이슈 (0) | 2024.06.10 |
[DB보안] 접근제어 모델(정책) 유형 4가지 (1) : 임의적, 강제적 접근제어 (0) | 2024.06.03 |
[DB보안] 데이터베이스 접근제어 설계 및 구축 (0) | 2024.06.03 |
[DB보안] 데이터베이스 암호화 설계, 구축, 운영 및 MySQL DBMS 암호화 (0) | 2024.05.28 |