2006/09/01

솔라리스에서 RBAC( roll based access control )의 의미 및 구성 방법

안녕하세요. 한국썬의 김봉환입니다.

아마도 useradd를 실행할 수 있었던 사용자는 Primary Administrator 권한을
위임받을 수 있는 profile을 가졌을 겁니다. 그 사용자에서 profiles -l 해보
세요. 이 권한으로 위임받은 사용자는 exec_attr에 추가되는 모든 명령어를
실행할 수 있습니다.

profile이라는 것은 권한(authorization)과 명령 실행(command)를 결합해 놓
은 환경입니다.
따라서, 특정 사용자에게 특정 profile을 할당해주게되면, 그 profile을 위임
받은 사용자는 이미 권한을 획득한 상태이기 때문에 exec_attr에 등록된 명령
어를 실행할 수 있는 것입니다.

특정 사용자에게 profile를 위임하지 않은 상태에서 권한을 구성하게 할 수도
있습니다만, 이렇게 사용하시려면 사용하기가 불편할 뿐 아니라, 관리하기가
까다롭기 때문입니다.

dtrace 와 같은 명령어는 대개 kernel probe를 위해서 root 권한을 가지고 있
는 사용자가 실행할 수 있는데, 이렇게 하기 위해서는 특정 사용자를 dtrace
수행 권한을 포함한 profile을 가지게 할 수 있고, 직접적으로 authorization
을 가지게 할 수도 있습니다.

user_attr(4), auth_attr(4) 를 참고하십시요.

RBAC의 바람직한 사용법은 profile을 구체적으로(촘촘하게) 구성하시고, 사용
자에 따라서 profile을 수여받도록 하는 것이 바람직합니다.

따라서, 사용자에게 특정 일만 하게 하시고 싶으시면 그 사용자에게 Primary
Administrator를 수여하지 마시고, 적절한 profile을 제공하십시요. 만약
prof_attr에 기 만들어진 profile이 존재하지 않는다면, 만드셔도 됩니다.

prof_attr에 new profile 추가
exec_attr에 새로 추가된 profile에 따라 실행이 필요한 명령어 추가
user_attr에 새로 만든 profile을 추가함에 따라서 쉽게 RBAC 을 사용하실 수
있습니다.

보다 섬세하게 RBAC을 사용하시고 싶으면 auth_attr에 나오는데로, 사용자에
게 auths를 할당할 수 있습니다만, 여러개의 authorization은 dependancy를
가지기 때문에 완벽하게 이해하셔야 사용하실 때 문제가 없읍니다.

예를 들면, 쓰기 권한을 주고, 읽기 권한을 막았다던가 하게 되면, 쓰기 권한
에도 문제가 생깁니다. 또한, 일반적인 프로세서가 open/read/write하는 모든
대상에 대해서 이해를 하고 있어야 합니다. 가령 웹서버가 소켓과 포트에 대
한 권한을 열어주고 화일 시스템에 대한 접근을 막아두면, 로그를 쌓는 기능
을 가진 웹서버는 에러로 동작하지 않을 수도 있습니다.


댓글 없음: