Role Based Access Control

역할 기반 접근 제어 (Role Based Access Control, RBAC) 는 컴퓨터 시스템 보안에서 권한이 있는 사용자들에게 시스템 접근을 통제하는 한 방법입니다.

RBAC 는 정보에 대한 사용자 (User) 의 접근 권한을 각 User 의 Identity 나 이미 정해진 규칙에 의해 판단하지 않고, User 가 소속된 조직 내에서의 역할 (Role) 에 따라 결정합니다. 즉, 정보에 대한 접근 권한이 역할에 따라 배정됩니다.

예를 들면, 어떤 회사의 영업팀 직원이 자신의 업무 역할 범위를 벗어난, 인사팀의 인사 평가 자료에 접근을 할 수 없도록 하는 것입니다. 그래서 RBAC 는 역할 기반 보안으로 부르기도 합니다.

500 명 이상의 직원이 있는 기업 다수가 사용하며, 강제 접근 제어 (MAC) 나 임의 접근 제어 (DAC) 를 구현할 수 있습니다.

B) 장점과 단점

RBAC 는 엔터프라이즈 (Enterprise) 환경에서 각 개인이 시스템에 접근할 수 있는 권한을 역할 기준으로 통제하는 것입니다.

간단한 예를 들면, 공항에서, 일반 직원과 관리책임자, 그리고 여행객이 갈 수 있는 공간이 구분되어 있는 것과 같습니다. 이러한 역할기반 접근제어는 다수의 사람에 대해 유연하고 직관적이며, 효율적인 통제가 가능합니다.

먼저 역할의 개념을 생각해 봅시다. 관리자라는 역할이 있다면 어떤 권한을 가져야 하는 지 누구나 쉽고 빠르게 알 수 있습니다. 다시 말하면, 우리가 필요에 의해 어떤 담당자를 정의한다면, 그 순간 그 담당자가 해야할 일과 가져야 하는 권한을 함께 정의할 수 있습니다.

그리고, 이렇게 생각해 볼 수 있습니다. 역할은 어떤 특정 사람을 지칭하는 것이 아니므로 어떤 사람엑 역할을 부여하거나 변경하는 것만으로도 유연하고 효율적으로 권한을 부여하거나 회수 할 수 있습니다. 그래서 역할기반 접근제어를 하게 되면 유연하고 직관적이며, 효율적인 통제가 가능합니다.

이러한 역할기반 접근제어가 엔터프라이즈 환경에서 필요한 것은 사람들이 많기 때문입니다. 사람이 적을 때는 옆 집 살림살이를 서로 알 정도로 투명합니다. 그래서 자연스럽게 서로 감시가 됩니다. 그러나 사람이 많으면 이러한 관심과 감시가 어렵기 때문에 신뢰를 기반으로하는 접근관리는 현실적인 대안이 되기 어렵습니다.

스타트업에서는 서로를 잘 알기 때문에 특별한 접근 통제의 필요성을 잘 느끼지 못하지만, 엔터프라이즈 환경에서는 다양한 사람들의 드나들기 때문에 역할과 권한을 관리하는 체계가 필요한 것입니다.

최근에는 엔터프라이즈 환경이라도 역할기반 접근통제방식만 사용하지 않습니다. 빅데이터 (Big Data) 시스템을 이용하여 개인의 행적을 추적할 수 있기 때문에, 시스템에서 자동으로 권한을 조정하는 방법도 일부 활용하고 있습니다.

역할기반 접근통제는 장점도 있지만, 단점도 있습니다. 역할에 따라 권한정책을 정의하기 때문에 정책이 현실에 딱 맞게 떨어지지 않습니다. 먼저 여러 역할에 조금씩 겹치는 권한정책이 있을 수 있습니다. 거의 비슷한 일을 하지만, 아주 약간 다른 일을 해야 한다면 각 역할을 별도로 만들어야 합니다. 그래서 90% 비슷한 권한을 가진 역할이라도 목적이 다르면 역할을 변경해서 접속해야 합니다.

다른 한 편으로는 역할에 지정하는 권한정책이 세밀하지 못하다는 단점이 있습니다. 여러 상황을 추상화해서 역할을 만들어야 하지만, 현실의 상황을 반영하여 딱 맞는 역할과 권한을 설계하는 것은 쉽지 않은 일이기 때문입니다. 만약 세밀한 권한관리를 하기 위해 역할을 매우 작은 단위로 나누게 되면, 사용자는 역할 전환을 자주해야 하는 상황이 생깁니다. 반대로 역할을 큰 단위로 설계하면, 필요이상으로 많은 권한을 열어 주게되므로 보안에 취약해 집니다. 그래서 보안강화와 사용자 불편 (또는 불만) 을 잘 타협한 역할 범위를 잘 설계해야 합니다.

C) Related

D) References