본문 바로가기
개념/Study

RBAC (Role-Based Access Control) & ABAC (Attributed-Based Access Control)

by Hwanii_ 2023. 11. 14.
728x90

1. RBAC : Role-Based Access Control

 

 

RBAC == 역할 기반 액세스 제어 라고 한다.

 

정보 시스템 에서 사용자에 대한 권한을 관리 하는데 사용 되는 보안 모델 이다.

 

RBAC 는 사용자의 직무 / 역할 / 책임 / .. 등에 기반 하여 사용자에 대한 권한을 부여 하고 제어 한다.

 

RBAC 는 특히 기업 환경 에서 광범위 하게 사용 되고, 사용자 인증 / 권한 관리 를 효과적으로 수행 하는데 활용 된다.

 

 

 

RBAC == Role-Based Access Control 의 주요 구성 및 작동 방식은 아래와 같다.

 

1) 역할 (Role)

 

RBAC 에서는 역할 이라는 개념이 핵심 이다.

역할은 일련의 작업 또는 책임을 의미 한다.

이러한 역할에 따라 특정한 권한이 할당 된다.

예를 들어, 매니저 / 사용자 / 관리자 /.. 등 과 같은 역할이 있을 수 있다.

 

2) 사용자 (User)

 

사용자는 시스템에 접근 하는 개별 개체를 의미 한다.

각 사용자는 하나 이상의 역할을 가질 수 있다.

 

3) 권한 (Permission)

 

권한은 특정 작업 또는 자원 (데이터) 에 대한 액세스 권한을 의미 한다.

예를 들어, 읽기 권한 ! / 쓰기 권한 ! / .. 등 과 같이 다양한 권한이 정의 될 수 있다.

 

4) 할당 (Assignment)

 

할당은 사용자에게 특정 역할을 부여 하는 프로세서 이다.

사용자는 위에서 말했듯이, 하나 이상의 역할을 가질 수 있고,

각 역할은 다양한 권한을 가질 수 있다.

 

즉, 역할이 더 큰 범주 이고, 역할에 따른 특정한 권한이 부여 된다고 보면 된다.

 

5) 권한 검토 (Permission Review)

 

주기적으로 사용자의 권한을 검토 해야 한다.

필요에따라 역할 또는 권한을 수정 하는 프로세스를 의미 한다.

이렇게 권한 검토를 해야 하는 이유로는 보안 및 규정 준수를 위함 이다.

 

 

 

RBAC == Role-Based Access Control 의 장점은 아래와 같다.

 

1) 간결한 권한 관리

역할로 권한을 할당 하기 때문에, 역할이라는 큰 기준을 가지고,

사용자 - 권한 매핑을 간소화 할 수 있다.

 

2) 보안 강화

역할을 부여 한다는 것은, 특정한 업무의 책임을 의미 한다.

따라서, 특정한 사용자가 해야할 역할을 확실하게 주고, 그 역할에 따른 권한을 확실하게 부여 해야 한다.

그렇게 최소한의 권한을 부여 해야 보안이 강화 될 수 있다.

 

3) 유연성

역할을 동적으로 관리 할 수 있다.

역할 간의 상속을 통해 새로운 권한 및 역할을 추가 하거나 수정 할 수 있다.

 

정리하자면, RBAC == Role-Based Access Control 은 

역할을 통해 권한 관리를 효과적으로 관리 할 수 있기 때문에, 광범위 하게 사용 되고,

이것을 사용함으로써, 안전한 정보 시스템 운영을 구축 할 수 있게 된다.

 

RBAC 예시)

 

온라인 쇼핑몰에 관리자 / 판매자 / 일반 유저 세 가지 역할만 있다고 가정.

 

각 역할은 특정한 권한을 부여 받음.

 

먼저 역할을 설정 한다.

>> 관리자 / 판매자 / 일반 사용자

 

그런 다음에, 권한을 설정 한다.

>> 관리자 : 상품 추가 / 주문 관리 / 사용자 관리

>> 판매자 : 상품 추가 / 주문 조회

>> 사용자 : 상품 조회 / 장바구니 관리

 

권한을 설정 했으면, 역할을 할당 한다.

 

A / B / C 라는 사용자가 있다고 가정.

 

A에게는 관리자 역할을 할당

 

B에게는 판매자 역할을 할당

 

C에게는 사용자 역할을 할당

 

그러면, 결과적으로,

 

A는 관리자 역할로 할 수 있는 권한이 부여되고,

 

B는 판매자 역할로 할 수 있는 권한이 부여되고,

 

C는 사용자 역할로 할 수 있는 권한이 부여된다.

 

이렇게 RBAC == Role-Based Access Control 을 사용 하면, 사용자에게 역할을 할당 하고,

각 사용자에게 정말 필요한 권한만 최소한으로 제공 하는 방식을 갖게 된다.

 

역할을 기반으로 액세스를 제어 할 수 있기 때문에 권한을 효과적으로 관리 하고 유지 보수 할 수 있다.

 

그렇지만 동적이라고 할 수는 없고, 정적이라고 할 수 있다.

 

왜냐하면 당연하게 역할을 할당 하면 그 역할에 해당하는 권한만 부여 받기 때문 이다.

 

 

 

2. ABAC : Attribute-Based Access Control

 

 

ABAC == 속성을 기반으로 사용자의 액세스를 규정 하는 모델 이다.

 

ABAC 는 사용자 / 자원 (데이터) / 환경 / .. 등과 같은 엔터티 (== 주체) 의 속성을 기반으로 액세스 규칙을 정의 한다.

 

이렇게 엔터티의 속성을 기반으로 규칙을 정의 하기 때문에, 동적이고 유연한 엑세스 제어가 가능 하다.

 

 

ABAC == Attribute-Based Access Control 의 주요 구성 및 작동 방식은 아래와 같다.

 

1) 주체 (Subject)

 

주체는 시스템에 접근하려는 사용자 / 프로세스 / 장치 / .. 등을 의미 한다.

이러한 각 주체는 속성을 가질 수 있고,

이러한 속성이 액세스 제어 규칙에 사용 된다.

 

2) 객체 (Object)

 

객체는 시스템 내의 자원 / 파일 / 데이터베이스 등을 의미 한다.

객체는 속성을 가질 수 있고,

마찬가지로 액세스 제어 규칙에 일부로 활용 된다.

 

3) 액션 (Action)

 

액션은 주체가 객체에 대해 수행 하려는 작업을 의미 한다.

읽기 / 쓰기 / 실행 과 같은 다양한 액션을 정의 할 수 있다.

 

4) 속성 (Attribute)

 

ABAC == Attribute-Based Access Control 에서는

주체 / 객체 / 환경 / .. 의 속성이 액세스 제어의 기반을 형성 한다고 정리했다.

그리고 이러한 속성들은 정책에 사용 되어 액세스를 허용 하거나 거부 할 수 있다.

 

5) 정책 (Policy)

 

정책은 액세스 제어 규칙을 정의 하는데 사용 된다.

정책은 주체의 속성 / 객체의 속성 / 액션 등을 모두 조합하여,

특정 조건이 충족 될 때, 액세스를 허용 또는 거부 하게 된다.

 

6) 액세스 규칙 (Access Rule)

 

액세스 규칙은 주체 / 객체 / 액션 / 속성 간의 관계를 기반으로 한 개별적인 액세스 규칙을 의미 한다.

 

 

 

ABAC == Attribute-Based Access Control 의 장점은 아래와 같다.

 

1) 유연성과 동적성

 

ABAC == Attribute-Based Access Control 은 사용자나 자원 (데이터) 의 속성 또는 상태를 기반으로

액세스를 결정 하기 때문에, 그 자체로, 동적이고 유연한 액세스 제어가 가능 하다.

 

이게 무슨 말이냐면, 사용자의 속성 또는 환경에 변화에 따라 액세스 규칙이 동적으로 변동 될 수 있다는 것인데,

예를 들어, 사용자의 역할 뿐만 아니라, 사용자의 위치 / 시간 / 장치 / 등등의 다양한 속성을 고려 함으로써,

액세스 규칙이 동적으로 변경 될 수 있다는 것이다.

 

2) Context 고려 

 

주체 / 객체 / 액션 / 속성 등 다양한 Context 정보를 고려 하여 액세스 제어를 결정 한다.

 

3) 중앙 집중화된 정책 관리

 

ABAC == Attribute-Based Access Control 은 중앙 집중화된 정책 관리를 통해 일관된 액세스 제어를 제공 할 수 있다.

 

정리하자면, ABAC == Attribute-Based Access Control 은

복잡하고 동적인 환경 에서 발생 할 수 있는 요구 사항에 대응 하기 위해 설계 되었다.

ABAC 모델은 대규모 조직 또는 다양한 속성을 고려 해야 하는 시스템 에서 특히 효과적 이라고 할 수 있다.

 

 

 

ABAC 예시)

 

사용자는 Role (직책) 과 부서 (Department) 라는 두가지 속성을 갖는다고 가정.

 

사용자는 특정 파일에 접근할 수 있다.

 

이때, 이 파일은 민감한 정보를 담고 있기 때문에, 파일에 대한 액세스를 아무렇게나 접근 할 수 있도록 하면 안된다.

 

따라서, 이 파일에 대한 액세스를 사용자의 속성에 따라서 다르게 제어 할 수 있다는 것이다.

 

예를들어,

사용자 A와 B가 있다고 가정.

파일 X와 Y가 있다고 가정.

 

A는 매니저 역할 과 영업부 부서를 갖음.

 

B는 직원 역할과 기술부 부서를 갖음.

 

X는 기밀 정보를 담고 있음.

 

Y는 일반 정보를 담고 있음.

 

이러한 상황 에서, 액세스 규칙을 설정 한다.

 

1) 매니저는 기밀 파일에 대한 읽기 및 쓰기 권한 O

 

2) 직원은 일반 파일에 대한 읽기 권한만 O

 

3) 영업부는 매니저와 직원 모두에게 적용 되고, 기술부는 직원 에게만 적용 !

 

[ 결과 ]

 

사용자 A (매니저 / 영업부) 는 기밀 파일 X 에 대한 읽기 및 쓰기 권한 O

 

사용자 B (직원 / 기술부) 는 일반 파일 Y 에 대한 읽기 권한만 O

 

 

 

3. RBAC 과 ABAC 의 장단점

 

 

 

 

[ Reference ]

 

RBAC와 ABAC 의 특징 비교: 정의 및 사용 사례 | Okta Identity Korea

 

RBAC와 ABAC 의 특징 비교: 정의 및 사용 사례 | Okta Identity Korea

RBAC와 ABAC의 가장 큰 차이점은 액세스 권한을 부여하는 방식에 있으며, RBAC 프로토콜에서는 역할에 따라 액세스 권한을 부여할 수 있습니다. 반면 ABAC 프로토콜에서는 사용자 특성, 객체 특성, 작

www.okta.com

 

반응형

'개념 > Study' 카테고리의 다른 글

Proxy Server (프록시 서버)  (0) 2023.11.16
HTTP 통신 과정  (0) 2023.11.15
세션 (Session) & 쿠키 (Cookie)  (1) 2023.11.15
LDAP (Lightweight Directory Access Protocol)  (0) 2023.11.14
SSO (Single Sign-On) 란 ?  (1) 2023.11.14