개인 재정 속성 기반 액세스 제어 (ABAC) - 보안에 유용한 패턴

속성 기반 액세스 제어 (ABAC) - 보안에 유용한 패턴

비디오: 박승철의정보보호론제32-19강 접근제어 2024

비디오: 박승철의정보보호론제32-19강 접근제어 2024
Anonim

유용한 보안 패턴은 레코드에 별도로 사용 권한을 할당하는 대신 레코드 내의 데이터를 기반으로 사용 권한을 적용하는 것입니다. 메타 데이터, 개별 열 (Bigtable 클론) 또는 요소 (누적 NoSQL 데이터베이스) 값을 기반으로 할 수 있습니다.

좋은 예는 문서 내에 언급 된 고객 이름입니다. 해당 고객을 언급하는 모든 문서에 대한 액세스를이 고객의 정보에 액세스 할 수있는 사용자로만 제한하려고 할 수 있습니다. 문서 내의 데이터를 처리하고 해당 데이터의 값을 기반으로 관련 보안 권한을 적용하여 이러한 문서에 대한 액세스를 제한 할 수 있습니다.

No NoSQL 데이터베이스는 즉시이 기능을 제공합니다. 데이터가 응용 프로그램에 의해 저장되었지만 다른 응용 프로그램이나 사용자가 검색 할 수있게되기 전에 사용 권한을 레코드에 할당해야하기 때문입니다. 따라서이 권한 할당은 트랜잭션 경계 내에서 발생해야합니다.

또한 ACID 준수 트랜잭션 (예: MarkLogic, FoundationDB 및 Neo4j)을 지원하는 NoSQL 데이터베이스는 거의 없습니다. 데이터베이스가 문서 내의 데이터를 기반으로 권한을 즉시 할당하는 것을 지원하지 않지만 ACID 트랜잭션을 지원하고 사전 커밋 트리거를 지원하면 쉬운 해결 방법이 가능합니다.

예를 들어, MarkLogic Server는 완전히 직렬화 가능한 ACID 트랜잭션과 사전 커밋 트리거를 지원합니다. 다음은 속성 기반 액세스 제어를 지원하려는 간단한 XML 문서입니다.

MarkLogic Server의 트리거는 W3C XQuery 언어를 사용합니다. 다음 XQuery 예제는 MarkLogic에 설치 될 때 읽기 및 쓰기 권한을 할당하는 간단한 트리거입니다.

xquery version "1.0-ml"; 가져 오기 모듈 네임 스페이스 trgr = 'http: // marklogic. com / xdmp / at '/ MarkLogic / triggers'를 트리거합니다. xqy '; 변수 $ trgr 선언: uri as xs: string external; 변수 선언 $ trgr: node () external; xdmp: document-set-permissions ($ trgr-uri, (xdmp: permission ("seniorsales", "update"), xdmp: permission ("sales", "read"))) else ()

트리거가 setperms 파일에 일단 설치됩니다.MarkLogic 서버 모듈 데이터베이스에서 xqy를 실행하려면 MarkLogic - Query Console 용 웹 코딩 응용 프로그램에서 다음 코드를 실행하여 트리거를 활성화합니다. 기본 MarkLogic Server 설치에서 URL (http: // localhost: 8000 / qconsole)에서 쿼리 콘솔을 찾을 수 있습니다.


다음은 Query Console을 사용하여 트리거를 설치하는 방법을 보여주는 코드입니다:

xquery version "1. 0-ml"; import module namespace trgr = "http: // marklogic. com / xdmp / triggers"at / MarkLogic / triggers. xqy '; trgr: create-trigger ("setperms", "Set Sales Doc Permissions", trgr: 트리거 데이터 이벤트 (trgr: 수집 범위 ("meetingreports"), trgr: 문서 내용 ("modify"), trgr: pre (), fn: true (), xdmp: default-permissions (), fn: 트리거 (예: -commit ()), trgr: 트리거 모듈 (xdmp: 데이터베이스 ("모듈"), "/ 트리거 /", "setperms.xqy" 거짓 ())
속성 기반 액세스 제어 (ABAC) - 보안에 유용한 패턴

편집자의 선택

R 더미에서 요소를 만드는 방법

R 더미에서 요소를 만드는 방법

R에서 요소를 만들려면 요소 ) 기능. factor ()의 처음 세 인수는 탐색을 보증합니다. x : 인수로 바꾸려는 입력 벡터입니다. levels : x가 취한 값의 선택적 벡터. 디폴트는 사전 식으로 정렬되어 x의 고유 한 값입니다. labels : Another ...

R- 더미에서 배열을 작성하는 방법

R- 더미에서 배열을 작성하는 방법

행렬 또는 배열을 구성하는 두 가지 옵션이 있습니다. 생성자 함수 Matrix () 및 array ()를 사용하거나 dim () 함수를 사용하여 치수를 간단히 변경하십시오. R의 작성자 함수 사용 배열 () 함수를 사용하면 데이터를 첫 번째 인수로주고 배열을 쉽게 만들 수 있습니다.

R

R

대입 연산자 (<- )를 사용하여 문자 벡터에 값을 할당하는 것과 거의 같은 방법으로 벡터에 이름을 할당합니다. 매월 날짜 수를 가진 명명 된 벡터를 만들고 싶다고 상상해보십시오. 먼저 매 달의 일 수를 포함하는 숫자 벡터를 만듭니다. 그런 다음 ...

편집자의 선택

명상 중에 일반적인 산만 함을 다루는 방법 명상 - 인물

명상 중에 일반적인 산만 함을 다루는 방법 명상 - 인물

Mindfulness 명상의 한 부분. 그들은 손을 맞잡고 간다. 혼란 스럽거나 혼란 스럽거나 짜증을 느끼거나, 느끼거나, 생각을 연습하게하고, 명상의 호흡이나 집중에주의를 기울이십시오. 점점 ...

모드에서 감정을 다루는 방법 - 인형

모드에서 감정을 다루는 방법 - 인형

감정은 해결해야 할 문제가 아니지만 받아 들여지는 경험. 당신이 당신의 감정을 관리하려고 노력하는 모드를 사용할 때, 당신의 도전적인 기분이 깊어 질 수 있습니다. 자동 조종 장치로 생활하면 부정적인 생각이 몰래 들릴 수 있습니다. 당신은 '나는 게으르다', '나는 할 수 없다', '할 수 없다'등의 부정적 생각을 할 수 있습니다.

주의력을 실천할 때 도움이되지 않는 태도를 다루는 방법 - 인형

주의력을 실천할 때 도움이되지 않는 태도를 다루는 방법 - 인형

당신이 그것에 대해 가질 수있는 완벽 주의자 또는 참을성없는 태도를 놓아주기 시작하십시오. Mindfulness 명상으로 고투하는 경우에, 당신은 잠이 들거나 당신의 마음이 방황하고, 화내거나 자신을 좌절시키지 않으려 고 노력합니다. 명상은 시간이 지남에 따라 개발할 수있는 연습입니다. ...

편집자의 선택

Xcode4에서 도움말보기 - 인형

Xcode4에서 도움말보기 - 인형

문서에 빠르게 액세스하는 기능은 Xcode 및 iOS 앱을 만들 때 정기적으로 사용하기를 원할 것입니다. 어떻게해야하는지 잘 모르거나 무언가가 어떻게 작동하는지 알지 못하는 경우 문서에서 대답을 찾을 수 있습니다. 무슨 일이 일어나고 있는지 알아 내면 ...

IOS 앱 개발에 클래스를 구현하는 방법 - 더미

IOS 앱 개발에 클래스를 구현하는 방법 - 더미

IOS 용 클래스의 구현은 해당 메소드의 구현으로 구성됩니다. 다음 목록은 메소드 구현이 무엇이고 클래스의 전체 구현 스펙이 어떻게 생겼는지에 대한 좋은 아이디어를 제공합니다. @implementation 지시어로 묶은 구현 스펙을 사용하여 클래스를 구현하십시오.