- 인쇄
- PDF
Ranger Plugin으로 접근제어 설정
- 인쇄
- PDF
Apache Ranger로 빅데이터 에코시스템에 대한 보안 규칙을 구현할 수 있습니다. Ranger 프로젝트는 모든 Hadoop 애플리케이션에 통일된 방식으로 보안 가이드라인을 정의하고, 적용될 수 있게 합니다.
Ranger 플러그인 활성화
클러스터에 설치된 서비스가 어떤 것이 있냐에 따라 활성화할 수 있는 플러그인이 정해져 있습니다. (기본값: 플러그인 비활성화)
Ranger로 Security Policy를 관리하려면 플러그인을 ON
상태로 변경해야 합니다. HDFS, Hive, YARN 등의 플러그인을 활성화할 수 있습니다.
- Ambari UI에 접속한 후 Services > Ranger > [CONFIGS] > RANGER PLUGIN 탭에서 Plugin을 활성화해야 Ranger를 이용한 권한 관리가 가능합니다. HDFS Ranger Plugin을
ON
상태로 변경하고 구성값을 저장해 주십시오.
- HDFS Ranger Plugin을 활성화하면 Services > HDFS > [CONFIGS] > ADVANCED > Advanced ranger-hdfs-plugin-properties 에서 Enable Ranger for HDFS 체크박스가 자동으로 체크됩니다.
HDFS와 마찬가지로 YARN 플러그인을 활성화하면 Enable Ranger for YARN 체크박스가 자동으로 체크됩니다.
- Advanced hdfs-site 항목의 dfs.permissions.enabled의 값을 true로 설정해 주십시오. 이 설정을 반영해야 Ranger Audit에 이력이 남습니다.
- HDFS, HIVE, YARN, PRESTO 서비스는 재시작이 필요합니다. 오른쪽 상단의 [ACTIONS] > Restart All을 클릭한 후, 팝업창의 [CONFIRM RESTART ALL] 을 클릭하여 바뀐 설정을 적용해 주십시오.
왼쪽 사이드 바에서 [...] > Restart All Required를 클릭하여 재시작이 필요한 컴포넌트를 한번에 재시작 할 수도 있습니다.
- Dependent Configurations 프롬프트가 표시되면 [OK] 버튼을 클릭해 주십시오.
Ranger Admin UI
- SSL VPN에 접속해 주십시오.
- SSL VPN에 대한 내용은 SSH로 클러스터 노드 접속 가이드를 참고해 주십시오.
- Ranger Admin UI에 접속할 Cloud Hadoop 클러스터를 선택한 후 [Application 별 보기] > Ranger Web UI를 클릭해 주십시오.
- Ranger UI 접속에 대한 자세한 내용은 Application 별 보기를 참조해 주십시오.
또는 콘솔의 클러스터 상세정보에서 도메인 주소를 확인해 주십시오. 아래과 같이 URL로 Ranger Admin UI에 바로 접속할 수 있습니다.
https://{도메인 주소}:6182/
- Cloud Hadoop 1.3 버전의 Ranger UI 계정(ID/Password)은 admin/admin으로 설정됩니다.
- Cloud Hadoop 1.4 버전 이상의 Ranger UI의 계정(ID/Password)은 admin/{사용자가 입력한 패스워드}로 설정됩니다.
Ranger Admin UI에 접속하면 어떤 서비스에 Policy가 적용 중인지 확인해 주십시오.
- 사전 작업으로 플러그인을 활성화한 HDFS, HIVE, YARN Policy가 존재하는 것을 확인할 수 있습니다.
- 사전 작업으로 플러그인을 활성화한 HDFS, HIVE, YARN Policy가 존재하는 것을 확인할 수 있습니다.
HDFS의 플러그인을 클릭해 List of Policies 화면에서 기본으로 생성된 Policy의 규칙을 확인해 주십시오.
- Action > [edit] 를 클릭해 주십시오. Select User는 모든 path에 대하여 Read, Write, Execute 권한을 가지고 있음을 확인할 수 있습니다.
Ranger Policy 생성하기
- Ranger Admin UI 첫 화면에서 HDFS 플러그인에 기본으로 노출되는 [{클러스터명}_hadoop] Policy를 클릭해 주십시오.
- 다음과 같이 [Add New Policy] 버튼을 선택 후 정책을 넣어주십시오.
Resource Path에는 다른 경로를 입력해도 됩니다. 여기서는 관리자 계정의 HDFS 홈 디렉터리를 사용했습니다. 특정 디렉터리 아래 모든 파일 또는 하위 디렉터리에 권한이 적용되도록 하려면 [Recursive] 버튼 상태를 활성화로 설정하십시오.
SSH 접속 계정인
sshuser
가 이 경로에 접근할 수 있도록 Select User에sshuser
를 선택해 주십시오.여기서는 Read, Write, Execute 모든 권한을 부여했습니다.
Cloud Hadoop은 설치 시 설정한 관리자 계정(e.g. df-test17
)에 대해 HDFS 홈 디렉터리를 기본적으로 생성해 줍니다.
ls
명령어로 생성한 규칙이 적용되었는지 확인해 주십시오.- 클러스터의 어떤 노드에 접속해도 상관없습니다.
- 노드에 SSH로 접속하여 아래와 같이
mkdir
명령어로sshuser
계정의/user/{클러스터 계정명}
디렉터리에 새로운 디렉터리를 생성해 주십시오. ls
명령어로 디렉터리가 제대로 생성되었는지 테스트해 보십시오.
$ hadoop fs -mkdir /user/{클러스터 계정명}/tmp
$ hadoop fs -ls /user/{클러스터 계정명}
- Ranger Audit UI 를 통해서 접근 시도한 로그 확인이 가능합니다.
- Cloud Hadoop 1.8 버전은 PRESTO 플러그인을 추가 제공합니다.
- Cloud Hadoop 1.8 버전은 Presto Ranger Plugin을 추가 제공합니다.
Trino 접근 권한 관리
Trino의 접근 제어는 Catalog, Schema, Table 레벨 순으로 설정해야 합니다. 즉, Schema 레벨에서 권한을 제어하려면 Catalog 레벨에서 먼저 접근 제어가 이루어져야 합니다. Catalog 레벨의 Policy를 생성한 후, 별도의 Schema 레벨의 Policy를 생성하시면 됩니다.
Catalog 레벨에서 권한 제어를 하는 방법은 다음과 같습니다.
- Ranger Web UI > Trino > Add New Policy를 선택합니다.
- catalog에
hive
를 입력합니다. - Allow Conditions > Select User에 권한을 부여하고자 하는 사용자를 입력합니다.