- 인쇄
- PDF
Ranger를 통한 사용자별 HDFS 접근권한 관리
- 인쇄
- PDF
Apache Ranger로 빅데이터 에코시스템에 대한 보안 규칙을 구현할 수 있습니다. Ranger 프로젝트는 모든 Hadoop 애플리케이션에 통일된 방식으로 보안 가이드라인을 정의하고 적용될 수 있게 합니다.
이 가이드에서는 Ranger의 사용자 기반 접근권한 관리 기능을 통해 사용자별로 접근할 수 있는 HDFS 디렉터리를 지정하는 방법을 설명합니다.
Ranger의 사용자 기반 접근권한 관리 기능을 이용하기 위해서는 Ranger Plugin 활성화가 선행되어야 합니다.
Ranger Plugin 활성화 방법은 Ranger Plugin으로 접근제어 설정 가이드를 참고해 주십시오.
Ranger 아키텍처 요약
- 클라이언트측에서 리소스에 접근할 때 Ranger가 중간에서 Policy 기준으로 접근 제어 기능을 수행합니다.
- HDFS 외에도 Hive, HBase 등의 컴포넌트의 리소스에 대하여 접근 제어가 가능합니다.
Hue를 이용한 User 생성
- Hue Web UI에 접속해 주십시오.
- Hue 사용에 대한 내용은 Hue 사용 가이드를 참조해 주십시오.
- 왼쪽 하단의 프로필에 커서를 올린 뒤 [사용자 관리] 를 클릭해 주십시오.
- 오른쪽 상단의 [사용자 추가] 버튼을 클릭한 후, 사용자 이름과 암호를 입력하여 새로운 유저를 생성해 주십시오.
- 유저가 성공적으로 생성되었다면, 관리 사용자 페이지에서 생성된 사용자를 확인할 수 있습니다.
- 추가로 왼쪽 메뉴바의 파일 메뉴를 클릭하면
/user
경로에서 사용자 이름을 가진 디렉터리를 확인할 수 있습니다.
Ranger User 생성
- Ranger UI에 접속한 후, 상단의 Settings > [Users/Groups] 버튼을 클릭해 주십시오.
- Ranger 사용자를 추가하기 위해 [Add New User] 버튼을 클릭해 주십시오.
- Ranger 사용자를 추가하기 위해 상단의 [Users] 탭을 클릭한 후 [Add New User] 버튼을 클릭해 주십시오.
- User Name 항목에 Hue에서 생성했던 사용자 이름과 동일한 사용자를 생성해 주십시오.
- Password와 First Name 항목은 자유롭게 설정할 수 있습니다.
- Select Role 항목에서 관리자(Admin)와 일반 사용자(User) 여부를 선택할 수 있습니다.
- Group 항목에는 앞서 생성한 그룹을 선택해 주십시오.
- 사용자 생성이 완료되면 다음과 같이 Ranger UI에서 사용자 리스트를 확인할 수 있습니다.
Ranger Policy 생성
Policy를 설정하기 위해 상단의 Access Manager > Resource Based Policies를 클릭해 주십시오.
[HDFS] 탭에 있는 [{클러스터 명}_hadoop] 서비스를 클릭해 주십시오.
우측의 [Add New Policy] 버튼을 클릭해 주십시오.
[HDFS] 탭 우측에 있는 [+] 버튼은 Policy 생성이 아닌 Service 생성 버튼입니다. Policy 생성을 위해서는 [+] 버튼이 아닌 [{클러스터 명}_hadoop] 서비스를 클릭하여 서비스 내부에서 Policy를 생성해 주십시오.
Resource 설정
- [Policy Details] 항목에서 Policy의 이름과 관리하고자 하는 리소스를 설정할 수 있습니다.
- [Resource Path] 항목에 접근을 제어하고자 하는 HDFS 디렉터리의 Path를 입력해 주십시오.
- [recursive] 옵션은 하위 디렉터리 포함 유무를 나타냅니다.
Condition 작성
- Ranger Policy를 따로 생성하지 않았더라도 Hue에서 HDFS 접근 가능합니다.
Ranger Condition이 설정이 되어있지 않으면 HDFS와 YARN은 자체 ACL을 통해 사용자 접근 관리를 수행합니다. 따라서 Ranger Condition이 존재하지 않아도 Hue에서 HDFS 접근이 가능합니다. 하지만 그 외의 컴포넌트는 Ranger Plugin이 활성화되어도 Ranger Condition이 설정되지 않은 경우 접근이 제한됩니다.
- Ranger Policy의 Condition은 접근 허용을 위한 Allow Condition과 접근 제한을 위한 Deny Condition 두 가지가 존재합니다.
- HDFS는 Condition이 존재하지 않아도 이미 접근이 가능하기 때문에 Ranger Policy를 생성하고 Deny Condition을 먼저 설정해야 HDFS 접근 제한을 할 수 있습니다.
Ranger Policy는 Deny Condition, Deny Condition 예외, Allow Condition, Allow Condition 예외 순서로 접근 권한을 확인합니다.
- [Deny Condtions] 탭 아래의 [Select User] 항목을 클릭하여 접근을 제한할 사용자를 모두 선택해 주십시오.
- 특정 사용자만 접근을 허용하도록 설정하려면 [Exclude from Deny Conditions] 탭 아래의 [Select User] 항목을 클릭하여 예외 사용자를 지정할 수 있습니다.
- Condition 작성이 완료되면 하단의 [Add] 버튼을 클릭하여 Policy를 생성합니다.
- 접근 제한이 정상적으로 설정되었다면, Hue에서 접근 제한이 적용된 HDFS 디렉터리에 접근했을 때, 우측 상단에 경고 팝업 메시지가 출력됩니다.
- 아래 예시는 'user-2' 사용자로 로그인 후
/user/user-1
디렉터리에 접근 시도했을 때의 화면입니다. 접근이 제한되어 경고 팝업 메시지가 출력된 것을 확인할 수 있습니다.
Ranger Audit 확인
- 접근 제한이 된 원인은 Ranger UI를 통해서 정확히 파악할 수 있습니다.
- 상단의 [Audit] 탭을 클릭해 주십시오.
- 접근 리스트에서 Ranger에 의해 접근이 제한된 디렉터리를 확인할 수 있습니다.
- HDFS의 자체 ACL이 아닌 Ranger에 의해 제한된 리소스는 Access Enforcer 탭에 'hadoop-acl'이 아닌 'ranger-acl'이 출력되어 있습니다.