Securityを始めてみよう
editSecurityを始めてみよう
editクラスタを安全にするには、クラスタ内のすべてのノードにX-Packをインストールする必要があります。デフォルトで、基本認証が有効になっています。クラスタと通信するには、ユーザー名とパスワードを指定する必要があります。 匿名アクセスを有効にしていなければ、ユーザー名とパスワードを含んでいないリクエストはすべて拒否されます。
X-Pack securityは、セットアップの開始に使用できるビルトインの`elastic`スーパーユーザーを提供します。`elastic`ユーザーには、すべてのインデックスやデータを含むシステムへの完全なアクセス権があるため、デフォルトのパスワードを必ず変更して、`elastic`ユーザーの資格情報を保護してください。
X-Pack securityを開始するには、次の手順を実行します。
- X-Packをインストールして、ElasticsearchとKibanaを起動します。
-
ビルトインの`kibana`、
logstash_system
、および`elastic`ユーザーのパスワードを変更します。curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/elastic/_password' -H "Content-Type: application/json" -d '{ "password" : "elasticpassword" }' curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/kibana/_password' -H "Content-Type: application/json" -d '{ "password" : "kibanapassword" }' curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/logstash_system/_password' -H "Content-Type: application/json" -d '{ "password" : "logstashpassword" }'
`elastic`ユーザーのデフォルトのパスワードは`changeme`です。
-
ElasticsearchとKibanaへのアクセスを制御するロールとユーザーをセットアップします。 たとえば、`events*`パターンに一致するすべてのインデックスへの完全なアクセス権限を_John Doe_に付与して、Kibanaでそのインデックスのビジュアライゼーションとダッシュボードを作成できるようにするには、`events_admin`ロールを作成して、そのロールを新しい`johndoe`ユーザーに割り当てます。
curl -XPOST -u elastic 'localhost:9200/_xpack/security/role/events_admin' -H "Content-Type: application/json" -d '{ "indices" : [ { "names" : [ "events*" ], "privileges" : [ "all" ] }, { "names" : [ ".kibana*" ], "privileges" : [ "manage", "read", "index" ] } ] }' curl -XPOST -u elastic 'localhost:9200/_xpack/security/user/johndoe' -H "Content-Type: application/json" -d '{ "password" : "userpassword", "full_name" : "John Doe", "email" : "john.doe@anony.mous", "roles" : [ "events_admin" ] }'
-
メッセージ認証を有効にして、メッセージが途中で改ざんされていないか、または破損していないかを検証します。
-
オプションを付けずに、`ES_HOME`から`syskeygen`ツールを実行します。
bin/x-pack/syskeygen
これにより、`CONFIG_DIR/x-pack/system_key`内にシステムキーが作成されます。
-
クラスタ内のその他のノードに生成されたシステムキーをコピーします。
システムキーは対称キーのため、同じキーがクラスタ内の各ノードに存在しなければなりません。
-
-
監査を有効にして、試行されて成功したElasticsearchクラスタとのやり取りを追跡します。
-
クラスタ内にあるすべてのノードの`elasticsearch.yml`に次の設定を追加します。
xpack.security.audit.enabled: true
- Elasticsearchを再起動します。
デフォルトでは、イベントは`ES_HOME/logs`内にある専用の`elasticsearch-access.log`ファイルに記録されます。分析を容易にするためにイベントをElasticsearchインデックスに格納したり、ログ記録されるイベントを管理したりすることもできます。詳細については、監査の設定を参照してください。
-
これらの基本的なセキュリティ対策を実施した後、SSL/TLS暗号化を使用するようにクラスタを設定して、ノードとの通信を安全にすることを強くお勧めします。 暗号化が有効になっていないノードはパスワードをプレーンテキストで送信します。
セキュリティ要件によっては、以下も必要になる場合があります。
- LDAPやActive Directoryと統合するか、または認証に証明書を要求します。
- IPフィルタリングを使用して、特定のIPアドレスまたはアドレス範囲からのリクエストを許可または拒否します。