속성 기반 액세스 제어 개요

속성 기반 액세스 제어(ABAC)는 액세스를 결정하기 위해 속성을 평가하는 권한 부여 모델입니다. 속성은 주체(액세스를 요청하는 사용자 또는 엔터티), 객체(주체가 액세스하려는 리소스 또는 파일), 심지어 환경(시간, IP 주소 등의 다른 매개변수)과 관련될 수 있습니다. 

ABAC 정책은 RBAC(역할 기반 액세스 제어) 및 부서와 함께 작동하여 액세스 제어의 세분성을 더욱 강화합니다. 이러한 정책은 조건이 참 또는 거짓 결과로 평가되는 부울 논리 문입니다. 각 정책은 특정 API 호출 그룹(대상이라고 함)을 대상으로 하며 특정 사용자 하위 집합(주체라고 함)에 적용됩니다.

ABAC 사용을 시작하려면 속성 기반 액세스 제어 활성화 첫 번째.

현재 지원되는 정책은 다음과 같습니다.

  • 새로운 역할을 부여할 수 없습니다 – 관리자가 아닌 사용자가 자신에게 없는 역할을 부여하지 못하도록 방지합니다.
  • 특정 사용자 프로필 필드를 업데이트할 수 없습니다. – 감독자 또는 관리자를 제외한 정의된 사용자 프로필 필드가 수정되는 것을 방지합니다.

ABAC에서 사용되는 정의

용어 설명
정책 이름 정책 생성자가 정책을 생성하거나 업데이트할 때 설정한 정책의 이름입니다. 
설명 (선택 사항) 정책 작성자가 설정한 정책에 대한 간략한 설명입니다.
목표

정책이 적용되는 대상 리소스입니다. 리소스 목표는 다음과 같은 형태를 갖습니다.domain:entity:action 그리고 주체가 수행하려고 시도하는 행동을 반영합니다.directory:userprofile:edit ). 

대상은 사용자가 하려는 일을 반영하며 일반적으로 리소스를 편집, 보기 또는 삭제하기 위한 API 호출과 동일합니다. 정책은 목표와 연관되어 있습니다.

제목

정책의 주체는 정책이 적용되는 사용자, 그룹 또는 클라이언트입니다. 정책에는 주제가 하나만 있을 수 있습니다. 이 주제에는 다음과 같은 구성원이 있습니다.

  • 유형 : 정책이 단일 사용자, 사용자 그룹, 특정 OAuth 클라이언트 또는 리소스에 액세스하는 모든 사용자/클라이언트에 적용되는지 여부를 나타냅니다. 유형 속성은 사용자, 그룹, 클라이언트 또는 모두 중 하나여야 합니다.
  • ID : 사용자/그룹/클라이언트의 GUID입니다. 주제 유형이 all인 경우 이 값은 무시됩니다.
효과

정책의 효과는 정책이 조건이 충족되면 액세스를 허용하는지, 아니면 조건이 충족되면 즉시 액세스를 거부하는지를 나타냅니다. 사용자가 ALLOW 정책의 조건을 충족하고, 필요한 권한이 있으며, DENY 정책에 의해 차단되지 않으면 해당 리소스에 대한 액세스가 허용됩니다.

ABAC는 기존의 역할 기반 접근 및 부서별 접근 제어를 대체하지 않습니다. 이 기능은 더욱 세분화된 액세스 제어를 제공하기 위해 바로 작동합니다. ABAC 정책 평가 결과가 허용인 경우, 시스템은 액세스를 허용하기 전에 주체에게 필요한 권한이 있는지 확인합니다.

DENY 효과가 있는 정책은 리소스에 대한 액세스를 거부해야 하는 조건을 지정합니다. 사용자가 DENY 정책의 조건에 부합하는 경우, 동일한 리소스에 대한 ALLOW 정책의 조건에 부합하는지 여부와 관계없이 액세스가 거부됩니다.

리소스에 하나 이상의 정책이 첨부되었지만 사용자가 어떤 정책의 조건과도 일치하지 않는 경우, 기본적으로 사용자는 리소스에 대한 액세스가 거부됩니다.

상태

(선택 사항) 정책이 액세스를 허용하거나 거부하는 특정 조건을 설정합니다.

평가된 각 조건은 다음과 같은 기본 패턴으로 표현됩니다(JSON으로 표현). "attribute.one": { "comparison_operation": "attribute.two" }

정책이 평가될 때 시스템은 제공된 속성 이름에 해당하는 속성을 검색하고 제공된 연산을 사용하여 이를 비교합니다.

여러 조건을 Any(논리적 OR을 나타냄) 또는 All(논리적 AND를 나타냄) 구조 내부에 중첩하여 더 복잡한 조건 논리를 구현할 수도 있습니다.

사전 설정 속성

(선택 사항) 시스템의 속성 데이터와 비교되는 정적이고 미리 정의된 속성의 맵입니다. 예를 들어, 정책 생성자는 특정 역할 ID를 가진 모든 사용자에게 액세스를 허용할 수 있으며, 해당 역할 ID를 정책의 사전 설정 속성으로 제공할 수 있습니다.

정책 생성자는 사전 설정된 속성 이름을 설정합니다. 시스템이 제공한 기존 속성과 충돌하는 이름은 검증 시 거부됩니다. 사전 설정된 속성 이름에는 영숫자, 마침표(.), 밑줄(_)을 포함할 수 있지만 나열된 문자 외의 공백이나 특수 문자는 포함할 수 없습니다.

각 맵 항목에는 키(사전 설정 속성의 이름)와 값(TypedAttribute 객체)이 있으며, 값은 다음과 같은 멤버로 구성됩니다.

  • 유형 : 속성의 기본 데이터 유형입니다.
  • : 속성 값의 문자열 표현입니다.

자세한 내용은 다음을 참조하세요. 액세스 정책 만들기 .