RBAC 와 ABAC

박수한·2026년 3월 17일

CS/Theory/Study

목록 보기
1/2
post-thumbnail

클라우드 환경에서 접근 제어에 대한 두가지의 접근 모델을 알아본다.

RBAC(Role-Based Access Control) : 역할기반 제어

정의 : 사용자의 역할에 따라 접근 가능한 리소스를 결정.

특징

  • 역할이 잘 정의되어 있을 때 직관적이고 사용하기 쉽다.
  • 사용자에게 역할을 할당하면 해당 역할에 고정된 권한 집합이 부여된다.

클라우드 환경에서 왜 RBAC가 유용한가?

  • 최소 권한 원칙(PoLP) : 사용자는 필요한 최소한의 권한만 부여받아 계정이 해킹당했을 때 피해 범위 최소화 가능
  • 운영 효율성 : 사용자별로 권한을 할당하는 대신 역할 수준에서 권한을 관리합니다. 새로운 사용자를 추가할 때는 해당 사용자에게 적합한 역할을 할당하기만 하면 됨
  • 확장성 : 소규모 개발팀을 운영하든 글로벌 기업을 운영하든 동일하게 작동
  • 중앙 집중식 관리 : 역할 기능을 통해 누가 어떤 권한에 접근할 수 있는지 한눈에 확인하고 조정 가능.
  • 규정 준수 및 감사 : HIPAA, GDPR, SOX와 같은 표준은 접근 제어에 대한 입증을 요구합니다. RBAC는 접근 권한을 명확하게 정의된 역할에 연결함으로써 감사를 간소화
  • 내부자 위협 완화 : 권한 강화는 우발적이거나 악의적인 데이터 노출 가능성을 줄여줌.
  • 서비스 간 권한 부여 : 마이크로서비스 중심의 환경에서 RBAC는 서비스 간 통신 방식을 제한가능.

클라우드 환경에서 왜 RBAC의 한계

RBAC가 완벽했더라면 ABAC는 필요없었을 것이다.
알려진 RBAC의 한계는 다음과 같다.

  • 역할 확산 : 프로덕션 환경에서는 개발자에게 읽기 전용 스토리지 권한을, 스테이징 환경에서는 개발자에게 쓰기 권한을, 운영팀에게는 전체 액세스 권한을, 지원팀에게는 읽기 전용 EC2 인스턴스 권한을 부여하는 등 거의 동일한 역할이 수십 개씩 생성되는 경우가 발생함.

  • 상황 인식의 부족 : RBAC는 태그, 사용자 속성, 시간이나 IP 주소와 같은 조건을 고려하지 않음, 특정 역할에서 허용된 작업은 모든 환경에서 허용됨

    ABAC(Attribute-Based Access Control) : 속성기반 제어

정의 :사용자의 역할뿐 아니라 사용자 및 리소스의 속성에 따라 세부적인 접근 권한을 제어.

특징

  • 접근 권한을 부여하기 전에 사용자, 리소스, 그리고 경우에 따라 환경의 속성을 평가하는 더욱 심층적인 접근 제어 방식이다.
  • 역할만으로는 확장이 어려운 복잡하고 다중 테넌트 환경 또는 동적인 환경에서 더 큰 유연성을 제공한다.

예시

개발자 역할은 버킷에 쓰기 권한을 가집니다" 라고 명시하는 대신 , "버킷의 env=dev 속성이 있고 호출자의 팀 태그가 engineering인 경우에만 쓰기 권한을 허용합니다" 라고 지정.

ABAC는 어떤 환경, 어떤 리소스, 그리고 어떤 조건에서 해당 권한을 실제로 사용할 수 있는지에 대한 정확성을 강화한다.

구성요소

  • 속성 : 사용자, 자원 또는 환경의 특성. 여기에는 사용자 속성(예: 부서, 직책), 자원 속성(예: 문서 유형, 분류) 및 환경 속성(예: 시간, 위치)이 포함될 수 있다.
  • 정책 : 속성을 사용하여 접근 권한을 부여하거나 거부하는 방법을 정의하는 규칙이다.
  • 요청 : 사용자가 리소스에 접근하려는 시도이며, 속성을 사용하여 정책에 따라 평가된다.

RBAC와 비교하였을 때 정책 관리 복잡, 초기 설계 비용 증가한다는 단점이 존재한다.
기본적으로 RBAC 환경에서 고위험·동적 환경에 ABAC을 결합한 혼합형 접근 통제(RBAC+ABAC) 방식도 존재한다.

https://www.firefly.ai/academy/rbac-vs-abac#:~:text=RBAC%20(Role%2DBased%20Access%20Control)%20grants%20permissions%20based%20on,is%20dynamic%20and%20context%2Ddriven.

profile
인생은 졸업의 연속이라고 생각해요

0개의 댓글