Synopsis
シャーディングされたクラスターの場合、mongos インスタンスはクライアントアプリケーションとシャーディングされたクラスターとの間のインターフェースとなります。mongos インスタンスはクエリと書き込み操作をシャードにルーティングします。アプリケーションの観点から見ると、 mongosインスタンスは他の MongoDB インスタンスと同じように動作します。
Considerations
mongosバイナリの名前は絶対に変更しないでください。mongosレイテンシを最小限に抑えるためにヘッジされた読み取りをサポートします。MongoDB は、TLS 1.1 + が利用可能なシステムで TLS 1.0暗号化のサポートを無効にします。
mongosmongodバイナリは、機能の互換性バージョン(FCV)が よりも大きいmongosインスタンスに接続できません。例、 MongoDB 5.0 は接続できません。 バージョンmongos6から.0FCV 6が. に設定されているシャーディングされたクラスター。0ただし、 MongoDB 5 を接続することは可能です。0 バージョンmongos6から.0FCV 5が. に設定されているシャーディングされたクラスター。0mongodは、デプロイに関するトラブルシューティングを行う 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は起動に失敗します。restmongosは、構成ファイルを解析するときに__rest展開ディレクティブを展開します。execmongosは、構成ファイルを解析するときに__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オプションを有効にする必要があります。
--logappendmongosインスタンスの再起動時に、既存のログファイルの末尾に新しいエントリが追加されます。このオプションを指定しない場合、mongodは既存のログをバックアップして新しいファイルを作成します。
--logRotate <string>デフォルト: rename
サーバー ログや監査ログをローテーションするときの
logRotateコマンドの動作を決定します。renameまたはreopenを指定します。renameは、ログファイルの名前を変更します。reopenは、一般的な Linux/Unix ログのローテーション動作に従って、ログファイルを閉じてから再度開きます。Linux/Unix logrotate ユーティリティを使用する場合は、ログの損失を防ぐためにreopenを使用してください。reopenを指定する場合は、--logappendも使用する必要があります。
--redactClientLogDataMongoDB 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-utcISO-8601 形式のUTC(Coordinated Universal Time、協定世界時)でタイムスタンプを表示します。たとえば、UNIXエポック開始時のニューヨークの場合、以下のようになります。
1970-01-01T00:00:00.000Ziso8601-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 コードをサーバーサイドで実行する操作は使用できません。このような操作をしない場合は、サーバー側のスクリプトを無効にします。
--nounixsocketUNIX ドメイン ソケットでのリスニングを無効にします。
--nounixsocketは Unix ベースのシステムにのみ適用されます。次のいずれかが当てはまらない限り、
mongosプロセスは常に UNIX ソケットを listen します。--nounixsocketが設定されているnet.bindIpが設定されていないnet.bindIpがlocalhostまたはそれに関連付けられた IP アドレスを指定していない
mongosは、公式の Install MongoDB Community Edition on Debian パッケージおよび Install MongoDB Community Edition on Red Hat or CentOS パッケージからインストールされ、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>デフォルト:
0700UNIX ドメイン ソケット ファイルのパーミッションを設定します。
--filePermissionsは Unix ベースのシステムにのみ適用されます。
--forkmongosプロセスをバックグラウンドで実行するデーモン モードを有効にします。--forkオプションは Windows ではサポートされていません。デフォルトでは、
mongosはデーモンとして実行されません。--forkまたは、upstartやsystemdなど、デーモン化を取り扱う制御プロセスを使用して、mongosをデーモンとして実行します。--forkオプションを使用するには、次のいずれかでmongosのログ出力を構成する必要があります。
--transitionToAuthmongosが配置内の他の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パラメーターを使用します。
--outputConfigYAML 形式の
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 認証を使用する場合、 を使用しない限り、
--tlsCAFileまたはtls.CAFile--tlsCertificateSelectorを指定する必要があります。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 認証を使用する場合、 を使用しない限り、
--tlsCAFileまたはtls.CAFile--tlsCertificateSelectorを指定する必要があります。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 認証を使用する場合、 を使用しない限り、
--tlsCAFileまたはtls.CAFile--tlsCertificateSelectorを指定する必要があります。mongodまたはmongosは、提示された x.509 証明書がmongod/mongosのホスト システム時間から30日以内に期限切れになる場合、接続時に警告を記録します。TLS と MongoDB の詳細については、「
mongodとmongosのTLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsClusterPassword <value>--tlsClusterFileで指定された x.509 証明書キー ファイルを復号化するためのパスワードを指定します。証明書キー ファイルが暗号化されている場合にのみ、--tlsClusterPasswordオプションを使用します。いずれの場合も、mongosはすべてのログおよびレポート出力からパスワードを削除します。Linux /BSD で X.509 ファイル内の秘密キーが暗号化されており、かつ
--tlsClusterPasswordオプションを指定していない場合、 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 つになります。プロパティ値の型説明subjectASCII 文字列
証明書のサブジェクト名またはコモンネーム
thumbprinthex 文字列
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 つになります。プロパティ値の型説明subjectASCII 文字列
証明書のサブジェクト名またはコモンネーム
thumbprinthex 文字列
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 つのプロトコルが共通している必要があります。
Tip
--tlsFIPSModeTLS ライブラリの 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 は、RFC 4511 4.1.10 で定義されている以下の LDAP 紹介をサポートしています。インフラストラクチャ内のすべての 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 認証で使用するために
GSSAPISASL メカニズムを使用する場合は、mongosホスト マシンで次の点を確認してください。LinuxKRB5_CLIENT_KTNAME環境変数は、ホスト マシン用のクライアントLinuxキータブ ファイルの名前に解決されます。Kerberos 環境変数の詳細については、 Kerberos のドキュメント を参照してください。クライアント キータブには、LDAP サーバーに接続して LDAP クエリを実行するときに
mongosが使用するユーザー プリンシパルが含まれています。
Windows- Active Directoryサーバーに接続する場合、 Windows Kerberos構成により、ユーザーがシステムにログオンした際に Ticket-Granting-Ticket が自動生成されます。
--ldapBindWithOSDefaultsをtrueに設定すると、mongosが Active Directoryサーバーに接続してクエリを実行するときに生成された認証情報を使用できるようになります。
このオプションを使用するには
--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"substitutionmatch正規表現に一致する認証名を LDAP DN に変換する LDAP識別名(DN)形式のテンプレート。中括弧で囲まれた各数値は、match正規表現によって認証ユーザー名から抽出された、対応する正規表現キャプチャ グループに置き換えられます。置換の結果は、 RFC 4514 に準拠した、エスケープされた文字列である必要があります。
"cn={0},ou=engineering, dc=example,dc=com"ldapQuery"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データベースコマンドを使用して設定できます。
追加オプション
--ipv6IPv6 のサポートを有効にします。
mongosではデフォルトで IPv6 のサポートは無効です。--ipv6を設定しても、mongosがローカル IPv 6アドレスまたはインターフェースをリッスンするように 指示しません。 IPv 6インターフェースでリッスンするようにmongosを設定するには、次のいずれかを行う必要があります。IPv 6アドレスに解決される 1 つ以上の IPv 6アドレスまたはホスト名を使用して
--bind_ipを構成するか、あるいは--bind_ip_allをtrueに設定します。