데이터 보안의 중요성이 커지면서 기업은 점점 더 많은 보안 문제에 직면하게 됩니다. 속성 기반 액세스 제어(ABAC)는 새로운 보안 모델로서 점차 기존의 역할 기반 액세스 제어(RBAC) 모델을 대체하고 있습니다. ABAC의 가장 큰 특징은 유연성과 동적 관리 기능입니다. 이를 통해 기업은 더욱 복잡하고 변화하는 환경에서도 데이터를 무단 액세스로부터 효과적으로 보호할 수 있습니다.
ABAC는 주체, 객체, 요청 작업 및 환경 속성과 관련된 속성을 사용하여 권한 부여 결정을 내리는 액세스 제어 정책을 구현하는 방법입니다.
ABAC의 원리는 주체, 객체, 환경과 관련된 속성을 기반으로 부울 함수를 통해 정책 규칙을 생성하는 것입니다. RBAC와 달리 ABAC는 복잡한 규칙 세트를 처리하고 여러 속성을 평가할 수 있으므로 액세스 목록과 그룹을 관리하는 것이 훨씬 더 쉽습니다. 권한 제어는 더 이상 특정 사용자의 신원에만 의존하지 않고, 동적 환경에서 요청의 맥락을 기반으로 합리적인 액세스 결정을 내립니다.
ABAC 시스템은 일반적으로 여러 구성 요소로 구성됩니다. 첫 번째는 애플리케이션과 데이터를 보호하는 정책 시행 지점(PEP)입니다. PEP는 요청을 받은 후 승인 요청을 생성하여 정책 결정 지점(PDP)으로 전송합니다. PDP는 ABAC 아키텍처의 핵심이며, 들어오는 요청이 구성된 정책을 준수하는지 평가하고 "허용" 또는 "거부" 결정을 반환하는 역할을 합니다. 정책 정보 지점(PIP)은 외부 소스에서 누락된 속성 메타데이터를 가져오는 데 사용됩니다.
속성은 액세스 제어와 관련된 모든 주제를 포괄할 수 있으며 주체 속성, 동작 속성, 개체 속성, 상황 속성이라는 네 가지 주요 범주로 나눌 수 있습니다.
이러한 속성에는 사용자, 작업, 리소스 및 이들이 존재하는 컨텍스트를 설명하는 다양한 정보가 포함됩니다. 예를 들어, 주체 속성에는 사용자의 나이, 삭제 권한, 직위가 포함될 수 있는 반면, 동작 속성은 사용자가 시도한 특정 작업(예: 읽기 또는 삭제)을 설명합니다. 이러한 속성 정의를 통해 ABAC는 더욱 상황에 맞는 정보를 고려하고 권한 부여를 수행할 때 보다 세분화된 제어를 제공할 수 있습니다.
ABAC 정책은 고정되어 있지 않으며 실제 필요에 따라 정의하고 조정할 수 있습니다. 예를 들어, 기업에서는 사용자가 특정 시간 동안 또는 특정 상황에서만 특정 리소스에 액세스하도록 요구하는 정책을 수립할 수 있습니다. 이 기능을 통해 ABAC는 역동적이고 유연한 비즈니스 요구 사항을 처리하는 데 특히 유리합니다.
ABAC에는 OASIS XACML 및 NIST의 차세대 액세스 제어(NGAC)와 같은 여러 구현 표준이 있습니다. 이러한 표준은 ABAC 배포를 지원하여 다양한 기술 스택과 엔터프라이즈 인프라에 적용할 수 있습니다. ABAC를 적용하면 방화벽, 서버, 애플리케이션, 데이터베이스 및 데이터 수준에서 추가적인 맥락을 제공하여 액세스 요청의 적법성을 평가하는 데 도움이 될 수 있습니다.
ABAC를 사용하는 기업은 사용자별 속성에 따라 일련의 IF/THEN 규칙을 정의하여 데이터를 보호할 수 있습니다.
ABAC가 점점 더 인기를 얻으면서 미국 상무부에서 도입하였고 현재는 정부와 군 기관으로 확대되고 있습니다. 이 모델은 규정 준수를 더 잘 지원할 뿐만 아니라 사용자 및 주체의 직접 승인 필요성을 줄여 데이터 보안 정책을 보다 유연하고 효과적으로 만들어줍니다.
빅데이터와 분산 시스템의 인기가 높아짐에 따라 ABAC에 대한 수요는 계속해서 증가할 것입니다. 이는 데이터베이스 보호에만 적용되는 것이 아니라, 마이크로서비스와 API 보안에도 중요한 역할을 합니다. 그렇다면 끊임없이 변화하는 데이터 보안 요구 사항에 직면하여 ABAC가 정말로 미래의 액세스 보안을 위한 표준이 될 수 있을까요?