0 / 4
NIST RBAC 단계(NIST RBAC Levels)
역할 기반 접근 통제(RBAC)는 권한을 역할에 배정하고 사용자를 그 역할에 배정해, 사용자가 역할을 통해 권한을 얻게 하는 방식이다. 사람이 바뀌어도 권한을 하나씩 고치지 않고 역할만 옮기면 된다. NIST가 2000년에 낸 논문은 이것을 네 단계로 나눈다. 가장 단순한 Flat을 바탕으로 두고, 그 위에 단계마다 새 요구사항이 하나씩 더해진다.
예: 은행 지점 직원이 역할을 거쳐 권한을 얻는 모습을 Flat에서 시작해 단계마다 새 요구사항을 하나씩 더해 본다.
1 / 4
Flat RBAC
사용자를 역할에 배정하고 권한도 역할에 배정한다. 사용자는 역할을 통해 권한을 얻는다. 두 배정은 모두 다대다 관계라서 직원 한 명이 역할을 여럿 맡아 그 권한을 함께 쓰고 권한 하나가 여러 역할에 들어가기도 한다. 그림에서 직원 A는 역할이 둘이고 고객 열람 권한은 역할 둘에 들어 있다. 사용자가 가진 역할도, 역할을 가진 사용자도 조회할 수 있어야 한다.
2 / 4
Hierarchical RBAC
역할 사이에 위아래 관계를 둔다. 지점장이 창구 담당의 상위 역할이다. 상위 역할이 하위 역할의 권한을 얻는 이 관계를 흔히 상속이라고 하며, 상속으로 보면 지점장은 입금 처리 권한을 따로 배정받지 않아도 쓸 수 있다. 다만 상속으로 볼지, 상위 역할이 하위 역할을 직접 켜야 쓰는 것으로 볼지는 NIST 모델이 정하지 않는다. 순환만 없으면 어떤 모양이든 되는 것을 일반 계층, 트리처럼 단순하게 제한한 것을 제한 계층이라고 하며 NIST는 둘 다 인정한다.
3 / 4
Constrained RBAC
한 사람이 업무 전체를 혼자 맡지 못하게 나누는 것을 직무 분리(SOD, Separation of Duty)라고 한다. 대출 접수와 대출 승인을 한 사람이 다 하면 혼자 부정을 저지를 수 있다. 그래서 대출 담당과 지점장은 한 사람이 겸하지 못하게 정한다. 대출 담당인 직원 A에게 지점장을 배정하려는 시도는 거부된다. 배정할 때 막으면 정적 방식이고, 두 역할을 다 배정받는 것은 허용하되 접속해 일하는 동안 동시에 켜지 못하게 막으면 동적 방식이다. NIST 모델은 어느 쪽을 쓸지 정하지 않으며 그림은 정적 방식의 예다.
4 / 4
Symmetric RBAC
사용자와 역할 사이의 조회는 1단계에서 이미 요구했다. 여기서는 역할과 권한 사이도 조회할 수 있어야 한다. 고객 열람 권한이 든 역할도 찾고 반대로 한 역할이 가진 권한도 찾아야 한다. 성능도 사용자 쪽 조회와 비슷해야 하는데 규모가 큰 분산 시스템에서는 구현이 어려워서 마지막 단계로 미뤘다.
참고: 이 논문은 부록에서 제한과 대칭을 순서 없는 독립 기능으로 보는 쪽이 낫다고도 밝힌다. ANSI가 2004년에 낸 표준은 단계 대신 Core, Hierarchical, SSD(정적 직무 분리), DSD(동적 직무 분리) 네 구성요소를 서로 독립으로 두고, Core만 필수다. 권한 쪽 조회는 Core의 선택 기능이다. RBAC0~3은 또 다른 분류다.