it-swarm-korea.com

RBAC와 DAC / ACL의 차이점은 무엇입니까?

각각의 이점은 무엇이며 언제 다른 것을 선택해야합니까? 이들을 병합해야하는 상황이 있습니까?

일반적인 사용법의 예가 있습니까?

그리고 MAC은 어떻습니까?

64
AviD

RBAC (역할 기반 액세스 제어)는 비즈니스 역할 목록을 정의하고 시스템의 각 사용자를 하나 이상의 역할에 추가합니다. 그런 다음 각 역할에 권한과 권한이 부여되고 사용자는 역할의 구성원 자격 (그룹과 거의 동일)을 통해 권한을받습니다. 응용 프로그램은 일반적으로 사용자에게 특정 역할의 멤버 자격이 있는지 테스트하고이를 기반으로 액세스 권한을 부여하거나 거부합니다.
DAC (Discretionary Access Control)를 사용하면 사용자 또는 관리자가 특정 리소스 (예 : 파일, 레지스트리 키, 데이터베이스 테이블, OS 개체 등)에서 ACL (Access Control List)을 정의 할 수 있습니다.이 목록에는 항목이 포함됩니다. (ACE)는 리소스에 액세스 할 수있는 각 사용자와 해당 리소스에 대한 권한을 정의합니다.

DAC에 비해 RBAC의 주요 이점은 관리가 용이하다는 것입니다. 원칙적으로 몇 명의 사용자에 관계없이 중앙에서 관리되는 역할이 거의 없으며 각 사용자에게 올바른 역할을 부여해야하는 문제가 있습니다. 각 새 사용자 (또는 사용자 변경 또는 삭제 등)마다 DAC와 달리 액세스해야하는 모든 리소스로 이동하여 목록에 추가해야합니다.
반면에 DAC는 종종 더 단순하고 일반적으로 더 세분화됩니다. 또한 DAC 모델에서 데이터 소유자는 액세스 권한이있는 사람 (데이터에 대한 해당 권한이있는 경우)을 결정하고 목록에서 사람을 추가 또는 제거 할 수 있습니다.

DAC의 가장 일반적인 예는 Windows 파일 시스템입니다. 반면에 RBAC의 가장 일반적인 예는 회사 파일 서버의 DAC입니다. "Sales"ActiveDirectory 그룹의 모든 사용자는\Sales\공유 폴더에 액세스 할 수 있습니다. Windows에서 Administrators 그룹이 더 일반적입니다.

MAC은 필수 액세스 제어이며 분류 또는 개인 정보 수준으로 볼 수 있습니다. 이것은 대부분 군사 시스템에서 사용되며 메인 프레임 시절에 사용됩니다. :). 현재 OS는 Vista/Win7의 무결성 수준과 같은 특징을 구현하고 있지만 더 이상 많이 사용되지는 않습니다.

차이점을 요약하면 다음과 같습니다.

  • DAC는 개인 권한, "그룹"수준 권한에 대한 RBAC를 기반으로합니다.
  • DAC는 데이터 소유자가 설정하고 RBAC는 시스템 소유자가 설정합니다 (일반적으로 개발자는 각 역할에 부여 된 액세스 권한을 정의하고 운영 관리자는 사용자를 역할로 지정)
  • DAC 정의는 일반적으로 데이터/자원에 첨부되는 반면 RBAC는 일반적으로 코드/구성/메타 데이터 (역할 액세스)와 사용자 개체 (또는 테이블-각 사용자의 역할)의 두 위치에 정의됩니다.
  • 반면에 RBAC 역할은 중앙에서 관리되고 (누가 어떤 역할과 연결되어 있는지) DAC는 "자원에서"관리됩니다 (즉, 각 자원을 개별적으로 관리).
  • 역할 당 권한 정의는 일반적으로 RBAC에서 정적이고 사용자에게는 역할 만 부여됩니다. DAC에서 리소스 당 권한은 종종 런타임에 변경됩니다.
  • DAC는 "내 데이터에 액세스 할 수있는 사람"을 열거하고 RBAC는 "이 사용자가 할 수있는 작업"을 정의합니다.
87
AviD