액세스 제어 유형 - AWS 규범적 지침

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

액세스 제어 유형

광범위하게 정의된 두 가지 모델, 즉 역할 기반 액세스 제어 (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

하이브리드

유연성

중간 

높음

높음

단순성

높음

낮음

중간

세부 수준

낮음

높음

중간

역동적인 결정과 규칙

아니요

상황 인식

아니요

어느 정도

구현 노력

낮음

높음

중간