#33. 역할 기반 엑세스 제어(Role Based Access Control, RBAC)란?

Twolinecode
twolinecode
Published in
6 min readNov 6, 2023

역할 기반 *엑세스 제어(RBAC)는 정보 시스템 및 네트워크 보안에서 사용되는 중요한 접근 제어 모델 중 하나입니다. 이 모델은 사용자 역할, 작업 및 권한을 중심으로 구성되며, 시스템에 대한 접근을 조직화하고 제어하기 위해 사용됩니다.

RBAC는 각 사용자에게 하나 이상의 *”역할”을 할당하고 각 역할에 서로 다른 권한을 부여하여 이를 수행합니다. RBAC는 단일 소프트웨어 애플리케이션 또는 여러 애플리케이션에 적용할 수 있습니다.

*엑세스 제어 : 사이버 보안에서 액세스 제어는 사용자가 수행할 수 있는 작업과 볼 수 있는 데이터를 제한하고 제어하는 도구를 지칭합니다. 스마트폰 잠금을 해제하기 위해 비밀번호를 입력하는 것도 액세스 제어의 기본적인 예입니다. 비밀번호를 아는 사람만 전화기의 파일과 애플리케이션에 액세스할 수 있습니다.

*역할 : RBAC에서는 역할에 대한 보다 기술적인 정의가 있습니다. 회사 시스템 내에서 사용하기 위해 명확하게 정의된 기능 또는 권한의 집합입니다. 각 내부 사용자에게는 적어도 하나의 역할이 할당되며 일부는 여러 역할을 가질 수 있습니다.

RBAC의 필요성 및 장점

· 필요성 : 보안을 강화하고 정보 시스템의 접근을 효과적으로 관리하여 데이터 보호와 규정 준수를 달성합니다.

· 보안 강화 : 역할 기반 접근 제어는 무단 액세스를 제한하고 중요 데이터를 보호하는데 도움을 줍니다.

· 규정 준수 : 규제 및 법률을 준수하며 감사 추적을 용이하게 하여 조직의 규정 준수를 지원합니다.

· 관리 효율성 : 사용자 및 권한을 중앙에서 관리하여 운영 및 비용을 최적화합니다.

· 업무 효율성 : 역할 기반 접근 제어는 사용자가 필요한 권한을 간단하게 얻도록 도와 업무 효율성을 높입니다.

RBAC모델의 권한 방식 3가지

1. 핵심 RBAC

핵심 모델은 RBAC의 모든 단일 구성 요소를 정교하게 만드는 것입니다. 각 역할부터 각 권한까지 모든 것이 이 모델을 통해 지정됩니다. 따라서 이는 다른 2가지 유형의 RBAC의 기반이 될 뿐만 아니라 사용자 액세스 권한을 관리하기 위한 독립형 방법으로도 작동할 수 있습니다.

· 핵심 RBAC의 기본규칙

- 역할 할당 : 사용자는 주체에게 역할이 할당된 경우에만 권한을 행사할 수 있습니다.

- 역할 기반 권한 부여 : 사용자의 역할에 권한이 부여되어 사용자가 권한이 부여된 역할만 수행할 수 있도록 합니다.

- 권한 승인 : 사용자는 역할 할당 및 권한 부여에 따라 권한이 부여된 경우 특정 권한을 행사할 수 있습니다.

2. 계층적 RBAC

RBAC 모델의 변형으로, 높은 수준의 역할에 속한 사용자에게는 더 많은 권한과 보안이 제공되고, 낮은 수준의 역할에 속한 사용자에게는 제한된 권한이 부여됩니다. 이로써 보안을 강화하고 비용을 절감하는 데 도움이 됩니다.

3. 제한된 RBAC

RBAC 배포의 책임 또는 임무는 이 표준을 통해 지정됩니다. 구현 또는 직무 분리(SD)는 요구 사항에 따라 정적이거나 동적일 수 있습니다.

· 정적 모델(Static Model — SSD) : 상호 배타적인 역할이 동일한 개인에게 부여되지 않도록 방지합니 다. 예를 들어, 전자 상거래 플랫폼에서 구매자와 판매자 역할은 상호 배타적이며 사용자는 하나의 역할 만 가질 수 있습니다. 이로써 역할 간 권한 충돌을 방지하고 사용자에게 엄격한 역할을 할당합니다.

· 동적 모델(Dynamic Model — DSD) : 사용자가 제한없이 여러 권한을 가질 수 있지만, 동일한 세션에서는 동시에 사용하는 것은 불가능합니다. 사용자는 특정 권한을 실제로 사용하려면 추가 승인이 필요합니다. 이는 더 유연한 권한 관리를 가능하게 합니다.

RBAC 모델의 선택은 조직의 보안 및 역할 관리 요구에 따라 다를 수 있으며, 이러한 다양한 방식을 활용하여 사용자 액세스를 효과적으로 관리할 수 있습니다.

RBAC의 예시

조직은 역할 또는 그룹별로 사용자를 지정할 수 있고, 역할 그룹에 사용자를 추가한다는 것은 새 사용자가 해당 특정 그룹의 모든 권한에 액세스할 수 있음을 의미합니다.

조직은 관리자, 업무별 최종 사용자 또는 게스트를 포함하도록 역할을 분할할 수 있습니다.

예를 들면 다음과 같은 역할이 있습니다 :

· 조직의 소프트웨어 엔지니어링 도구(GitHub, Docker 및 Jenkins)에 대한 역할과 액세스 권한이 부여된 소프트웨어 엔지니어

· 조직의 마케팅 도구(이메일 마케팅 목록, Google Analytics 또는 소셜 미디어 프로필)에 대한 역할과 액세스 권한이 부여된 마케팅 담당자

· 조직의 HR 관련 도구(ADP, Oracle Cloud Human Capital Management 또는 Paycor)에 대한 역할과 액세스 권한이 부여된 인사 담당자

소프트웨어 엔지니어는 같은 회사의 HR 또는 마케팅 담당자가 보유하고 있는 도구나 파일에 액세스할 수 없지만 작업을 완료하는 데 필요한 도구에는 액세스할 수 있습니다. 마찬가지로 마케팅 담당자는 자신의 역할에 따라 필요한 도구에 액세스할 수 있지만 HR 또는 소프트웨어 엔지니어링 도구에는 액세스할 수 없습니다.

RBAC vs. ABAC(Attribute-Based Access Control)

RBAC(역할 기반 액세스 제어)와 ABAC(속성 기반 액세스 제어)는 모두 액세스 제어 방법이지만 접근 방식이 다릅니다.

RBAC는 사용자의 역할에 따라 액세스 권한을 부여하는 반면,

ABAC는 다음 범주의 조합을 기반으로 액세스를 제어합니다.

· 사용자 속성 : 사용자 이름, 국적, 조직, ID, 역할 및 보안 허가가 포함될 수 있습니다 .

· 자원 속성 : 액세스 되는 개체의 소유자, 이름 및 데이터 생성 날짜를 설명할 수 있습니다.

· 작업 속성 : 액세스 중인 시스템 또는 애플리케이션과 관련된 작업을 설명합니다.

· 환경적 속성 : 액세스 위치, 액세스 시간 및 위협 수준이 포함될 수 있습니다.

ABAC는 특정 속성을 추가하여 권한 부여 옵션을 기하급수적으로 증가시켜 RBAC에 비해 다른 수준의 제어를 구현합니다. RBAC보다 훨씬 더 유연하지만 이러한 유연성을 적절하게 구현 및 관리하지 않을 경우 위험을 증가시킬 수 있습니다.

RBAC마무리

기업 정보 시스템, 의료 기관, 금융 서비스, 교육 기관, 정부 및 군사 기관, 클라우드 서비스 제공업체, 소프트웨어 및 애플리케이션등 다양한 분야에서 보안, 업무 효율성, 규정 준수 및 리소스 관리를 위한 강력한 도구로 사용됩니다. 역할과 권한을 중심으로 엑세스를 제어함으로써 조직은 보안과 효율성을 개선하고 중요한 데이터와 시스템을 보호할 수 있습니다.

참조문서

https://www.cloudflare.com/ko-kr/learning/access-management/role-based-access-control-rbac

https://www.wallarm.com/what/what-exactly-is-role-based-access-control-rbac

https://www.techtarget.com/searchsecurity/definition/role-based-access-control-RBAC

<투라인코드>의 테크 블로그는 클라우드 네이티브 및 클라우드 트렌드 등 다양한 콘텐츠로 찾아 뵐 예정입니다.

--

--

Twolinecode
twolinecode

We have the best solutions and experts for our customer’s digital business needs-everything from Cloud Infrastructure to Cloud Native Application.