Solrのセキュリティ保護
管理UIを含むSolr APIは、信頼できない関係者に公開されるようには設計されていません。信頼できるコンピューターと人だけがアクセスを許可されるようにファイアウォールを調整してください。このため、プロジェクトでは、例えば、管理UIのXSSの問題をセキュリティ脆弱性とは見なしません。ただし、このような問題をJIRAで報告していただくようにお願いします。 |
Solrをセキュリティ保護する方法を計画する際には、利用可能な機能やアプローチのうち、どれが自分に最適かを検討する必要があります。
TLS(SSL)証明書による暗号化
Solrとの間、およびSolrノード間のトラフィックを暗号化することで、ネットワーク上で機密データが漏洩するのを防ぎます。TLSは、認証を使用する際にクレデンシャルスニッフィングを防ぐための要件でもあります。
詳細については、「SSLの有効化」のセクションを参照してください。
認証と承認
監査ログ
監査ログは、管理APIへのアクセスを拒否されたユーザーなど、クラスタへの着信リクエストの監査証跡を記録します。監査ログの詳細、および監査ロガープラグインの実装方法については、「監査ログ」のセクションを参照してください。
IPアクセス制御
環境変数またはsolr.in.sh
/solr.in.cmd
でSOLR_IP_ALLOWLIST
/SOLR_IP_DENYLIST
を設定することにより、特定のホストへのネットワークアクセスを制限します。
# Allow IPv4/IPv6 localhost, the 192.168.0.x IPv4 network, and 2000:123:4:5:: IPv6 network.
SOLR_IP_ALLOWLIST="127.0.0.1, [::1], 192.168.0.0/24, [2000:123:4:5::]/64"
# Explicitly deny access to two problematic hosts.
SOLR_IP_DENYLIST="192.168.0.3, 192.168.0.4"
ZooKeeperトラフィックの保護
ZooKeeperはSolrCloudクラスタの中核となる重要な部分であり、そのコンテンツを保護する方法については、「ZooKeeperアクセス制御」のセクションで説明します。
ネットワーク構成
管理者は、本番環境への移行における重要なステップとして、セキュリティ設定を慎重に検討する必要があります。Solrは、ユーザーのセキュリティニーズを満たすために、すぐに使用できる多くの機能を提供します。認証と承認は、さまざまなセキュリティプラグインを使用して設定でき、プライバシーはSSL/TLSを有効にすることで強化でき、(SolrCloudでは)ZooKeeperデータは、不正な読み取りと書き込みを防ぐためにACLルールで保護できます。
これらの対策や他の対策を講じた場合でも、Solrは常にファイアウォールで保護することを強くお勧めします。Solrは、オープンなインターネットに公開されるようには設計されていません。
Solrは、厳密に必要なネットワークインターフェースのみをリッスンするように強く推奨されます。管理者が意図せずにSolrを広範囲に公開することを防ぐため、Solrはデフォルトでループバックインターフェース("127.0.0.1")のみをリッスンします。ほとんどのデプロイメントでは、他のボックスから到達できるように、この値を制限の少ないものに変更する必要があります。これは、環境の「includeスクリプト」(solr.in.sh
またはsolr.in.cmd
)でSOLR_JETTY_HOST
値を設定することで実行できます。
----
SOLR_JETTY_HOST="0.0.0.0"
----
同じ設定は、-Dsolr.jetty.host
システムプロパティとしても利用可能です。
Solrとともに実行される場合、組み込みZookeeperについても同様です。デフォルトでは、組み込みZookeeperはループバックインターフェース("127.0.0.1")のみをリッスンします。バインドホストは、環境の「includeスクリプト」(solr.in.sh
またはsolr.in.cmd
)のSOLR_ZK_EMBEDDED_HOST
値を介して制御されます。
----
SOLR_ZK_EMBEDDED_HOST="0.0.0.0"
----
同じ設定は、-Dsolr.zk.embedded.host
システムプロパティとしても利用可能です。