액세스 제어는 시스템 보안의 중요한 측면입니다. 이를 통해 승인된 사용자만이 리소스에 액세스하고 작업을 수행할 수 있습니다. 역할 기반 액세스 제어 (RBAC) 및 특성 기반 액세스 제어 (ABAC)는 현대 시스템에서 널리 사용되는 두 가지 인기 있는 액세스 제어 모델입니다. 두 모델 모두 널리 채택되어 있으며 액세스 제어 정책을 효과적으로 시행하는데 사용될 수 있습니다. 그렇다면 이 모델들은 무엇이며 어떻게 다른가요?
역할 기반 액세스 제어 (RBAC)는 1990년대 초반에 처음 도입되었습니다. 이 모델의 공식화는 1992년 발표된 논문에서 David Ferraiolo와 Rick Kuhn에게 인정받았습니다. 그 이후로 RBAC는 업계에서 가장 널리 사용되는 액세스 제어 모델 중 하나가 되었습니다.
RBAC에서 액세스 제어 정책은 권한의 모음인 역할을 기반으로 합니다. 사용자는 역할(예: 관리자, 편집자, 뷰어)에 할당되고, 특정 리소스(예: 파일, 데이터베이스, 애플리케이션)에 대한 권한(예: 생성, 편집, 삭제)에 따라 액세스 권한이 결정됩니다. 사용자를 역할에 기반으로 그룹화하고 역할에 권한을 할당함으로써 액세스 제어 정책 관리를 단순화합니다. 사용자를 역할에 추가하거나 제거하는 것은 간단하며, 변경사항은 액세스 제어 정책에 자동으로 반영됩니다.
ABAC는 RBAC와 비교하여 더 유연한 액세스 제어 모델입니다. ABAC는 사용자의 특성, 리소스, 행동 및 환경에 기반한 액세스 제어 정책을 정의하는 허가 모델입니다. 이는 조직이 다양한 컨텍스트와 조건에 맞게 적응할 수 있는 세분화된 액세스 제어 정책을 정의할 수 있도록 합니다.
복잡성: ABAC는 RBAC와 비교하여 구현 및 관리가 더 복잡할 수 있습니다. 특성과 정책을 정의하는 데 더 많은 노력과 전문 지식이 필요할 수 있습니다. 역할과 권한이 잘 구조화된 RBAC와 달리 특성은 더 역동적일 수 있으며, 정책 또한 그렇습니다. 복잡한 시스템에서 많은 특성과 정책을 관리하는 것은 도전적일 수 있습니다. 종종 정책 평가 엔진이 필요하게 됩니다.
성능: 특성을 평가하는 것은 특정 환경에서 성능에 영향을 줄 수 있습니다. 다중 특성과 실시간 조건에 기반한 정책은 액세스 제어 결정에 지연을 초래할 수 있습니다.
이 경우 액세스 제어 정책은 간단하고 잘 구조화되어 있습니다. 사용자가 리소스에 대한 액세스를 가지는 지 결정하는 데 단일 수준의 권한 검사가 필요합니다. 병원 시스템의 구조가 복잡해지고 여러 부서, 역할 및 권한이 존재한다고 상상해 보세요:
RBAC 모델에서 환자 기록 리소스의 액세스 제어 평가 프로세스는 사용자가 읽기, 쓰기, 또는 삭제 권한을 가지고 있는 지와 상관없이 여전히 간단하고 직관적일 것입니다.
반면 ABAC는 부서-id 및 의사-id와 같은 추가 특성을 포함해야 합니다. 만약 IoT 디바이스가 환자 기록에 액세스할 필요가 있다면, 디바이스-id라는 새로운 특성이 정책 평가에 포함되어야 할 것입니다. 인턴 의사에게 임시로 읽기 권한을 부여하려면 어떻게 해야 할까요?
결론적으로, RBAC가 더 잘 맞습니다. RBAC는 잘 정의된 권한 구조와 액세스 제어 정책이 정적인 시스템에 대해 간단하고 효율적입니다.
이 경우 액세스 제어 정책은 더 복잡하고 컨텍스트 인식적입니다. 환자 기록 리소스의 액세스 제어 평가 프로세스는 사용자가 리소스에 액세스할 수 있는 지의 여부를 결정하기 위해 여러 수준의 권한 검사가 필요합니다.
RBAC 모델에서는 환자 기록 리소스의 액세스 제어 평가 프로세스는 사용자가 리소스에 액세스할 수 있는 지의 여부를 결정하기 위해 여러 수준의 권한 검사가 필요합니다. 예를 들어, 환자가 자신의 기록에 액세스할 수 있는 지 결정하려면, 시스템은 사용자가 자신의 기록 읽기 권한을 가지고 있는지, 그리고 사용자 ID가 환자 ID와 일치하는지를 확인해야 합니다.
ABAC 모델에서는 액세스 제어 평가 프로세스가 더 간단할 수 있습니다. 정책은 사용자, 리소스, 행동의 특성에 따라 정의될 수 있습니다. 예를 들어, 환자가 자신의 기록에 액세스할 수 있는 지 결정하려면, 정책 엔진이 사용자 ID와 환자 ID 기반으로 정책을 평가할 수 있습니다.
이 경우, ABAC가 더 적합할 수 있습니다. ABAC는 액세스 제어 정책이 동적이고, 컨텍스트 인식적이며, 세분화되어야 하는 시스템에 더 적합합니다.
RBAC와 ABAC 중 선택은 시스템의 특정 요구사항에 따라 달라집니다. RBAC는 잘 정의된 권한 구조를 가진 시스템 및 액세스 제어 정책이 정적인 경우에 가장 적합합니다. ABAC는 액세스 제어 정책이 동적이고, 컨텍스트 인식적이며, 세분화되어야 하는 시스템에 더 적합합니다. 실제로 조직은 원하는 수준의 액세스 제어를 달성하기 위해 두 모델을 결합하여 사용할 수 있습니다.