

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon EMR과 Ranger의 통합을 위한 Apache Hive 플러그인
<a name="emr-ranger-hive"></a>

Apache Hive는 Hadoop 에코시스템에서 널리 사용되는 실행 엔진입니다. Amazon EMR은 Hive에 대한 세분화된 액세스 제어를 제공할 수 있는 Apache Ranger 플러그인을 제공합니다. 플러그인은 오픈 소스 Apache Ranger Admin 서버 버전 2.0 이상과 호환됩니다.

**Topics**
+ [지원되는 기능](#emr-ranger-supported-features)
+ [서비스 구성 설치](#emr-ranger-hive-service-config)
+ [고려 사항](#emr-ranger-hive-considerations)
+ [제한 사항](#emr-ranger-hive-limitations)

## 지원되는 기능
<a name="emr-ranger-supported-features"></a>

EMR의 Hive용 Apache Ranger 플러그인은 데이터베이스, 테이블, 열 수준 액세스 제어, 행 필터링 및 데이터 마스킹을 포함한 오픈 소스 플러그인의 모든 기능을 지원합니다. Hive 명령 및 관련 Ranger 권한 테이블은 [Hive commands to Ranger permission mapping](https://cwiki.apache.org/confluence/display/RANGER/Hive+Commands+to+Ranger+Permission+Mapping)을 참조하세요.

## 서비스 구성 설치
<a name="emr-ranger-hive-service-config"></a>

Apache Hive 플러그인은 Apache Hive Hadoop SQL 내 기존 Hive 서비스 정의와 호환됩니다.

![\[Hadoop SQL에 대한 Apache Hive 서비스 정의.\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/images/ranger_service_mgr.png)


위에 표시된 것처럼 Hadoop SQL에 서비스 인스턴스가 없는 경우 새로 생성할 수 있습니다. Hadoop SQL 옆의 **\$1**를 클릭합니다.

1. **서비스 이름(표시된 경우)**: 서비스 이름을 입력합니다. 제안된 값은 **amazonemrhive**입니다. 이 서비스 이름을 기록합니다. 이 이름은 EMR 보안 구성을 생성할 때 필요합니다.

1. **표시 이름**: 서비스에 표시할 이름을 입력합니다. 제안된 값은 **amazonemrhive**입니다.

![\[Hadoop SQL에 대한 Apache Hive 서비스 세부 정보.\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/images/ranger_create_service.png)


Apache Hive 구성 속성은 정책을 생성할 때 자동 완성 기능을 구현하기 위해 HiveServer2를 사용하여 Apache Ranger Admin 서버에 연결하는 데 사용됩니다. 영구 HiveServer2 프로세스가 없고 어떤 정보로든 채울 수 있는 경우 아래 속성은 정확할 필요가 없습니다.
+ **사용자 이름**: HiveServer2 인스턴스의 인스턴스에 대한 JDBC 연결에 사용할 사용자 이름을 입력합니다.
+ **암호**: 위의 사용자 이름에 대한 암호를 입력합니다.
+ **jdbc.driver.ClassName**: Apache Hive 연결을 위한 JDBC 클래스의 클래스 이름을 입력합니다. 기본값을 사용할 수 있습니다.
+ **jdbc.url**: HiveServer2에 연결할 때 사용할 JDBC 연결 문자열을 입력합니다.
+ **인증서의 일반 이름:** 클라이언트 플러그인에서 관리 서버에 연결하는 데 사용되는 인증서 내 CN 필드. 이 값은 플러그인용으로 생성된 TLS 인증서의 CN 필드와 일치해야 합니다.

![\[Apache Hive 서비스 구성 속성.\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/images/ranger_config_props.png)


**연결 테스트** 버튼은 위의 값을 사용하여 HiveServer2 인스턴스에 성공적으로 연결할 수 있는지 테스트합니다. 서비스가 성공적으로 생성되면 Service Manager는 다음과 같이 표시됩니다.

![\[HiveServer2 인스턴스에 연결됨\]](http://docs.aws.amazon.com/ko_kr/emr/latest/ManagementGuide/images/ranger_config_connected.png)


## 고려 사항
<a name="emr-ranger-hive-considerations"></a>

**Hive 메타데이터 서버**

Hive 메타데이터 서버는 무단 액세스로부터 보호하기 위해 신뢰할 수 있는 엔진, 특히 Hive 및 `emr_record_server`를 통해서만 액세스할 수 있습니다. 클러스터의 모든 노드는 Hive 메타데이터 서버에도 액세스할 수 있습니다. 필수 포트 9083은 기본 노드에 대한 액세스 권한을 모든 노드에 제공합니다.

**Authentication**

기본적으로 Apache Hive는 EMR 보안 구성에 구성된 대로 Kerberos를 사용하여 인증하도록 구성됩니다. LDAP를 사용하여 사용자를 인증하도록 HiveServer2를 구성할 수도 있습니다. 자세한 내용은 [Implementing LDAP authentication for Hive on a multi-tenant Amazon EMR cluster](https://aws.amazon.com/blogs/big-data/implementing-ldap-authentication-for-hive-on-a-multi-tenant-amazon-emr-cluster/)를 참조하세요.

## 제한 사항
<a name="emr-ranger-hive-limitations"></a>

Amazon EMR 5.x의 Apache Hive 플러그인에 대한 현재 제한 사항은 다음과 같습니다.
+ Hive 역할은 현재 지원되지 않습니다. 승인, 취소 명령문은 지원되지 않습니다.
+ Hive CLI는 지원되지 않습니다. JDBC 및 Beeline은 Hive를 연결할 수 있는 유일한 승인된 방법입니다.
+ 안전하지 않다고 판단되는 UDF로 `hive.server2.builtin.udf.blacklist` 구성을 채워야 합니다.