HiveServer2 での送信中の暗号化 - Amazon EMR

HiveServer2 での送信中の暗号化

Amazon EMR リリース 6.9.0 以降、HiveServer2 (HS2) は HiveServer2 での送信中の暗号化 セキュリティ設定の一部として TLS/SSL が有効になっています。これは、送信中の暗号化が有効になっている Amazon EMR クラスターで実行されている HS2 への接続方法に影響します。HS2 に接続するには、JDBC URL の TRUSTSTORE_PATH および TRUSTSTORE_PASSWORD パラメータ値を変更する必要があります。次の URL は、必須パラメータを含む HS2 の JDBC 接続の例です。

jdbc:hive2://HOST_NAME:10000/default;ssl=true;sslTrustStore=TRUSTSTORE_PATH;trustStorePassword=TRUSTSTORE_PASSWORD

クラスター上またはクラスター外の HiveServer2 暗号化には、以下の適切な手順を使用してください。

On-cluster HS2 access

プライマリノードに SSH 接続した後に Beeline クライアントを使用して HiveServer2 にアクセスしている場合は、/etc/hadoop/conf/ssl-server.xml を参照して、設定 ssl.server.truststore.locationssl.server.truststore.password を使用して TRUSTSTORE_PATH および TRUSTSTORE_PASSWORD のパラメータ値を見つけます。

以下のコマンド例は、これらの設定を取得するのに役立ちます。

TRUSTSTORE_PATH=$(sed -n '/ssl.server.truststore.location/,+2p' /etc/hadoop/conf/ssl-server.xml | awk -F "[><]" '/value/{print $3}') TRUSTSTORE_PASSWORD=$(sed -n '/ssl.server.truststore.password/,+2p' /etc/hadoop/conf/ssl-server.xml | awk -F "[><]" '/value/{print $3}')
Off-cluster HS2 access

Amazon EMR クラスター外のクライアントから HiveServer2 にアクセスしている場合、次のいずれかの方法を使用して TRUSTSTORE_PATHTRUSTSTORE_PASSWORD を取得できます。

  • セキュリティ設定時に作成された PEM ファイルを JKS ファイルに変換し、同じファイルを JDBC 接続 URL で使用します。例えば、openssl と keytool の場合は、次のコマンドを使用します。

    openssl pkcs12 -export -in trustedCertificates.pem -inkey privateKey.pem -out trustedCertificates.p12 -name "certificate" keytool -importkeystore -srckeystore trustedCertificates.p12 -srcstoretype pkcs12 -destkeystore trustedCertificates.jks
  • または、/etc/hadoop/conf/ssl-server.xml を参照して、設定 ssl.server.truststore.locationssl.server.truststore.password を使用して TRUSTSTORE_PATH および TRUSTSTORE_PASSWORD のパラメータ値を見つけます。トラストストアファイルをクライアントマシンにダウンロードし、クライアントマシン上のパスを TRUSTSTORE_PATH として使用します。

    Amazon EMR クラスター外のクライアントからアプリケーションにアクセスする方法の詳細については、「Use the Hive JDBC driver」を参照してください。