기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
액세스 제어 유형
광범위하게 정의된 두 가지 모델, 즉 역할 기반 액세스 제어 (RBAC) 와 속성 기반 액세스 제어 (ABAC) 를 사용하여 액세스 제어를 구현할 수 있습니다. 각 모델에는 장단점이 있으며, 이에 대해서는 이 섹션에서 간략하게 설명합니다. 사용해야 하는 모델은 특정 사용 사례에 따라 다릅니다. 이 가이드에서 설명하는 아키텍처는 두 모델을 모두 지원합니다.
RBAC
역할 기반 액세스 제어 (RBAC) 는 일반적으로 비즈니스 로직에 맞는 역할을 기반으로 리소스에 대한 액세스를 결정합니다. 권한은 역할에 따라 적절하게 연결됩니다. 예를 들어 마케팅 역할은 제한된 시스템 내에서 마케팅 활동을 수행할 수 있는 권한을 사용자에게 부여합니다. 이 액세스 제어 모델은 쉽게 알아볼 수 있는 비즈니스 로직에 잘 맞기 때문에 비교적 간단하게 구현할 수 있습니다.
RBAC 모델은 다음과 같은 경우 효과가 떨어집니다.
-
여러 역할을 담당하는 고유 사용자가 있습니다.
-
비즈니스 로직이 복잡하여 역할을 정의하기가 어렵습니다.
-
대규모로 확장하려면 지속적으로 관리하고 권한을 새 역할과 기존 역할에 매핑해야 합니다.
-
승인은 동적 매개변수를 기반으로 합니다.
ABAC
속성 기반 액세스 제어 (ABAC) 는 속성을 기반으로 리소스에 대한 액세스를 결정합니다. 속성은 사용자, 리소스, 환경 또는 애플리케이션 상태와 연관될 수 있습니다. 정책이나 규칙은 속성을 참조하며 기본 부울 논리를 사용하여 사용자의 작업 수행 허용 여부를 결정할 수 있습니다. 권한의 기본 예는 다음과 같습니다.
결제 시스템에서는 재무 부서의 모든 사용자가 업무 시간 /payments
동안 API 엔드포인트에서 결제를 처리할 수 있습니다.
재무 부서의 멤버십은 액세스 권한을 결정하는 사용자 속성입니다/payments
. 업무 시간에만 액세스를 허용하는 /payments
API 엔드포인트와 연결된 리소스 속성도 있습니다. ABAC에서는 재무 부서 멤버십을 사용자 속성으로, 시간을 리소스 속성으로 포함하는 정책에 따라 사용자가 결제를 처리할 수 있는지 여부가 결정됩니다. /payments
ABAC 모델은 매우 유연하여 동적이고 상황에 따라 세부적인 권한 부여 결정을 내릴 수 있습니다. 그러나 ABAC 모델은 초기에 구현하기가 어렵습니다. 규칙과 정책을 정의하고 모든 관련 액세스 벡터의 속성을 열거하려면 상당한 사전 투자가 필요합니다.
RBAC-ABAC 하이브리드 접근 방식
RBAC와 ABAC를 함께 사용하면 두 모델의 장점을 일부 제공할 수 있습니다. RBAC는 비즈니스 로직과 매우 밀접하게 연계되므로 ABAC보다 구현하기가 더 간단합니다. ABAC를 RBAC와 결합하여 권한 부여 결정을 내릴 때 한층 더 세분화할 수 있습니다. 이 하이브리드 접근 방식은 사용자의 역할 (및 할당된 권한) 을 추가 속성과 결합하여 액세스 결정을 내리는 방식으로 액세스를 결정합니다. 두 모델을 모두 사용하면 권한을 간편하게 관리하고 할당할 수 있을 뿐만 아니라 권한 부여 결정과 관련된 유연성과 세분성을 높일 수 있습니다.
액세스 제어 모델 비교
다음 표에서는 앞서 설명한 세 가지 액세스 제어 모델을 비교합니다. 이 비교는 정보를 제공하고 높은 수준을 제공하기 위한 것입니다. 특정 상황에서 액세스 모델을 사용하는 것이 이 표에 나와 있는 비교와 반드시 상관관계가 있는 것은 아닙니다.
요인 |
RBAC |
ABAC |
하이브리드 |
유연성 |
중간 |
높음 |
높음 |
단순성 |
높음 |
낮음 |
중간 |
세부 수준 |
낮음 |
높음 |
중간 |
역동적인 결정과 규칙 |
아니요 |
예 |
예 |
상황 인식 |
아니요 |
예 |
어느 정도 |
구현 노력 |
낮음 |
높음 |
중간 |