Stackのアップグレードに役立つヒントをご紹介します。ニュースパートナー投資家向け情報アワードElasticは検索会社です。これまでの歩みをご紹介します。Serviceをはじめましょう。6.4より、プラチナサブスクリプションでケルベロス認証のサポートが開始されました。ケルベロスは分散システムで安全な認証を実現する成熟したテクノロジーです。ケルベロスは、異なるサービスにわたるシングルサインオンアクセスを提供します。ユーザー名とパスワードを繰り返し入力する必要がありません。本ブログ記事では、Elasticsearchを設定し、HTTPトラフィックでケルベロス認証をサポートする方法をご紹介します。デプロイの概要シンプルなシナリオで考えてみましょう。"Alice"というユーザーがシングルノードのElasticsearchクラスターを使用しているとします。Aliceはすでにdemo.localというケルベロスレルム持っており、ケルベロス認証を使用してElasticsearchクラスターを安全に保ちたいと考えています。ケルベロス認証のサーバーは、レルム内でユーザーを認証したり、ホスト、またはサービスを実行することができます。本記事では、MITケルベロス実装のコマンドを使用します。詳しくはMITケルベロスのドキュメントをご覧ください。このシンプルなシナリオでは、3つのホストマシンが存在します。Server)の役割を果たします。Host-2(es.demo.local):Elasticsearchのシングルノードクラスターがあるホストマシンです。Host-3(client.demo.local):Elasticsearchクライアントがあるホストマシンです。ケルベロス認証が適切に実行されるステップは次の通りです。1.Alice(alice@DEMO.LOCAL)が自身の資格情報を使用してクライアントマシン(client.demo.local)にログオンします。Ticket)をリクエストします。Servicehttps://es.demo.local:9200にアクセスします。Negotiateというヘッダーを含むレスポンスを返します。principalHTTP/es.demo.local@DEMO.LOCALのセッションチケットをリクエストします。principalの名前は、サービスへのアクセスに使用されたURLによって決定されます。Serviceの認証時にこのチケットを提示します。Serviceはケルベロスチケットを検証し、アクセスを付与します(チケットが有効な場合)。ケルベロスレルムを設定するElasticsearchのケルベロスレルムを有効化するには、ケルベロスのインフラストラクチャーを適切に設定する必要があります。ドメインに参加するすべてのマシンの時計を同期させる参加するすべてのマシンに動作するDNSドメイン1つKDCサーバー1台ケルベロスライブラリをインストールしたクライアントノードと、kinit、klistのような設定ファイルケルベロスのインフラストラクチャーを正しく準備したら、さらに次の情報が必要です。このファイルはデフォルトのレルム、KDCサーバー、ドメインレルムマッピングといったケルベロス環境に関する必要な詳細を含みます。Linuxシステム上では、このファイルは一般的に/etcディレクトリに入っています。JVMシステムプロパティjava.security.krb5.confは、この設定ファイルの完全なパスに設定されている必要があります。JVMはこの設定を読み込み、必要な場合に必要な情報を検索するために使用します。keytabは、principalと暗号化キーのペアを格納するファイルです。serviceがクライアントから受け取るチケットを検証するために使用されるkeytabとなります。principalの名前はHTTP/es.demo.local@DEMO.LOCALという形式です。classがHTTPで、es.demo.localがElasticsearchホストの完全修飾ドメイン名、DEMO.LOCALがケルベロスレルムです。このファイルはElasticsearchのconfigディレクトリに入れる必要があります。onlyの許可を設定することにより、ファイルを確実に保護してください。ケルベロスシステム管理者は、ユーザーのサービスにkeytabファイルを提供することができます。このようにして2つのファイルで保護を講じました。これで、Elasticsearchのケルベロスレルムの設定に進むことができます。1.JVMオプションの設定はじめにJVMオプションファイル(jvm.options)を編集して、JVMシステムプロパティをケルベロス設定ファイル用に設定する必要があります。configuration-Djava.security.krb5.conf=/etc/krb5.conf2.Elasticsearchをケルベロス向けに設定する次に、elasticsearch.ymlファイルにケルベロスレルムを追加します。keytabファイル(es.keytab)を指すよう設定できました。詳しくは、ドキュメント「ケルベロスレルムを設定する」をご覧ください。3.Elasticsearchを再起動する設定が完了したら、Elasticsearchノードの再起動が必要です。4.ケルベロスユーザーにロールをマップするケルベロスは認証プロトコルであり、許可の詳細を提供しません。認証用にロールマッピングAPIを使用して、ユーザーにロールをマップすることができます。以下は、kerbrolemappingという名前でロールマッピングを作成し、ユーザーalice@DEMO.LOCALにmonitoring_userロールをアサインしています。}}ロールマッピングについてさらに詳しくは、ドキュメント「ユーザーとグループをロールにマッピングする」をご覧ください。Ticketを取得する必要があります。krbtgt/DEMO.LOCAL@DEMO.LOCAL次にcurlをnegotiateパラメーターで呼び出し、HTTPに対するケルベロス認証を実行できるようにします。keytabとケルベロスの設定ファイルにアクセスした後は、簡単にケルベロスレルムを設定できます。ほんの数行記述すれば、Elasticsearchにケルベロスレルムを設定することができます。ケルベロスのサポートはElasticsearchで開始したばかりです。Stackコンポーネントでもサポートしていく予定です。続報を楽しみにお待ちください。Foundationの商標です。