Hadoopクラスターのhttps設定実戦
Hadoopは、大規模なクラスター上で実行されるオープンソースの分散コンピューティングフレームワークです。Hadoopクラスターを構成する際には、通信を暗号化するためにHTTPSを使用することができ、セキュリティを向上させることができます。以下に、HadoopクラスターのHTTPS設定の実践的なステップを示します。
- Hadoopクラスターの各ノードで証明書と秘密鍵を生成するためには、OpenSSLツールを使用することができます。まず、OpenSSLツールをインストールし、次のコマンドを使用して秘密鍵と証明書を生成してください。
- openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes を実行します。
- 2048ビットのRSAプライベートキーと自己署名証明書が生成され、有効期間は365日間です。
- Hadoopクラスター内の各ノードに証明書と秘密鍵をコピーします:生成された証明書と秘密鍵ファイル(key.pemとcert.pem)をHadoopクラスター内の各ノードの同じパスにコピーします(たとえば、/etc/hadoop/ssl)。
- Hadoopクラスターの各ノードにSSL設定ファイルを配置してください。例えば、core-site.xmlを編集し、以下の設定を追加してください。
- <プロパティ>
<名前>hadoop.ssl.enabled</名前>
<値>true</値>
</プロパティ>
<プロパティ>
<名前>hadoop.ssl.server.conf</名前>
<値>/etc/hadoop/ssl/hadoop-ssl-server.xml</値>
</プロパティ>
<プロパティ>
<名前>hadoop.ssl.client.conf</名前>
<値>/etc/hadoop/ssl/hadoop-ssl-client.xml</値>
</プロパティ> - HadoopのSSLサーバーの設定ファイルを配置する: Hadoopクラスターの各ノードにて、HadoopのSSLサーバーの設定ファイル(例えば、hadoop-ssl-server.xml)を作成し編集し、以下の設定を追加する。
- <設定>
<プロパティ>
<名前>ssl.server.keystore.location</名前>
<値>/etc/hadoop/ssl/key.pem</値>
</プロパティ>
<プロパティ>
<名前>ssl.server.keystore.password</名前>
<値>keystore_password</値>
</プロパティ>
<プロパティ>
<名前>ssl.server.truststore.location</名前>
<値>/etc/hadoop/ssl/cert.pem</値>
</プロパティ>
<プロパティ>
<名前>ssl.server.truststore.password</名前>
<値>truststore_password</値>
</プロパティ>
</設定> - 鍵ストアのパスワードを秘密鍵のパスワードに、信頼ストアのパスワードを証明書のパスワードに置き換えてください。
- Hadoopクラスターのすべてのノードにおいて、HadoopのSSLクライアント設定ファイル(例:hadoop-ssl-client.xml)を作成して編集し、以下の設定を追加してください。
- <設定>
<プロパティ>
<名前>ssl.client.keystore.location</名前>
<値>/etc/hadoop/ssl/key.pem</値>
</プロパティ>
<プロパティ>
<名前>ssl.client.keystore.password</名前>
<値>keystore_password</値>
</プロパティ>
<プロパティ>
<名前>ssl.client.truststore.location</名前>
<値>/etc/hadoop/ssl/cert.pem</値>
</プロパティ>
<プロパティ>
<名前>ssl.client.truststore.password</名前>
<値>truststore_password</値>
</プロパティ>
</設定> - 鍵ストアのパスワードを秘密鍵のパスワードに、トラストストアのパスワードを証明書のパスワードに置き換えてください。
- HadoopのSSL機能を有効にする:Hadoopクラスターの各ノードに、次の環境変数をHadoopの起動スクリプト(例:hadoop-env.sh)に追加してください。
- HADOOP_OPTS環境変数に、”-Djavax.net.ssl.trustStore=/etc/hadoop/ssl/cert.pem -Djavax.net.ssl.trustStorePassword=truststore_password -Djavax.net.ssl.keyStore=/etc/hadoop/ssl/key.pem -Djavax.net.ssl.keyStorePassword=keystore_password”を追加します。
- 訳:truststore_passwordを証明書のパスワードに置き換え、keystore_passwordを証明書のパスワードに置き換える。