mongos
項目一覧
Synopsis
シャーディングされたクラスターの場合、mongos
インスタンスはクライアントアプリケーションとシャーディングされたクラスターとの間のインターフェースとなります。mongos
インスタンスはクエリと書き込み操作をシャードにルーティングします。アプリケーションの観点から見ると、 mongos
インスタンスは他の MongoDB インスタンスと同じように動作します。
Considerations
mongos
バイナリの名前は絶対に変更しないでください。mongos
レイテンシを最小限に抑えるためにヘッジされた読み取りをサポートします。MongoDB は、TLS 1.1 + が利用可能なシステムで TLS 1.0暗号化のサポートを無効にします。
機能の互換性バージョン(FCV)が
mongos
よりも大きいmongod
インスタンスに接続しようとすると、mongos
バイナリはクラッシュします。 たとえば、MongoDB 5は接続できません。 0 バージョンmongos
から6へ。 0 FCV が6に設定されているシャーディングされたクラスターには接続できます。 0 。 ただし、MongoDB 5を接続することはできます。 0 バージョンmongos
から6へのアップグレード0 FCV が5に設定されたシャーディングされたクラスターには接続できます。 0 。mongod
は、デプロイに関するトラブルシューティングを行う MongoDB エンジニアを支援するために、フルタイム診断データ取得メカニズムを備えています。このスレッドが失敗すると、元のプロセスが終了します。特に一般的な障害を回避するには、プロセスを実行しているユーザーに FTDCdiagnostic.data
ディレクトリを作成する権限があることを確認します。mongod
の場合、このディレクトリはstorage.dbPath
内にあります。mongos
の場合は、systemLog.path
と同じ階層にあります。
オプション
注意
MongoDB は SSL オプションを非推奨にし、代わりに対応する新しい TLS オプションを追加します。
MongoDBは
--tlsClusterCAFile
/net.tls.clusterCAFile
を追加します。
注意
MongoDB 5.0 では、
--serviceExecutor
コマンドライン オプションと対応するnet.serviceExecutor
構成オプションが削除されます。
中心的オプション
--config <filename>, -f <filename>
ランタイム設定オプション用の構成ファイルを指定します。 構成ファイルは、
mongos
のランタイム構成に推奨される方法です。 オプションは、コマンドラインの設定オプションと同じです。 詳細については、 自己管理型構成ファイルのオプションを参照してください。構成ファイルでは ASCII エンコードを使用するようにしてください。
mongos
インスタンスでは、UTF-8 など、非 ASCII エンコードの構成ファイルをサポートしていません。
--configExpand <none|rest|exec>
デフォルト: なし
構成ファイルで展開ディレクティブを使用できるようにします。展開ディレクティブを使用すると、構成ファイル オプションに外部ソースの値を設定できます。
--configExpand
では、次の展開ディレクティブをサポートします。値説明none
デフォルト。mongos
は展開ディレクティブを展開しません。構成ファイルの設定で展開ディレクティブが使用されている場合、mongos
は起動に失敗します。rest
mongos
は、構成ファイルを解析するときに__rest
展開ディレクティブを展開します。exec
mongos
は、構成ファイルを解析するときに__exec
展開ディレクティブを展開します。複数の展開ディレクティブをカンマ区切りのリスト(例:
rest, exec
)として指定できます。 構成ファイルに--configExpand
に指定されていない展開ディレクティブが含まれている場合、mongos
はエラーを返し、終了します。展開ディレクティブの詳細については、構成ファイル用「自己管理型配置の外部ソースの構成ファイルの値」を参照してください。
--quiet
出力量を制限する quiet モードで
mongos
を実行します。このオプションにより次の項目が抑制されます。
データベース コマンドからの出力
レプリケーション アクティビティ
接続を受け付けたイベント
接続を終了したイベント
--port <port>
デフォルト: 27017
mongos
インスタンスがクライアント接続をリッスンする TCP ポートです。バージョン 6.0.12 での変更:
--port
オプションは、0
から65535
までの範囲の値を受け入れます。 ポートを0
に設定すると、mongos
はオペレーティング システムによって割り当てられた任意のポートを使用するように構成されます。
--bind_ip <hostnames|ipaddresses|Unix domain socket paths>
デフォルト: localhost
mongos
がクライアント接続を待ち受けるホスト名、IP アドレス、Unix ドメイン ソケットの完全なパスのすべてまたはいずれか。mongos
はどのインターフェースにも接続できます。複数のアドレスにバインドするには、値をカンマで区切ったリストを入力します。例
localhost,/tmp/mongod.sock
IPv4 アドレスと IPv6 アドレスの両方、 IPv4 アドレスまたは IPv6 アドレスのいずれかに解決するホスト名が指定できます。
例
localhost, 2001:0DB8:e132:ba26:0d5c:2774:e7f9:d513
注意
link-local IPv6 アドレス
fe80::/10
を指定する場合 ( )は、 ゾーン インデックス を追加する必要があります そのアドレス(つまりfe80::<address>%<adapter-name>
)。例
localhost,fe80::a00:27ff:fee0:1fcf%enp0s3
重要
IP アドレスの変更による構成の更新を防ぐには、IP アドレスの代わりに DNS ホスト名を使用します。レプリカセット ノードまたはシャーディングされたクラスター ノードを設定するときは、IP アドレスではなく DNS ホスト名を使用することが特に重要です。
分裂されたネットワーク ホライズン全体でクラスターを構成するには、IP アドレスの代わりにホスト名を使用します。 MongoDB 5.0以降、IP アドレスのみが設定されているノードは起動時の検証に失敗し、起動しません。
警告
非ローカルホスト(例: (一般にアクセス可能な)IP アドレスを使用して、クラスターを不正アクセスから保護していることを確認します。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。
IP バインディングの詳細については、「自己管理型配置の IP バインディング」ドキュメントを参照してください。
すべての IPv4 アドレスにバインドするには、「
0.0.0.0
」と入力します。すべての IPv 4と IPv 6アドレスにバインドするには、
::,0.0.0.0
またはアスタリスク"*"
を入力します(ファイル名パターン展開を避けるためには、アスタリスクを引用符で囲みます)。 または、net.bindIpAll
設定を使用します。注意
--bind_ip
と--bind_ip_all
は相互に排他的です。両方のオプションを指定すると、mongos
はエラーをスローして終了します。コマンドライン オプション
--bind
では、構成ファイルの設定net.bindIp
が上書きされます。
--bind_ip_all
指定されている場合、
mongos
インスタンスはすべての IPv 4アドレス(つまり0.0.0.0
)。mongos
が--ipv6
で開始する場合、--bind_ip_all
はすべての IPv 6アドレス(つまり::
)。mongos
では、--ipv6
で開始された場合のみ IPv 6がサポートされます。--bind_ip_all
のみを指定しても、IPv 6のサポートは有効になりません。警告
非ローカルホスト(例: (一般にアクセス可能な)IP アドレスを使用して、クラスターを不正アクセスから保護していることを確認します。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。
IP バインディングの詳細については、「自己管理型配置の IP バインディング」ドキュメントを参照してください。
あるいは、
--bind_ip
オプションを::,0.0.0.0
またはアスタリスク"*"
に設定することもできます(ファイル名パターン展開を避けるために、アスタリスクは引用符で囲みます)。注意
--bind_ip
と--bind_ip_all
は相互に排他的です。つまり、どちらか一方を指定できますが、両方を指定することはできません。
--listenBacklog <number>
デフォルト: ターゲット システム
SOMAXCONN
定数listen キューに存在できる接続の最大数です。
警告
このパラメーターを使用する前に、制限事項と構成要件を理解するためにローカル システムのドキュメントを確認してください。
重要
未定義の動作を防ぐには、このパラメーターに
1
とローカルシステムのSOMAXCONN
定数の間の値を指定します。listenBacklog
パラメーターのデフォルト値は、コンパイル時にターゲット システムのSOMAXCONN
定数に設定されます。SOMAXCONN
は、listen システム コールの backlog パラメーターに記載されている有効な最大値です。SOMAXCONN
を記号的に解釈するシステムもあれば、数値的に解釈するシステムもあります。実際に適用されるlisten バックログは、SOMAXCONN
定数または--listenBacklog
への引数の数値的解釈とは異なる場合があります。また、Linux のnet.core.somaxconn
などのシステム設定によって制約される場合もあります。listenBacklog
パラメーターにローカルシステムのSOMAXCONN
定数を超える値を渡すと、標準では未定義の動作になります。値が大きいと、自動的に整数に切り捨てられる、無視される、予期しないリソースが消費されるなどの悪影響が生じる可能性があります。接続スパイクが発生するワークロードを含むシステムでは、ローカル システムが backlog パラメーターに
SOMAXCONN
定数よりも高い値を指定できることが経験的にわかっています。listenBacklog
パラメーターを高い値に設定すると、強制的にバックオフ状態になる接続の数が減るため、クライアントが確認する操作のレイテンシが短くなる可能性があります。
--maxConns <number>
mongos
が受け入れる同時接続の最大数です。この設定は、オペレーティング システムで設定されている最大接続追跡しきい値よりも高い場合は効果がありません。このオプションに、あまりにも低い値は割り当てないでください。通常のアプリケーション操作中にエラーが発生する可能性があります。
これは、クライアントで接続を複数作成して、それらを閉じるのではなくタイムアウトさせる場合、
mongos
にとって特に有用です。この場合、
maxIncomingConnections
に、クライアントが作成する接続の最大数、または接続プールの最大サイズよりわずかに大きな値を設定します。この設定により、
mongos
が個々のシャードで接続スパイクが発生するのを防ぎます。 このようなスパイクが発生すると、 シャーディングされたクラスター の操作とメモリ割り当てが中断されることがあります。
--logpath <path>
すべての診断ログ情報を、標準出力やホストの syslog システムではなく、ログファイルに送信します。MongoDB は指定したパスにログファイルを作成します。
デフォルトでは、MongoDB は既存のログファイルを上書きせず、移動します。 ログファイルに追加するには、
--logappend
オプションを設定します。
--syslog
すべてのログ出力を標準出力やログファイル(
--logpath
)ではなく、ホストの syslog システムに送信します。--syslog
オプションは Windows ではサポートされていません。警告
syslog
デーモンは、MongoDB によりメッセージが発行されたときではなく、メッセージがログに記録されたときにタイムスタンプを生成します。 そのため、特にシステムの負荷が高い場合に、ログ エントリのタイムスタンプに誤りが生じる可能性があります。 タイムスタンプが正確になるように、実稼働システムでは--logpath
オプションを使用することをお勧めします。MongoDB は、
syslog
へのログ メッセージにコンポーネントを含めます。... ACCESS [repl writer worker 5] Unsupported modification to roles collection ...
--syslogFacility <string>
デフォルト: user
メッセージを syslog に記録するときに使用するファシリティ レベルを指定します。 指定する値は、使用しているオペレーティング システムの syslog の実装でサポートされている必要があります。 このオプションを使用するには、
--syslog
オプションを有効にする必要があります。
--logappend
mongos
インスタンスの再起動時に、既存のログファイルの末尾に新しいエントリが追加されます。このオプションを指定しない場合、mongod
は既存のログをバックアップして新しいファイルを作成します。
--logRotate <string>
デフォルト: rename
サーバー ログや監査ログをローテーションするときの
logRotate
コマンドの動作を決定します。rename
またはreopen
を指定します。rename
は、ログファイルの名前を変更します。reopen
は、一般的な Linux/Unix ログのローテーション動作に従って、ログファイルを閉じてから再度開きます。Linux/Unix logrotate ユーティリティを使用する場合は、ログの損失を防ぐためにreopen
を使用してください。reopen
を指定する場合は、--logappend
も使用する必要があります。
--redactClientLogData
MongoDB Enterprise でのみ使用できます。
--redactClientLogData
で実行されているmongos
は、ログに記録される前に特定のログ イベントに付随するすべてのメッセージをリダクションします。 これにより、データベースに保存されている機密性が高い可能性のあるデータをmongos
が診断ログに書き込むことを防止します。 エラー コードや操作 コード、行番号、ソース ファイル名などのメタデータは、引き続きログに表示されます。規制要件へのコンプライアンスの補助に、
--redactClientLogData
を保管時の暗号化および TLS/SSL(トランスポート暗号化)と組み合わせて使用します。たとえば、MongoDB の配置では、個人を特定できる情報(PII)が 1 つ以上のコレクションに保存される場合があります。
mongos
は、CRUD 操作やシャーディングメタデータなどに関連するイベントをログに記録します。mongos
は、これらのログ操作の一環として PII を公開する可能性があります。--redactClientLogData
とともに実行されているmongos
は、ログに出力される前にこれらのイベントに付随するメッセージをすべて除き、効果的に PII を排除します。ログ イベントに関連するデータが不足しているため、
--redactClientLogData
で実行されているmongos
の診断はより困難になる可能性があります。 がログ出力に与える影響の例については、--redactClientLogData
プロセス ログ のマニュアル ページを参照してください。実行中の
mongos
でこの設定を構成するには、setParameter
をredactClientLogData
パラメーターとともに使用します。
--timeStampFormat <string>
Default: iso8601-local
ログ メッセージのタイムスタンプの時間形式。次のいずれかの値を指定。
値説明iso8601-utc
ISO-8601 形式のUTC(Coordinated Universal Time、協定世界時)でタイムスタンプを表示します。たとえば、UNIXエポック開始時のニューヨークの場合、以下のようになります。1970-01-01T00:00:00.000Z
iso8601-local
タイムスタンプを ISO-8601 形式のローカルタイムで表示します。たとえば、UNIXエポック開始時のニューヨークの場合、以下のようになります。1969-12-31T19:00:00.000-05:00
注意
--timeStampFormat
でのctime
のサポートは終了しました。ctime
形式の日付の例は、Wed Dec 31 18:17:54.811
です。
--pidfilepath <path>
mongos
プロセスのプロセス ID(PID)を保存するファイルの場所を指定します。mongod
またはmongos
プロセスを実行しているユーザーは、このパスに書込む (write) ことができる必要があります。--pidfilepath
オプションが指定されていない場合、 プロセスは PID ファイルを作成しません。 このオプションは通常、--fork
オプションと組み合わせて使用した場合にのみ役立ちます。注意
Linux
Linux では、PID ファイルの管理は通常、ディストリビューションの初期化システムによって行われます。通常、
/etc/init.d
ディレクトリ内のサービス ファイル、またはsystemctl
に登録された systemd ユニット ファイルが使用されます。 これらの初期化システムのいずれも使用していない場合にのみ、--pidfilepath
オプションを使用してください。 詳細については、ご利用中のオペレーティング システム用のインストール ガイドを参照してください。注意
MacOS
macOS では、PID ファイル管理は通常
brew
によって処理されます。 macOS システムでbrew
を使用していない場合にのみ、--pidfilepath
オプションを使用してください。 詳細については、ご利用中のオペレーティング システム用のインストール ガイドを参照してください。
--keyFile <file>
MongoDB インスタンスが シャーディングされたクラスターまたはレプリカセット内で相互に認証を行うために使用する、共有シークレットを保存する鍵ファイルへのパスを指定します。
--keyFile
はclient authorization
を意味します。詳細については、「自己管理型内部認証とメンバーシップ認証」を参照してください。内部メンバーシップ認証用のキーファイルでは、キーファイル内に複数のキーを含めるために YAML 形式が使用されます。YAML 形式は次のいずれかを受け入れます。
1 つのキー文字列(以前のバージョンと同じ)
キー文字列のシーケンス
YAML 形式は、テキストファイル形式を使用する既存の単一のキー キーファイルと互換性があります。
--setParameter <options>
「 自己管理型配置の MongoDB Server パラメーター 」で説明されている MongoDB パラメーターの 1 つを指定します。 複数の
setParameter
フィールドを指定できます。
--noscripting
スクリプト エンジンを無効にします。無効にすると、
$where
クエリ演算子、mapReduce
コマンド、$accumulator
、$function
など、JavaScript コードをサーバーサイドで実行する操作は使用できません。このような操作をしない場合は、サーバー側のスクリプトを無効にします。
--nounixsocket
UNIX ドメイン ソケットでのリスニングを無効にします。
--nounixsocket
は Unix ベースのシステムにのみ適用されます。次のいずれかが当てはまらない限り、
mongos
プロセスは常に UNIX ソケットを listen します。--nounixsocket
が設定されているnet.bindIp
が設定されていないnet.bindIp
がlocalhost
またはそれに関連付けられた IP アドレスを指定していない
mongos
(公式の.deb と .rpm パッケージからインストールされたもの)では、bind_ip
構成がデフォルトで127.0.0.1
に設定されています。
--unixSocketPrefix <path>
デフォルト: /tmp
UNIX ソケットのパス。
--unixSocketPrefix
は Unix ベースのシステムにのみ適用されます。このオプションに値がない場合、
mongos
プロセスは/tmp
をプレフィックスとするソケットを作成します。MongoDB は、次のいずれかが当てはまらない限り、UNIX ソケットを作成して listen します。net.unixDomainSocket.enabled
とはfalse
--nounixsocket
が設定されているnet.bindIp
が設定されていないnet.bindIp
がlocalhost
またはそれに関連付けられた IP アドレスを指定していない
--filePermissions <path>
デフォルト:
0700
UNIX ドメイン ソケット ファイルのパーミッションを設定します。
--filePermissions
は Unix ベースのシステムにのみ適用されます。
--fork
mongos
プロセスをバックグラウンドで実行するデーモン モードを有効にします。--fork
オプションは Windows ではサポートされていません。デフォルトでは、
mongos
はデーモンとして実行されません。--fork
または、upstart
やsystemd
など、デーモン化を取り扱う制御プロセスを使用して、mongos
をデーモンとして実行します。--fork
オプションを使用するには、次のいずれかでmongos
のログ出力を構成する必要があります。
--transitionToAuth
mongos
が配置内の他のmongod
とmongos
インスタンスとの間で認証済みの接続と非認証の接続を受け入れ、作成できるようにします。レプリカセットまたはシャーディングされたクラスターの認証なし構成から内部認証へのローリング移行を実行するために使用されます。--keyFile
などの内部認証メカニズムを指定する必要があります。例えとして、キーファイルを内部認証 に使用する場合、
mongos
は一致するキーファイルを使用して、配置内の任意のmongod
またはmongos
との認証済み接続を作成します。セキュリティ メカニズムが一致しない場合、mongos
は代わりに認証されていない接続を利用します。--transitionToAuth
で実行されているmongos
では、ユーザー アクセス制御は強制されません。 ユーザーは、アクセス制御チェックなしで配置に接続し、読み取り操作、書込み操作、および管理操作を実行できます。注意
--transitionToAuth
を使用せずに内部認証で動作するmongos
では、 クライアントによる接続にユーザー アクセス制御を使用する必要があります。--transitionToAuth
なしでmongos
を再起動する前に、適切なユーザーを使用してmongos
に接続するよう、クライアントを更新します。
--networkMessageCompressors <string>
Default: snappy,zstd,zlib
この
mongos
インスタンスと以下の間の通信に使用するデフォルトのコンプレッサーを指定します。シャーディングされたクラスターの他のノード
OP_COMPRESSED
メッセージ形式をサポートするドライバー
MongoDB では、以下のコンプレッサーをサポートしています。
mongod
インスタンスとmongos
インスタンスはどちらもデフォルトでsnappy,zstd,zlib
コンプレッサーに設定され、順序は同じです。ネットワーク圧縮を無効にするには、値を
disabled
に設定します。重要
両者がネットワーク圧縮を有効にしている場合、メッセージは圧縮されます。そうでなければ、この両者間のメッセージは非圧縮となります。
複数のコンプレッサーを指定する場合、通信イニシエーターだけでなく、コンプレッサーをリストする順序も重要になります。たとえば、
mongosh
が次のネットワーク コンプレッサーzlib,snappy
を指定し、mongod
がsnappy,zlib
を指定する場合、mongosh
とmongod
の間のメッセージはzlib
を使用します。両者に共通のコンプレッサーが 1 つもなければ、両者間のメッセージは圧縮されません。例えば、
mongosh
ではネットワーク コンプレッサーとしてzlib
が指定され、mongod
ではsnappy
が指定されている場合、mongosh
とmongod
の間のメッセージは圧縮されません。
--timeZoneInfo <path>
タイムゾーン データベースをロードするフルパス。 このオプションが指定されていない場合、MongoDB は組み込みのタイムゾーンデータベースを使用します。
Linux パッケージと macOS パッケージに含まれる構成ファイルでは、タイムゾーン データベース パスがデフォルトで
/usr/share/zoneinfo
に設定されています。組み込みのタイム ゾーン データベースは、 Olson および IANA のタイムゾーンデータベースのコピーです。タイム ゾーン データベースは MongoDB のリリース時にアップデートされますが、タイム ゾーン データベースと MongoDB のリリース サイクルは異なります。タイム ゾーン データベースの最新リリースは、当社の ダウンロードサイト から入手できます。
wget https://downloads.mongodb.org/olson_tz_db/timezonedb-latest.zip unzip timezonedb-latest.zip mongos --timeZoneInfo timezonedb-2017b/ 警告
MongoDB はサードパーティの timelib を使用します ライブラリ。タイムゾーン間の正確な変換を提供します。最近の更新により、
timelib
は MongoDB の古いバージョンで不正確なタイムゾーン変換を作成する可能性があります。5.0 より前のバージョンの MongoDB でタイムゾーン データベースに明示的にリンクするには、タイムゾーン データベース をダウンロードし、
timeZoneInfo
パラメーターを使用します。
--outputConfig
YAML 形式の
mongos
インスタンスの構成オプションをstdout
に出力し、mongos
インスタンスを終了します。 自己管理型配置に外部ソースの構成ファイルの値 を使用する構成オプションの場合、--outputConfig
はそれらのオプションの解決値を返します。警告
これには、以前に外部ソースを通して難読化された、設定されたパスワードや秘密が含まれ場合があります。
使用例については、以下を参照してください。
シャーディングされたクラスターのオプション
--configdb <replicasetName>/<config1>,<config2>...
シャーディングされたクラスターの構成サーバーを指定します。
シャーディングされたクラスターのコンフィギュレーションサーバーはレプリカセットとして配置されます。レプリカセット コンフィギュレーションサーバーでは、WiredTiger ストレージエンジンを実行する必要があります。
コンフィギュレーションサーバー レプリカセット名と、コンフィギュレーションサーバー レプリカセットの少なくとも 1 つのノードのホスト名とポートを指定します。
sharding: configDB: <configReplSetName>/cfg1.example.net:27019, cfg2.example.net:27019,... シャーディングされたクラスターの
mongos
インスタンスは、同じコンフィギュレーションサーバー レプリカセット名を指定する必要がありますが、レプリカセットの異なるノードのホスト名とポートを指定できます。
--localThreshold
デフォルト: 15
mongos
がクライアントからの読み取り操作を渡すセカンダリ レプリカセット ノードを決定するために使用する ping 時間(ミリ秒)を指定します。デフォルト値の15
は、すべてのクライアントドライバーのデフォルト値に対応します。mongos
は、セカンダリ ノードへの読み取りを許可するリクエストを受信すると、次のようになります。ping 時間が最も短いセットのノードを検索します。
レプリカセット ノードのリストを作成します。これはセットの最も近い適切なノードから、ping 時間 15 ミリ秒以内です。
--localThreshold
オプションに値を指定すると、mongos
は、この値で許容されるレイテンシ内のレプリカメンバーのリストを構築します。このリストからランダムに読み取るノードを選択します。
--localThreshold
設定によって比較されるノードの ping 時間は、最大 10 秒間隔で計算した直近の ping 時間の移動平均です。その結果、mongos
が平均を再計算するまでに、一部のクエリは閾値を超えるノードに到達する可能性があります。詳細については、 読み込み設定 (read preference) ドキュメントの「レプリカセットの読み込み設定」セクションを参照してください。
TLS のオプション
--tlsMode <mode>
すべてのネットワーク接続に使用される TLS を有効にします。
--tlsMode
オプションの引数には、以下のいずれかを指定できます。値説明disabled
サーバーは TLS を使用しません。allowTLS
サーバー間の接続では TLS は使用されません。着信接続の場合、サーバーでは TLS と非 TLS のいずれも受け付けます。preferTLS
サーバー間の接続では TLS が使用されます。着信接続の場合、サーバーでは TLS と非 TLS のいずれも受け付けます。requireTLS
サーバーは TLS 暗号化接続のみを使用し、受け入れます。--tlsCAFile
またはtls.CAFile
が指定されておらず、x.509 認証を使用していない場合は、tlsUseSystemCA
パラメータをtrue
に設定する必要があります。 これにより、MongoDB は TLS 対応サーバーに接続するときにシステム全体の CA 証明書ストアを使用するようになります。x.509 認証を使用する場合、
--tlsCertificateSelector
を使用しない限り、--tlsCAFile
またはtls.CAFile
を指定する必要があります。TLS と MongoDB の詳細については、「
mongod
とmongos
のTLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsCertificateKeyFile <filename>
注意
macOS または Windows では、PEM ファイルを指定する代わりにオペレーティング システムのセキュア ストアからの証明書を使用できます。「
--tlsCertificateSelector
」を参照してください。TLS 証明書とキーの両方を含む
.pem
ファイルを指定します。Linux および BSD では、TLS が有効になっている場合、
--tlsCertificateKeyFile
を指定する必要があります。Windows または macOS では、TLS が有効になっている場合、
--tlsCertificateKeyFile
または--tlsCertificateSelector
のいずれかを指定する必要があります。
TLS と MongoDB の詳細については、「
mongod
とmongos
のTLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsCertificateKeyFilePassword <value>
証明書鍵ファイル(
--tlsCertificateKeyFile
)を復号化するためのパスワードを指定します。--tlsCertificateKeyFilePassword
オプションは、証明書鍵ファイルが暗号化されている場合にのみ使用します。いずれの場合も、mongos
はすべてのログおよびレポート出力からパスワードを削除します。Linux/BSD で
--tlsCertificateKeyFilePassword
オプションを指定しない場合、PEM ファイル内の秘密キーが暗号化されていると、MongoDB はパスフレーズの入力を要求します。 「TLS/SSL 証明書のパスフレーズ」を参照してください。macOS または Windows で PEM ファイル内の秘密キーが暗号化されている場合は、
--tlsCertificateKeyFilePassword
オプションを明示的に指定する必要があります。 あるいは、PEM ファイルの代わりに、セキュア システム ストア(--tlsCertificateSelector
を参照)から証明書を取得して使用するか、暗号化されていない PEM ファイルを使用することもできます。
TLS と MongoDB の詳細については、「
mongod
とmongos
のTLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--clusterAuthMode <option>
デフォルト: keyFile
クラスター認証に使用される認証モードです。内部 x.509 認証を使用する場合は、ここで指定します。このオプションには、次のいずれかの値を指定できます。
値説明keyFile
認証にはキーファイルを使用します。キーファイルのみを受け付けます。sendKeyFile
ローリングアップグレードを目的としたものです。認証のためにキーファイルを送信しますが、キーファイルと x.509 証明書の両方を受け入れることができます。sendX509
ローリングアップグレードを目的としたものです。認証のために x.509 証明書を送信しますが、 x.509 証明書とキーファイルの両方を受け入れることができます。x509
推奨。認証のために x.509 証明書を送信し、x.509 証明書のみを受け入れます。--tlsCAFile
またはtls.CAFile
が指定されておらず、x.509 認証を使用していない場合は、tlsUseSystemCA
パラメータをtrue
に設定する必要があります。 これにより、MongoDB は TLS 対応サーバーに接続するときにシステム全体の CA 証明書ストアを使用するようになります。x.509 認証を使用する場合、
--tlsCertificateSelector
を使用しない限り、--tlsCAFile
またはtls.CAFile
を指定する必要があります。TLS と MongoDB の詳細については、「
mongod
とmongos
のTLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsClusterFile <filename>
注意
macOS または Windows では、PEM ファイルの代わりにオペレーティング システムのセキュア ストアからの証明書を使用できます。
--tlsClusterCertificateSelector
を参照してください。クラスターまたはレプリカ セットのメンバーシップ認証用の x.509 証明書キー ファイルを含む
.pem
ファイルを指定します。--tlsClusterFile
が内部クラスター認証用の.pem
ファイルまたは代替の--tlsClusterCertificateSelector
を指定しない場合、クラスターは--tlsCertificateKeyFile
オプションで指定された.pem
ファイルまたは--tlsCertificateSelector
によって返された証明書を使用します。x.509 認証を使用する場合、
--tlsCertificateSelector
を使用しない限り、--tlsCAFile
またはtls.CAFile
を指定する必要があります。mongod
またはmongos
は、提示された x.509 証明書がmongod/mongos
のホスト システム時間から30
日以内に期限切れになる場合、接続時に警告を記録します。TLS と MongoDB の詳細については、「
mongod
とmongos
のTLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsClusterPassword <value>
--tlsClusterFile
で指定された x.509 証明書キー ファイルを復号化するためのパスワードを指定します。証明書キー ファイルが暗号化されている場合にのみ、--tlsClusterPassword
オプションを使用します。いずれの場合も、mongos
はすべてのログおよびレポート出力からパスワードを削除します。Linux/BSD で
--tlsClusterPassword
オプションを指定しない場合、x.509 ファイル内の秘密キーが暗号化されていると、MongoDB はパスフレーズの入力を要求します。「TLS/SSL 証明書のパスフレーズ」を参照してください。macOS または Windows で x.509 ファイル内の秘密キーが暗号化されている場合は、
--tlsClusterPassword
オプションを明示的に指定する必要があります。あるいは、クラスター PEM ファイルの代わりに、セキュア システム ストア(--tlsClusterCertificateSelector
を参照)から証明書を取得して使用するか、暗号化されていない PEM ファイルを使用することもできます。
TLS と MongoDB の詳細については、「
mongod
とmongos
のTLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsCAFile <filename>
証明書認証機関からのルート証明書チェーンを含む
.pem
ファイルを指定します。相対パスまたは絶対パスを使用して.pem
ファイルのファイル名を指定します。macOS または Windows では、PEM キー ファイルの代わりにオペレーティング システムのセキュア ストアからの証明書を使用できます。 詳しくは
--tlsCertificateSelector
を参照してください。 セキュア ストアを使用する場合は、--tlsCAFile
を指定する必要はありませんが、指定することもできます。TLS と MongoDB の詳細については、「
mongod
とmongos
のTLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsClusterCAFile <filename>
接続を確立するクライアントによって提示された証明書を検証するために使用される証明機関からのルート証明書チェーンを含む
.pem
ファイルを指定します。相対パスまたは絶対パスを使用して、.pem
ファイルのファイル名を指定します。--tlsClusterCAFile
で、接続を確立するクライアントからの証明書を検証するための.pem
ファイルが指定されない場合、クラスターでは--tlsCAFile
オプションで指定された.pem
ファイルが使用されます。--tlsClusterCAFile
クライアントからサーバー、サーバーからクライアントへのTLS ハンドシェイクの各部分を検証するために、異なる認証局を使用することができます。macOS または Windows では、PEM キー ファイルの代わりにオペレーティング システムのセキュア ストアからの証明書を使用できます。 詳しくは
--tlsClusterCertificateSelector
を参照してください。 セキュア ストアを使用する場合は、--tlsClusterCAFile
を指定する必要はありませんが、指定することもできます。--tlsCAFile
が設定されている必要があります。TLS と MongoDB の詳細については、「
mongod
とmongos
のTLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsCertificateSelector <parameter>=<value>
注意
--tlsCertificateKeyFile
の代替として、Windows および macOS で利用可能です。--tlsCertificateKeyFile
オプションと--tlsCertificateSelector
オプションは相互に排他的です。 指定できるのは 1 つだけです。オペレーティング システムの証明書ストアから一致する証明書を選択するために、証明書プロパティを指定します。
--tlsCertificateSelector
では、<property>=<value>
形式の引数が受け入れられます。プロパティは次のいずれか 1 つになります。プロパティ値の型説明subject
ASCII 文字列証明書のサブジェクト名またはコモンネームthumbprint
hex 文字列SHA-1 ダイジェストによって公開キーを識別するために使用される、16進数で表現されるバイト シーケンス。
thumbprint
は、fingerprint
と呼ばれることもあります。システムの SSL 証明書ストアを使用する場合、 OCSP(オンライン証明書ステータス プロトコル)を使用して証明書の失効状態を検証します。
注意
net.tls.certificateSelector
またはthumbprint
を--tlsCertificateSelector
に設定している場合、rotateCertificates
コマンドやdb.rotateCertificates()
shell メソッドは使用できません。
--tlsClusterCertificateSelector <parameter>=<value>
注意
--tlsClusterFile
の代替として、Windows および macOS で利用可能です。--tlsClusterFile
と--tlsClusterCertificateSelector
のオプションは相互に排他的です。指定できるのは 1 つだけです。内部認証用にオペレーティング システムの証明書ストアから一致する証明書を選択するための証明書プロパティを指定します。
--tlsClusterCertificateSelector
では、<property>=<value>
形式の引数が受け入れられます。プロパティは次のいずれか 1 つになります。プロパティ値の型説明subject
ASCII 文字列証明書のサブジェクト名またはコモンネームthumbprint
hex 文字列SHA-1 ダイジェストによって公開キーを識別するために使用される、16進数で表現されるバイト シーケンス。
thumbprint
は、fingerprint
と呼ばれることもあります。mongod
またはmongos
は、提示された x.509 証明書がmongod/mongos
のホスト システム時間から30
日以内に期限切れになる場合、接続時に警告を記録します。
--tlsCRLFile <filename>
証明書失効リストを含む
.pem
ファイルを指定します。相対パスまたは絶対パスを使用して.pem
ファイルのファイル名を指定します。注意
macOS では CRL ファイルを指定できません。 代わりに、OCSP(オンライン証明書ステータス プロトコル)を使用して証明書の失効ステータスを検証するシステム SSL 証明書ストアを使用できます。 システム SSL 証明書ストアを使用するには、
--tlsCertificateSelector
を参照してください。証明書の失効を確認するために、MongoDB は CRL ファイルを指定するか、システム SSL 証明書ストアを使用する代わりに、デフォルトで OCSP(Online Certificate Status Protocol、オンライン証明書ステータス プロトコル)を使用し
enables
。
TLS と MongoDB の詳細については、「
mongod
とmongos
のTLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsAllowConnectionsWithoutCertificates
デフォルトでは、サーバーは CA ファイルを使用するよう構成されていない限り、クライアント証明書の検証をバイパスします。CA ファイルが設定されている場合、次のルールが適用されます。
証明書を提供していないクライアントの場合、
mongod
またはmongos
は、接続が正常に確立されているという前提で TLS/SSL 接続を暗号化します。証明書を提示するクライアントの場合、
mongos
により--tlsCAFile
で指定されたルート証明書チェーンを使用して証明書の検証が実行され、無効な証明書を持つクライアントは拒否されます。
mongos
に証明書を提示しない、または提示できないクライアントを含む混合配置がある場合は、--tlsAllowConnectionsWithoutCertificates
オプションを使用します。TLS と MongoDB の詳細については、「
mongod
とmongos
のTLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsAllowInvalidCertificates
クラスター内の他のサーバー上の TLS 証明書の検証チェックをバイパスし、無効な証明書を使用して接続できるようにします。
注意
x.509 認証を使用するときに
--tlsAllowInvalidCertificates
またはtls.allowInvalidCertificates: true
を指定した場合、無効な証明書は TLS 接続を確立するには十分ですが、認証には不十分です。--tlsAllowInvalidCertificates
設定を使用すると、MongoDB では無効な証明書の使用に関する警告がログに記録されます。TLS と MongoDB の詳細については、「
mongod
とmongos
のTLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsAllowInvalidHostnames
プロセス間認証のためにレプリカセットまたはシャーディングされたクラスターの他のノードに接続するときに、TLS 証明書内のホスト名の検証を無効にします。これにより、証明書内のホスト名が設定されたホスト名と一致しない場合でも、
mongos
は他のノードに接続できるようになります。TLS と MongoDB の詳細については、「
mongod
とmongos
のTLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsDisabledProtocols <protocol(s)>
TLS で実行されている MongoDB サーバーが、特定のプロトコルを使用する接続を受け入れることを防ぎます。複数のプロトコルを指定するには、プロトコルをカンマで区切ったリストを使用します。
--tlsDisabledProtocols
は、TLS1_0
プロトコル、TLS1_1
プロトコル、TLS1_2
プロトコル、およびTLS1_3
プロトコルを認識します。macOS では、
TLS1_1
を無効にして、TLS1_0
とTLS1_2
の両方を有効のままにすることはできません。他の 2 つのうち少なくとも 1 つを無効にする必要があります(例:TLS1_0,TLS1_1
)。複数のプロトコルを指定するには、プロトコルをカンマで区切ったリストとして指定します(例:
TLS1_0,TLS1_1
)。認識できないプロトコルを指定すると、サーバーは起動しません。
指定の無効なプロトコルは、デフォルトの無効なプロトコルを上書きします。
MongoDB は、システムで TLS 1.1 + が利用可能な場合、TLS 1.0の使用を無効にします。 無効になっている TLS 1.0を有効にするには、
none
から--tlsDisabledProtocols
を指定します。レプリカセットとシャーディングされたクラスターのノード間では、少なくとも 1 つのプロトコルが共通している必要があります。
--tlsFIPSMode
TLS ライブラリの FIPS モードを使用するように
mongos
に指示します。--tlsFIPSMode
オプションを使用するには、システムに FIPS 準拠のライブラリが必要です。注意
FIPS に準拠した TLS/SSL は MongoDB Enterprise でのみ利用できます。詳細については「MongoDB を FIPS 用に構成する」を参照してください。
監査のオプション
--auditCompressionMode
バージョン 5.3 で追加。
監査ログの暗号化の圧縮モードを指定します。 また、
--auditEncryptionKeyUID
または--auditLocalKeyFile
のいずれかを使用して、監査ログの暗号化を有効にする必要があります。--auditCompressionMode
は次のいずれかの値に設定できます。値説明zstd
監査ログを圧縮するには、zstd アルゴリズムを使用します。none
(デフォルト)監査ログを圧縮しないでください。注意
MongoDB Enterpriseでのみ利用可能です。MongoDB Enterprise と Atlas では構成要件が異なります。
--auditDestination
監査を有効にし、
mongos
がすべての監査イベントを送信する場所を指定します。--auditDestination
には次のいずれかの値を指定できます。値説明syslog
監査イベントを JSON 形式で syslog に出力します。Windows では使用できません。監査メッセージの syslog 重大度レベルは
info
で、機能レベルはuser
です。syslog メッセージの制限により、監査メッセージが切り捨てられる可能性があります。監査システムは、切り捨てを検出することも、切り捨て時にエラーを発生させることもありません。
console
監査イベントを JSON 形式でstdout
に出力します。file
注意
MongoDB EnterpriseおよびMongoDB Atlasでのみ利用可能です。
--auditEncryptionKeyUID
バージョン 6.0 で追加。
監査ログの暗号化用に KMIP(Key Management Interoperability Protocol)キーの一意の識別子を指定します。
--auditEncryptionKeyUID
と--auditLocalKeyFile
を併用することはできません。注意
MongoDB Enterpriseでのみ利用可能です。MongoDB Enterprise と Atlas では構成要件が異なります。
--auditFormat
が
--auditDestination
である場合の 監査file
用出力ファイルの形式を指定します。--auditFormat
オプションには、次のいずれかの値を指定できます。値説明JSON
監査イベントを JSON 形式で--auditPath
で指定されたファイルに出力します。BSON
監査イベントを BSON バイナリ形式で、--auditPath
で指定されたファイルに出力します。監査イベントを JSON 形式のファイルに出力すると、BSON 形式のファイルに出力するよりもサーバーのパフォーマンスが低下します。
注意
MongoDB EnterpriseおよびMongoDB Atlasでのみ利用可能です。
--auditLocalKeyFile
バージョン 5.3 で追加。
監査ログの暗号化用にローカル監査キー ファイルのパスとファイル名を指定します。
注意
キーが保護されていないため、テストには
--auditLocalKeyFile
のみを使用してください。 キーを保護するには、--auditEncryptionKeyUID
と外部の KMIP サーバーを使用します。--auditLocalKeyFile
と--auditEncryptionKeyUID
を併用することはできません。注意
MongoDB Enterpriseでのみ利用可能です。MongoDB Enterprise と Atlas では構成要件が異なります。
--auditPath
の値が の場合の
--auditDestination
監査file
用の出力ファイルを指定します。--auditPath
オプションには、完全パス名または相対パス名のいずれかを指定できます。注意
MongoDB EnterpriseおよびMongoDB Atlasでのみ利用可能です。
--auditFilter
監査システムが記録する操作の種類を制限するためにフィルターを指定します。このオプションは、次の形式のクエリ ドキュメントの文字列表現を取ります。
{ <field1>: <expression1>, ... } <field>
は、監査フィールド内の任意のフィールド(param ドキュメントで返されるフィールドを含む)にすることができます。<expression>
はクエリ条件式です。監査フィルターを指定するには、フィルター ドキュメントを一重引用符で囲み、ドキュメントを文字列として渡します。
構成ファイルで監査フィルターを指定するには、構成ファイルの YAML 形式を使用する必要があります。
注意
MongoDB EnterpriseおよびMongoDB Atlasでのみ利用可能です。
プロファイラーのオプション
--slowms <integer>
デフォルト: 100
低速操作時間のしきい値(ミリ秒単位)。操作が実行される時間がこのしきい値より長いと、低速とみなされます。
logLevel
が0
に設定されている場合、MongoDB はslowOpSampleRate
で決定されたレートで低速操作を診断ログに記録しますlogLevel
を高く設定すると、待ち時間に関係なく、すべての操作が診断ログに表示されます。mongos
インスタンスの場合、mongos
ではプロファイリングが利用できないため、診断ログにのみ影響し、プロファイラーには影響しません。
--slowOpSampleRate <double>
デフォルト: 1.0
ログに記録されるべき低速操作の割合です。
--slowOpSampleRate
は 0から1までの値を受け入れます。mongos
インスタンスの場合、--slowOpSampleRate
は診断ログにのみ影響し、プロファイラーには影響しません。プロファイリングはmongos
では利用できないためです。
LDAP 認証および承認のオプション
--ldapServers <host1>:<port>,<host2>:<port>,...,<hostN>:<port>
MongoDB Enterprise でのみ使用できます。
mongos
がユーザーを認証したり、特定のデータベースでユーザーが実行できるアクションを決定したりするための LDAP サーバーです。指定した LDAP サーバーにレプリケーションされたインスタンスがある場合は、各複製サーバーのホストとポートをカンマ区切りのリストで指定できます。LDAP インフラストラクチャが LDAP ディレクトリを複数の LDAP サーバーに分割する場合は、 1 つ のLDAP サーバーまたはその複製されたインスタンスのいずれかを
--ldapServers
に指定します。 MongoDB は、 RFC45114.1 で定義されている以下の LDAP10 紹介をサポートしています。 。インフラストラクチャ内のすべての LDAP サーバーを一覧表示するために、--ldapServers
は使用 しない でください。この設定は、
setParameter
を使用して実行中のmongos
で設定できます。設定されていない場合、
mongos
は LDAP 認証または承認を使用できません。
--ldapValidateLDAPServerConfig <boolean>
MongoDB Enterprise で利用可能です。
mongos
インスタンスが起動時にLDAP server(s)
の可用性を確認するかどうかを決定するフラグです。true
の場合、mongos
インスタンスは可用性チェックを実行し、LDAP サーバーが使用可能な場合にのみ起動を続行します。false
の場合、mongos
インスタンスは可用性チェックをスキップします。つまり、LDAP サーバーが利用できない場合でもインスタンスは起動します。
--ldapQueryUser <string>
MongoDB Enterprise でのみ使用できます。
LDAP サーバーに接続するとき、または LDAP サーバーでクエリを実行するときに、
mongos
がバインドする ID です。次のいずれかに当てはまる場合にのみ必要です。
LDAP 承認を使用している
username transformation
には LDAP クエリを使用します。LDAP サーバーが匿名バインドを許可していない
--ldapQueryPassword
では--ldapQueryUser
を使用する必要があります設定されていない場合、
mongos
は LDAP サーバーへのバインドを試行しません。この設定は、
setParameter
を使用して実行中のmongos
で設定できます。注意
Windows MongoDB 配置では、
--ldapBindWithOSDefaults
--ldapQueryUser
--ldapQueryPassword
と の代わりに使用できます。--ldapQueryUser
と--ldapBindWithOSDefaults
の両方を同時に指定することはできません。
--ldapQueryPassword <string>
MongoDB Enterprise でのみ使用できます。
--ldapQueryUser
を使用するときに LDAP サーバーにバインドするために使用されるパスワード。--ldapQueryUser
では--ldapQueryPassword
を使用する必要があります設定されていない場合、
mongos
は LDAP サーバーへのバインドを試行しません。この設定は、
setParameter
を使用して実行中のmongos
で設定できます。注意
Windows MongoDB 配置では、
--ldapBindWithOSDefaults
--ldapQueryPassword
--ldapQueryPassword
と の代わりに使用できます。--ldapQueryPassword
と--ldapBindWithOSDefaults
の両方を同時に指定することはできません。
--ldapBindWithOSDefaults <bool>
デフォルト: false
Windows プラットフォームの MongoDB Enterprise でのみ利用可能です。
LDAP サーバーに接続するときに、
mongos
が Windows のログイン資格情報を使用して認証またはバインドできるようにします。次の場合にのみ必要です。
LDAP 承認を使用している
username transformation
には LDAP クエリを使用します。LDAP サーバーが匿名バインドを許可していない
--ldapBindWithOSDefaults
--ldapQueryUser
と を置き換えるには、--ldapQueryPassword
を使用します。
--ldapBindMethod <string>
デフォルト: simple
MongoDB Enterprise でのみ使用できます。
mongos
が LDAP サーバーへの認証に使用する方法。 LDAP サーバーに接続するには、--ldapQueryUser
と--ldapQueryPassword
とともに使用します。--ldapBindMethod
は次の値をサポートします。simple
-mongos
は簡易認証を使用するsasl
-mongos
は認証に SASL プロトコルを使用する
sasl
を指定した場合は、--ldapBindSaslMechanisms
を使用して使用可能な SASL メカニズムを構成できます。mongos
はデフォルトでDIGEST-MD5
メカニズムを使用します。
--ldapBindSaslMechanisms <string>
デフォルト: DIGEST-MD5
MongoDB Enterprise でのみ使用できます。
LDAP サーバーへの認証時に
mongos
が使用できる SASL メカニズムのカンマ区切りリストです。mongos
と LDAP サーバーは少なくとも 1 つのメカニズムに同意する必要があります。mongos
は、実行時にホスト マシンにインストールされている SASL メカニズム ライブラリを動的に読み込みます。mongos
ホストとリモート LDAP サーバー ホストの両方で、選択した SASL メカニズムに適切なライブラリをインストールして設定します。オペレーティング システムには、デフォルトで特定の SASL ライブラリが含まれている場合があります。インストールと構成のガイダンスについては、各 SASL メカニズムに関連するドキュメントを参照してください。自己管理型配置で Kerberos 認証で使用するために
GSSAPI
SASL メカニズムを使用する場合は、mongos
ホスト マシンで次の点を確認してください。Linux
KRB5_CLIENT_KTNAME
環境変数は、ホスト マシン用のクライアントLinux キータブ ファイルの名前に解決されます。 Kerberos 環境変数の詳細については、 Kerberos のドキュメント を参照してください。クライアント キータブには、LDAP サーバーに接続して LDAP クエリを実行するときに
mongos
が使用するユーザー プリンシパルが含まれています。
Windows
- Active Directoryサーバーに接続する場合、Windows Kerberos構成により、ユーザーがシステムにログオンした際に
が自動生成されます。 --ldapBindWithOSDefaults
をtrue
に設定すると、Active Directory サーバーに接続してクエリを実行する際に、mongos
で生成された認証情報を使用できるようになります。
このオプションを使用するには
--ldapBindMethod
をsasl
に設定します。注意
全 SASL メカニズムを網羅したリストについては、IANA のリスト を参照してください。サービスと互換性のある SASL メカニズムを特定するには、LDAP または Active Directory サービスのドキュメントを参照してください。
MongoDB は SASL メカニズム ライブラリのソースではなく、MongoDB ドキュメントも特定の SASL メカニズムのインストールや設定をするための決定的な情報源ではありません。ドキュメントとサポートについては、SASL メカニズム ライブラリのベンダーまたは管理者に問い合わせてください。
SASLの詳細については、次のリソースを参照してください。
Linux の場合は、 Cyrus SASL のドキュメントを参照してください。
Windows の場合は、 Windows SASL ドキュメント を参照してください。
--ldapTransportSecurity <string>
デフォルト: tls
MongoDB Enterprise でのみ使用できます。
デフォルトでは、
mongos
はLDAP サーバーへの TLS/SSL で保護された接続を作成します。Linux 配置の場合、
/etc/openldap/ldap.conf
ファイルで適切な TLS オプションを構成する必要があります。 オペレーティング システムのパッケージ マネージャーは、libldap
依存関係を介して MongoDB Enterprise インストールの一部としてこのファイルを作成します。 ldap.conf OpenLDAP ドキュメント で のドキュメントを参照してくださいTLS Options
より完全な手順については、 を参照してください。Windows 配置の場合、LDAP サーバー CA 証明書を Windows 証明書管理ツールに追加する必要があります。ツールの正確な名前と機能は、オペレーティング システムのバージョンによって異なる場合があります。証明書管理の詳細については、ご使用の Windows バージョンのドキュメントを参照してください。
mongos
と LDAP サーバー間の TLS/SSL を無効にするには、--ldapTransportSecurity
をnone
に設定します。警告
--ldapTransportSecurity
をnone
に設定すると、mongos
と LDAP サーバー間でプレーンテキスト情報と場合によっては認証情報が送信されます。
--ldapTimeoutMS <long>
デフォルト: 10000
MongoDB Enterprise でのみ使用できます。
LDAP サーバーが要求に応答するまで
mongos
が待機する時間(ミリ秒)です。--ldapTimeoutMS
の値を増やすと、障害の原因が接続タイムアウトである場合、MongoDB サーバーと LDAP サーバー間の接続が失敗しなくなる可能性があります。--ldapTimeoutMS
の値を小さくすると、MongoDB が LDAP サーバーからの応答を待機する時間が短縮されます。この設定は、
setParameter
を使用して実行中のmongos
で設定できます。
--ldapUserToDNMapping <string>
MongoDB Enterprise でのみ使用できます。
認証用に
mongos
に指定されたユーザー名を LDAP 識別名(DN)にマッピングします。 次のシナリオではユーザー名を LDAP DN に変換するために--ldapUserToDNMapping
を使用する必要がある場合があります。LDAP のシンプル バインドにより LDAP 認証を実行し、ユーザーが MongoDB に対し、完全な LDAP 識別名ではないユーザー名で認証されます。
識別名を必要とする
LDAP authorization query template
を使用します。x.509 や kerberos などのさまざまな認証メカニズムを使用して Mongo DB に認証するクライアントのユーザー名を、認証用の完全な LDAP DN に変換します。
--ldapUserToDNMapping
は、順序付けられたドキュメントの配列を表す引用符で囲まれた JSON 文字列を要求しています。各ドキュメントには、正規表現のmatch
と受信ユーザー名の変換に使用されるsubstitution
またはldapQuery
のテンプレートが含まれています。配列内の各ドキュメントの形式は次のとおりです。
{ match: "<regex>" substitution: "<LDAP DN>" | ldapQuery: "<LDAP Query>" } フィールド説明例match
指定されたユーザー名と照合するための ECMAScript 形式の正規表現(regex)です。かっこで囲まれた各セクションは、substitution
またはldapQuery
で使用される正規表現キャプチャ グループを表します。"(.+)ENGINEERING"
"(.+)DBA"
substitution
match
正規表現に一致する認証名を LDAP DN に変換する LDAP 識別名(DN)形式のテンプレート。 中括弧で囲まれた各数値は、対応する 正規表現キャプチャ グループ に置き換えられます 正規表現を使用して認証ユーザー名から抽出されたmatch
置換の結果は、 RFC 4514 に準拠した、エスケープされた文字列である必要があります。
"cn={0},ou=engineering, dc=example,dc=com"
ldapQuery
match
正規表現に一致する認証名を RFC 4515と RFC 4516に従ってエンコードされた LDAP クエリ URI に挿入する LDAP クエリ形式のテンプレート。 中括弧で囲まれた各数値は、対応する 正規表現キャプチャ グループ に置き換えられますmatch
式を介して認証ユーザー名から抽出された。mongos
は LDAP サーバーに対してクエリを実行し、認証されたユーザーの LDAP DN を検索します。mongos
では変換が成功するために返された結果が 1 つだけ必要になる場合があります。または、mongos
はこの変換をスキップします。"ou=engineering,dc=example, dc=com??one?(user={0})"
注意
配列内の各ドキュメントに対して、
substitution
またはldapQuery
のいずれかを使用する必要があります。同じ文書で両方を指定することはできません。認証または承認を実行する際に、
mongos
は配列内の各ドキュメントを所定の順序で順番に処理し、認証ユーザー名をmatch
フィルターと照合します。一致が見つかった場合、mongos
は変換を適用し、その出力をユーザーの認証に使用します。mongos
は配列内の残りのドキュメントはチェックしません。指定されたドキュメントが指定された認証名と一致しない場合、
mongos
はドキュメントのリストをさらにたどって新たに一致するものを探します。どのドキュメントにも一致するものが見つからない場合、またはドキュメントで説明されている変換が失敗した場合、mongos
はエラーを返します。mongos
また、 は LDAP サーバーとのネットワーク接続や認証に失敗して変換の 1 つを評価できない場合にもエラーを返します。mongos
は接続リクエストを拒否し、配列内の残りのドキュメントをチェックしません。MongoDB 5.0 以降、マッピング ドキュメントの代わりに
--ldapUserToDNMapping
は空のstring""
または空の配列[ ]
を受け入れます。 空の string または空の配列を--ldapUserToDNMapping
に指定すると、MongoDB は認証されたユーザー名を LDAP DN としてマッピングします。 以前は、空のマッピング ドキュメントを提供するとマッピングが失敗していました。例
次に、2 つの変換ドキュメントを示しています。最初のドキュメントは
@ENGINEERING
で終わる任意の文字列と一致し、サフィックスの前にあるすべてを正規表現キャプチャ グループに配置します。2 番目のドキュメントは、@DBA
で終わる任意の文字列と一致し、サフィックスの前にあるすべてを正規表現キャプチャ グループに配置します。重要
配列を文字列として --ldapUserToDNMapping に渡す必要があります。
"[ { match: "(.+)@ENGINEERING.EXAMPLE.COM", substitution: "cn={0},ou=engineering,dc=example,dc=com" }, { match: "(.+)@DBA.EXAMPLE.COM", ldapQuery: "ou=dba,dc=example,dc=com??one?(user={0})" } ]" ユーザー名
alice@ENGINEERING.EXAMPLE.COM
のユーザーが最初のドキュメントと一致します。正規表現キャプチャ グループ{0}
は文字列alice
に対応します。結果の出力は DN"cn=alice,ou=engineering,dc=example,dc=com"
です。ユーザー名
bob@DBA.EXAMPLE.COM
のユーザーが 2 番目のドキュメントと一致します。正規表現キャプチャ グループ{0}
は文字列bob
に対応します。結果の出力は、LDAP クエリの"ou=dba,dc=example,dc=com??one?(user=bob)"
です。mongos
は LDAP サーバーに対してこのクエリを実行し、結果として"cn=bob,ou=dba,dc=example,dc=com"
を返します。--ldapUserToDNMapping
が設定されていない場合、mongos
は、LDAP サーバーに対してユーザーを認証または承認しようとする際に、ユーザー名を変換しません。この設定は、実行中の
mongos
でsetParameter
データベースコマンドを使用して設定できます。
追加オプション
--ipv6
IPv6 のサポートを有効にします。
mongos
ではデフォルトで IPv6 のサポートは無効です。--ipv6
を設定しても、mongos
がローカル IPv 6アドレスまたはインターフェースをリッスンするように 指示しません。 IPv 6インターフェースでリッスンするようにmongos
を設定するには、次のいずれかを行う必要があります。IPv 6アドレスに解決される 1 つ以上の IPv 6アドレスまたはホスト名を使用して
--bind_ip
を構成するか、あるいは--bind_ip_all
をtrue
に設定します。