Synopsis
シャーディングされたクラスターの場合、mongos インスタンスはクライアント アプリケーションとシャーディングされたクラスター間のインターフェースとなります。mongos インスタンスはクエリと書込み (write) 操作をシャードにルーティングします。アプリケーションの観点から見ると、 mongos インスタンスは他の MongoDB インスタンスと同じように動作します。
Considerations
mongosバイナリの名前は絶対に変更しないでください。MongoDB は、TLS 1.2+ が利用可能なシステムでは、TLS 1.0 および TLS 1.1暗号化のサポートを無効にします。
mongosmongodバイナリは、機能の互換性バージョン(FCV)が よりも大きいmongosインスタンスに接続できません。例、 MongoDB.6 0バージョンmongos8を.0 のシャーディングされたクラスターに接続し、FCV 8060mongos8が.0 に設定することはできません。ただし、FCV を. に設定して、 MongoDB. バージョン6 を.0 のシャーディングされたクラスターに接続することは可能です。mongodは、デプロイに関するトラブルシューティングを行う MongoDB エンジニアを支援するために、フルタイム診断データ取得メカニズムを備えています。このスレッドが失敗すると、元のプロセスが終了します。特に一般的な障害を回避するには、プロセスを実行しているユーザーに FTDCdiagnostic.dataディレクトリを作成する権限があることを確認します。mongodの場合、このディレクトリはstorage.dbPath内にあります。mongosの場合は、systemLog.pathと同じ階層にあります。
オプション
注意
MongoDB は SSL オプションを非推奨にし、代わりに対応する新しい TLS オプションを追加します。
注意
- 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はエラーを返し、終了します。展開ディレクティブの詳細については、構成ファイルについて「自己管理型MongoDBの外部構成値」を参照してください。
--quiet出力を制限する quiet モードで
mongosを実行します。このオプションにより次の項目が抑制されます。
データベース コマンドからの出力
レプリケーション アクティビティ
接続を受け付けたイベント
接続を終了したイベント
--port <port>デフォルト: 27017
mongosインスタンスがクライアント接続をリッスンする TCP ポートです。--portオプションは、0から65535までの範囲の値を受け入れます。ポートを0に設定すると、mongosはオペレーティング システムによって割り当てられた任意のポートを使用するように構成されます。
--bind_ip <hostnames|ipaddresses|Unix domain socket paths>デフォルト: localhost
mongosがクライアント接続を待ち受けるホスト名、IP アドレス、および完全な Unix ドメイン ソケット パス。mongosはどのインターフェースにも接続できます。複数のアドレスにバインドするには、値をカンマで区切ったリストを入力します。以下に例を挙げます。
localhost,/tmp/mongod.sockIPv4 アドレスと 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インスタンスはすべての IPv4 アドレス(つまり0.0.0.0)にバインドされます。 がmongos--ipv6で始まる場合、 もすべての--bind_ip_allIPv6 アドレス(::)にバインドされます。mongosでは、--ipv6で開始された場合のみ--bind_ip_allIPv6 がサポートされます。 のみを指定しても、IPv6 のサポートは有効になりません。警告
インスタンスをパブリックにアクセス可能な IP アドレスにバインドする前に、クラスターを不正アクセスから保護する必要があります。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。
IP バインディングの詳細については、「自己管理型配置の IP バインディング」ドキュメントを参照してください。
あるいは、
--bind_ipオプションを::,0.0.0.0またはアスタリスク"*"に設定することもできます(ファイル名パターン展開を避けるために、アスタリスクは引用符で囲みます)。注意
--bind_ipと--bind_ip_allは相互に排他的です。つまり、どちらか一方を指定できますが、両方を指定することはできません。
--listenBacklog <number>デフォルト: ターゲット システム
SOMAXCONN定数listen キューに存在できる接続の最大数です。
警告
このパラメーターを使用する前に、制限事項と構成要件を理解するためにローカル システムのドキュメントを確認してください。
重要
未定義の動作を防ぐには、このパラメーターに
1とローカルシステムのSOMAXCONN定数の間の値を指定します。listenBacklogパラメーターのデフォルト値は、ターゲットシステムに依存します。Linux では、MongoDB は/proc/sys/net/core/somaxconnを使用します。その他のすべてのターゲットシステムでは、MongoDB はコンパイル時定数SOMAXCONNを使用します。SOMAXCONNを記号的に解釈するシステムもあれば、数値的に解釈するシステムもあります。実際に適用されるlisten バックログは、SOMAXCONN定数または--listenBacklogへの引数の数値的解釈とは異なる場合があります。listenBacklogパラメーターにローカルシステムのSOMAXCONN定数を超える値を渡すと、標準では未定義の動作になります。値が大きいと、自動的に整数に切り捨てられる、無視される、予期しないリソースが消費されるなどの悪影響が生じる可能性があります。
--maxConns <number>mongosが受け入れる同時接続の最大数です。この設定は、オペレーティング システムで設定されている最大接続追跡しきい値よりも高い場合は効果がありません。このオプションに、あまりにも低い値は割り当てないでください。通常のアプリケーション操作中にエラーが発生する可能性があります。
これは、クライアントで接続を複数作成して、それらを閉じるのではなくタイムアウトさせる場合、
mongosにとって特に有用です。この場合、
maxIncomingConnectionsに、クライアントが作成する接続の最大数、または接続プールの最大サイズよりわずかに大きな値を設定します。この設定により、
mongosが個々のシャードで接続スパイクが発生するのを防ぎます。 このようなスパイクが発生すると、 シャーディングされたクラスター の操作とメモリ割り当てが中断されることがあります。
--logpath <path>すべての診断ログ情報を、標準出力やホストの syslog システムではなく、ログファイルに送信します。MongoDB は指定したパスにログファイルを作成します。
デフォルトでは 、 MongoDB は既存のログファイルを上書きせず、移動します。ログファイルに追加するには、
--logappendオプションを設定します。
--syslogすべてのログ出力を標準出力やログファイルではなく、ホストのsyslogシステムに送信します(
--logpath)。--syslogオプションはWindowsではサポートされていません。警告
syslogデーモンは、 MongoDBメッセージが発行されたときではなく、メッセージがログに記録されたときにタイムスタンプを生成します。そのため、特にシステムの負荷が高い場合に、ログエントリのタイムスタンプに誤りが生じる可能性があります。タイムスタンプが正確になるように、実稼働システムでは--logpathオプションを使用することをお勧めします。MongoDB は、
syslogへのログ メッセージにコンポーネントを含めます。... ACCESS [repl writer worker 5] Unsupported modification to roles collection ...
--syslogFacility <string>デフォルト: user
メッセージをsyslogに記録するときに使用するファシリティ レベルを指定します。指定する値は、使用しているオペレーティング システムのsyslogの実装でサポートされている必要があります。このオプションを使用するには、
--syslogオプションを有効にする必要があります。
--logappendmongosインスタンスの再起動時に、既存のログファイルの末尾に新しいエントリを追加します。このオプションを指定しない場合、mongosは既存のログをバックアップして新しいファイルを作成します。
--logRotate <string>デフォルト: rename
サーバー ログや監査ログをローテーションするときの
logRotateコマンドの動作を決定します。renameまたはreopenを指定します。renameは、ログファイルの名前を変更します。reopenは、一般的な Linux/Unix ログのローテーション動作に従って、ログファイルを閉じてから再度開きます。Linux/Unix logrotate ユーティリティを使用する場合は、ログの損失を防ぐためにreopenを使用してください。reopenを指定する場合は、--logappendも使用する必要があります。
--redactClientLogDataMongoDB Enterprise でのみ使用できます。
mongos--redactClientLogDataで実行中 は、ログに記録される前にログイベントに付随するすべてのメッセージをリダクションします。これにより、データベースに保存されている機密性が高い可能性のあるデータをmongosが 診断ログに書き込むことを防止します。エラー コードや操作コード、行番号、ソースファイル名などのメタデータは、引き続きログに表示されます。--redactClientLogData規制要件へのコンプライアンスに、 を 保存時の暗号化 および TLS/SSL(トランスポート暗号化) と組み合わせて使用することが役立ちます。例、 MongoDBデプロイでは、個人を特定できる情報(PII)が 1 つ以上のコレクションに保存される場合があります。 は、
mongosCRUD操作 やシャーディングメタデータなどのイベントをログに記録します。これらのログ操作の一環として PII を公開する可能性があります。 とともに実行中mongos--redactClientLogDataは、これらのイベントに付随するメッセージをログに書き込む前にすべてのメッセージを削除するため、PII が削除されます。mongos--redactClientLogDataで実行中--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注意
タイムスタンプ形式は
ctimeをサポートしなくなりました。ctime形式の日付の例は、Wed Dec 31 18:17:54.811です。
--pidfilepath <path>プロセスのプロセスID (PID)を保存するファイルの場所を指定します。
mongosmongodまたはmongosプロセスを実行中ユーザーは、このパスに書込む (write) ことができる必要があります。 オプションが指定されていない場合、--pidfilepath--forkプロセスは PIDファイルを作成しません。このオプションは主に オプションとともに使用します。注意
Linux
Linuxでは、PIDファイルの管理は通常、ディストリビューションの初期化システムによって行われます。通常、
/etc/init.dディレクトリ内のサービスファイルか、 に登録された systemdsystemctl--pidfilepathユニットファイルが使用されます。これらの初期化システムのいずれも使用していない場合にのみ、 オプションを使用してください。詳細については、ご利用中のオペレーティング システム用のインストール ガイドを参照してください。注意
MacOS
macOS では、PIDファイル管理は通常
brew--pidfilepathbrewによって処理されます。 macOS システムで を使用していない場合にのみ、 オプションを使用してください。詳細については、ご利用中のオペレーティング システム用のインストール ガイドを参照してください。
--keyFile <file>MongoDBインスタンスがシャーディングされたクラスターまたはレプリカセット内で相互に認証を行うために使用する、共有シークレットを保存する鍵ファイルへのパスを指定します。
--keyFileはclient authorizationを意味します。詳細については、「 自己管理型内部認証とメンバーシップ認証 」を参照してください。内部メンバーシップ認証用のキーファイルでは、キーファイル内に複数のキーを含めるために YAML 形式が使用されます。YAML 形式は次のいずれかを受け入れます。
1 つのキー文字列(以前のバージョンと同じ)
キー文字列のシーケンス
YAML 形式は、テキストファイル形式を使用する既存の単一のキー キーファイルと互換性があります。
--setParameter <options>「 自己管理型配置の MongoDB Server パラメーター 」で説明されている MongoDB パラメーターの 1 つを指定します。 複数の
setParameterフィールドを指定できます。
--noscriptingスクリプト エンジンを無効にします。無効にすると、
$whereクエリ演算子、mapReduceコマンド、$accumulator、$functionなど、JavaScript コードをサーバーサイドで実行する操作は使用できません。このような操作をしない場合は、サーバー側のスクリプトを無効にします。
--nounixsocketUNIX ドメイン ソケットでのリスニングを無効にします。 は Unix
--nounixsocketベースのシステムにのみ適用されます。次のいずれかが当てはまらない限り、
mongosプロセスは常に UNIX ソケットを listen します。--nounixsocketが設定されているnet.bindIpが設定されていないnet.bindIpがlocalhostまたはそれに関連付けられた IP アドレスを指定していない
mongos公式の Debian および Red Hat または CentOS パッケージからインストールされたものは、bind_ip構成がデフォルトで127.0.0.1に設定されています。
--unixSocketPrefix <path>デフォルト: /tmp
UNIX ソケットのパス。 は Unix
--unixSocketPrefixベースのシステムにのみ適用されます。このオプションに値がない場合、
mongosプロセスは/tmpをプレフィックスとするソケットを作成します。MongoDB は、次のいずれかが当てはまらない限り、UNIX ソケットを作成して listen します。net.unixDomainSocket.enabledとはfalse--nounixsocketが設定されているnet.bindIpが設定されていないnet.bindIpがlocalhostまたはそれに関連付けられた IP アドレスを指定していない
--filePermissions <path>デフォルト:
0700UNIX ドメイン ソケット ファイルのパーミッションを設定します。
--filePermissionsは Unix ベースのシステムにのみ適用されます。
--forkデーモンモードを有効にして、
mongosプロセスをバックグラウンドで実行します。--forkオプションはWindowsではサポートされていません。mongosデフォルトでは、 はデーモンとして実行されません。mongos--forkまたは、デーモン化を取り扱う制御プロセス(upstartや など)を使用して、systemdをデーモンとして実行します。--forkオプションを使用するには、次のいずれかのログ出力でmongosのログ出力を構成する必要があります。
--transitionToAuthmongosが配置内の他の インスタンスとmongodmongosインスタンスとの間で、認証済みの接続と非認証の接続の受け入れと作成を許可します。レプリカセットまたはシャーディングされたクラスターの認証なし構成から内部認証へのローリング移行を実行するために使用されます。 などの--keyFile内部認証メカニズムを指定する必要があります。例えば、キーファイルを内部認証に使用する場合、
mongosは一致するキーファイルを使用して、配置内の任意のmongodまたはmongosとの認証済み接続を作成します。セキュリティ メカニズムが一致しない場合、mongosは代わりに認証されていない接続を利用します。mongos--transitionToAuthで実行中 では、ユーザー アクセス制御は強制されません。ユーザーは、アクセス制御チェックなしで配置に接続し、読み取り操作、書込み操作、および管理操作を実行できます。注意
mongos内部認証で実行中、--transitionToAuthがない では、クライアントがユーザー アクセス制御を使用して接続する必要があります。 なしで を再起動する前に、適切なユーザーを使用してmongosmongos--transitionToAuthに接続するよう、クライアントを更新します。
--networkMessageCompressors <string>Default: snappy,zstd,zlib
この
mongosインスタンスと以下の間の通信に使用するデフォルトのコンプレッサーを指定します。シャーディングされたクラスターの他のノード
OP_COMPRESSEDメッセージ形式をサポートするドライバー
MongoDB では、以下のコンプレッサーをサポートしています。
mongodインスタンスとmongosインスタンスはどちらもデフォルトでsnappy,zstd,zlibコンプレッサーに設定され、順序は同じです。ネットワーク圧縮を無効にするには、値を
disabledに設定します。重要
両者がネットワーク圧縮を有効にしている場合、メッセージは圧縮されます。そうでなければ、この両者間のメッセージは非圧縮となります。
複数のコンプレッサーを指定する場合、通信イニシエーターだけでなく、コンプレッサーをリストする順序も重要になります。例、 が次のネットワーク
mongoshコンプレッサーzlib,snappymongodsnappy,zlibを指定し、mongoshが を指定する場合、 と の間のメッセージはmongodzlibを使用します。当事者間に共通のコンプレッサーが 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の古いバージョンで不正確なタイムゾーン変換を作成する可能性があります。より前のバージョンのMongoDBでタイムゾーンデータベースに明示的にリンクするには、5.0 タイムゾーンデータベースをダウンロードし、
timeZoneInfoパラメータを使用する
--outputConfigmongosYAML 形式の インスタンスの構成オプションをstdoutmongosに出力し、 インスタンスを終了します。自己管理型MongoDBの外部構成値--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 のオプション
Tip
MongoDB のサポートに関する完全なドキュメントについては、TLS/SSL 暗号化用の MongoDB インスタンスを構成する を参照してください。
--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 の詳細については、TLS/SSL 暗号化用 MongoDB インスタンスの構成 および クライアントの TLS/SSL 構成 を参照してください。
--tlsCertificateKeyFile <filename>注意
macOS またはWindowsでは、 PEMファイルを指定する代わりにオペレーティング システムのセキュア ストアからの証明書を使用できます。詳しくは、 を参照してください。
--tlsCertificateSelectorTLS 証明書とキーの両方を含む
.pemファイルを指定します。Linux/BSD では、TLS が有効になっている場合に
--tlsCertificateKeyFileを指定する必要があります。Windowsまたは macOS では、TLS が有効になっている場合、
--tlsCertificateKeyFile--tlsCertificateSelectorまたは のいずれかを指定する必要があります。
TLS と MongoDB の詳細については、TLS/SSL 暗号化用 MongoDB インスタンスの構成 および クライアントの TLS/SSL 構成 を参照してください。
--tlsCertificateKeyFilePassword <value>証明書鍵ファイルを復号化するためのパスワードを指定します( )。証明書鍵ファイルが暗号化されている場合にのみ、
--tlsCertificateKeyFile--tlsCertificateKeyFilePasswordオプションを使用します。いずれの場合も、mongosはすべてのログとレポート出力からパスワードを削除します。Linux /BSD で PEMファイル内の秘密キーが暗号化されており、かつ オプションを指定していない場合、 MongoDB
--tlsCertificateKeyFilePasswordはパスフレーズの入力を要求します。詳細については、「 TLS/SSL 証明書のパスフレーズ 」を参照してください。macOS またはWindowsで PEMファイル内の秘密キーが暗号化されている場合は、 オプションを明示的に指定する必要があります。あるいは、PEMファイルの代わりに、セキュア
--tlsCertificateKeyFilePasswordシステム ストア(--tlsCertificateSelectorを参照)から証明書を取得して使用するか、暗号化されていない PEMファイルを使用することもできます。
TLS と MongoDB の詳細については、TLS/SSL 暗号化用 MongoDB インスタンスの構成 および クライアントの 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 の詳細については、TLS/SSL 暗号化用 MongoDB インスタンスの構成 および クライアントの TLS/SSL 構成 を参照してください。
--tlsClusterFile <filename>注意
macOS またはWindowsでは、 PEMファイルの代わりにオペレーティング システムのセキュア ストアからの証明書を使用できます。詳しくは、 を参照してください。
--tlsClusterCertificateSelectorクラスターまたはレプリカ セットのメンバーシップ認証用の X.509 証明書キー ファイルを含む
.pemファイルを指定します。--tlsClusterFile.pemが内部クラスター認証用の--tlsClusterCertificateSelector.pemファイルまたは代替の を指定しない場合、クラスターは--tlsCertificateKeyFileオプションで指定された ファイルまたは--tlsCertificateSelectorによって返された証明書を使用します。X.509 認証を使用する場合、 を使用しない限り、
--tlsCAFileまたはtls.CAFile--tlsCertificateSelectorを指定する必要があります。mongodmongos提示された X.509 証明書が30mongod/mongosのホスト システム時間から 日以内に期限切れになる場合、 / は接続時に警告を記録します。TLS と MongoDB の詳細については、TLS/SSL 暗号化用 MongoDB インスタンスの構成 および クライアントの TLS/SSL 構成 を参照してください。
--tlsClusterPassword <value>で指定された X.509
--tlsClusterFile--tlsClusterPassword証明書キーファイルを復号化するためのパスワードを指定します。証明書キーファイルが暗号化されている場合にのみ、 オプションを使用します。いずれの場合も、mongosはすべてのログとレポート出力からパスワードを削除します。Linux /BSD で X.509 ファイル内の秘密キーが暗号化されており、かつ
--tlsClusterPasswordオプションを指定していない場合、 MongoDB はパスフレーズの入力を要求します。詳細については、「 TLS/SSL 証明書のパスフレーズ 」を参照してください。macOS またはWindowsで X.509
--tlsClusterPasswordファイル内の秘密キーが暗号化されている場合は、 オプションを明示的に指定する必要があります。あるいは、クラスター PEMファイルの代わりに、セキュア システム ストア(--tlsClusterCertificateSelectorを参照)から証明書を取得して使用するか、暗号化されていない PEMファイルを使用することもできます。
TLS と MongoDB の詳細については、TLS/SSL 暗号化用 MongoDB インスタンスの構成 および クライアントの TLS/SSL 構成 を参照してください。
--tlsCAFile <filename>証明書認証機関からのルート証明書チェーンを含む
.pemファイルを指定します。相対パスまたは絶対パスを使用して.pemファイルのファイル名を指定します。macOS またはWindowsでは、 PEM キーファイルの代わりにオペレーティング システムのセキュア ストアからの証明書を使用できます。詳しくは、 を参照してください。セキュア
--tlsCertificateSelectorストアを使用する場合は、--tlsCAFileを指定する必要はありませんが、指定することもできます。TLS と MongoDB の詳細については、TLS/SSL 暗号化用 MongoDB インスタンスの構成 および クライアントの TLS/SSL 構成 を参照してください。
--tlsClusterCAFile <filename>接続を確立するクライアントによって提示された証明書を検証するために使用される証明機関からのルート証明書チェーンを含む
.pemファイルを指定します。相対パスまたは絶対パスを使用して、.pemファイルのファイル名を指定します。--tlsClusterCAFile.pemが接続を確立するクライアントからの証明書を検証するための ファイルを指定しない場合、クラスターは オプションで指定された.pem--tlsCAFileファイルを使用します。--tlsClusterCAFileクライアントからサーバー、サーバーからクライアントへのTLS ハンドシェイクの各部分を検証するために、異なる認証局を使用することができます。macOS またはWindowsでは、 PEM キーファイルの代わりにオペレーティング システムのセキュア ストアからの証明書を使用できます。詳しくは、 を参照してください。セキュア
--tlsClusterCertificateSelectorストアを使用する場合は、--tlsClusterCAFileを指定する必要はありませんが、指定することもできます。--tlsCAFileが設定されている必要があります。TLS と MongoDB の詳細については、TLS/SSL 暗号化用 MongoDB インスタンスの構成 および クライアントの TLS/SSL 構成 を参照してください。
--tlsCertificateSelector <parameter>=<value>注意
の代替としてWindowsと macOS
--tlsCertificateKeyFileで利用できます。--tlsCertificateKeyFileと オプションは相互に排他的です。指定できるのは 1--tlsCertificateSelectorつだけです。オペレーティング システムの証明書ストアから一致する証明書を選択するために、証明書プロパティを指定します。
--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>注意
の代替としてWindowsと macOS
--tlsClusterFileで利用できます。--tlsClusterFile--tlsClusterCertificateSelectorオプションと オプションは相互に排他的です。指定できるのは 1 つだけです。内部認証用にオペレーティング システムの証明書ストアから一致する証明書を選択するための証明書プロパティを指定します。
--tlsClusterCertificateSelector<property>=<value>は 形式の引数を受け入れます。プロパティは次のいずれか 1 つになります。プロパティ値の型説明subjectASCII 文字列
証明書のサブジェクト名またはコモンネーム
thumbprinthex 文字列
SHA-1 ダイジェストによって公開キーを識別するために使用される、16進数で表現されるバイト シーケンス。
thumbprintは、fingerprintと呼ばれることもあります。mongodmongos提示された X.509 証明書が30mongod/mongosのホスト システム時間から 日以内に期限切れになる場合、 / は接続時に警告を記録します。
--tlsCRLFile <filename>証明書失効リストを含む
.pemファイルを指定します。相対パスまたは絶対パスを使用して.pemファイルのファイル名を指定します。注意
macOS では CRLファイルを指定できません。代わりに、OCSP(オンライン証明書ステータス プロトコル)を使用して証明書の失効ステータスを検証するシステム SSL 証明書ストアを使用できます。システム SSL 証明書ストアを使用するには、
--tlsCertificateSelectorを参照してください。証明書の失効を確認するために、MongoDB は CRL ファイルを指定するか、システム SSL 証明書ストアを使用する代わりに、デフォルトで OCSP(Online Certificate Status Protocol、オンライン証明書ステータス プロトコル)を使用し
enables。
TLS と MongoDB の詳細については、TLS/SSL 暗号化用 MongoDB インスタンスの構成 および クライアントの TLS/SSL 構成 を参照してください。
--tlsAllowConnectionsWithoutCertificatesデフォルトでは、サーバーは CA ファイルを使用するよう構成されていない限り、クライアント証明書の検証をバイパスします。CA ファイルが設定されている場合、次のルールが適用されます。
証明書を提示するクライアントの場合、
mongosにより--tlsCAFileで指定されたルート証明書チェーンを使用して証明書の検証が実行され、無効な証明書を持つクライアントは拒否されます。
--tlsAllowConnectionsWithoutCertificates混合配置に、 に証明書を提示しない、または提示できないクライアントを含む場合は、mongosオプションを使用します。TLS と MongoDB の詳細については、TLS/SSL 暗号化用 MongoDB インスタンスの構成 および クライアントの TLS/SSL 構成 を参照してください。
--tlsAllowInvalidCertificatesクラスター内の他のサーバー上の TLS 証明書の検証チェックをバイパスし、無効な証明書を使用して接続できるようにします。
注意
X.509 認証を使用するときに
--tlsAllowInvalidCertificatesまたはtls.allowInvalidCertificates: trueを指定した場合、無効な証明書は TLS 接続を確立するには十分ですが、認証には不十分です。--tlsAllowInvalidCertificates設定を使用すると、 MongoDB無効な証明書の使用に関する警告がログに記録されます。TLS と MongoDB の詳細については、TLS/SSL 暗号化用 MongoDB インスタンスの構成 および クライアントの TLS/SSL 構成 を参照してください。
--tlsAllowInvalidHostnamesプロセス間認証のためにレプリカセットまたはシャーディングされたクラスターの他のノードに接続するときに、TLS 証明書内のホスト名の検証を無効にします。これにより、証明書内のホスト名が設定されたホスト名と一致しない場合でも、
mongosは他のノードに接続できるようになります。TLS と MongoDB の詳細については、TLS/SSL 暗号化用 MongoDB インスタンスの構成 および クライアントの 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)。認識できないプロトコルを指定すると、サーバーは起動しません。
指定の無効なプロトコルは、デフォルトの無効なプロトコルを上書きします。
MongoDB1.0 1.1は、システムで TLS + が利用可能な場合、TLS の使用を無効にします。無効になっている TLS1.0 を有効にするには、
noneから--tlsDisabledProtocolsを指定します。レプリカセットとシャーディングされたクラスターのノード間では、少なくとも 1 つのプロトコルが共通している必要があります。
Tip
--tlsFIPSModemongosTLS ライブラリの FIPSモードを使用するように に指示します。 オプションを使用するには、システムに FIPS--tlsFIPSMode準拠のライブラリが必要です。MongoDB8.3 以降では、
SCRAM-SHA-1またはauthenticationMechanismsmongod --tlsFIPSModeも指定しながら、 にmongos --tlsFIPSModeを指定することはできません。--tlsFIPSModeも指定しているときにauthenticationMechanismsにSCRAM-SHA-1を指定しようとすると、サーバーはエラーをスローし、次のようなメッセージをログに記録します。SCRAM-SHA-1 is not allowed in FIPS mode. 注意
FIPS に準拠した TLS/SSL は MongoDB Enterprise でのみ利用できます。詳細については「MongoDB を FIPS 用に構成する」を参照してください。
監査のオプション
--auditCompressionModeバージョン5.3の新機能。
監査するログの暗号化の圧縮モードを指定します。また、
--auditEncryptionKeyUIDまたは--auditLocalKeyFileのいずれかを使用して監査するログの暗号化を有効にする必要があります。このオプションは、次のいずれかの値に設定できます。
値説明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)キーの一意の識別子を指定します。
このオプションと
--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の新機能。
監査ログの暗号化用にローカル監査キー ファイルのパスとファイル名を指定します。
注意
キーが保護されていないため、このオプションはテスト目的でのみ使用してください。キーを保護するには、 と外部のKey Management Interoperability Protocol
--auditEncryptionKeyUID(KMIP)サーバーを使用します。両方のオプションを同時に使用することはできません。
注意
MongoDB Enterpriseでのみ利用可能です。MongoDB Enterprise と Atlas では構成要件が異なります。
--auditPathの値が の場合の
--auditDestination監査file用の出力ファイルを指定します。--auditPathオプションには、完全パス名または相対パス名のいずれかを指定できます。注意
MongoDB EnterpriseおよびMongoDB Atlasでのみ利用可能です。
--auditFilter監査システムが記録する操作の種類を制限するためにフィルターを指定します。このオプションは、次の形式のクエリ ドキュメントの文字列表現を取ります。
{ <field1>: <expression1>, ... } <field>は、監査フィールド内の任意のフィールド(param ドキュメントで返されるフィールドを含む)にすることができます。<expression>はクエリ条件式です。監査フィルターを指定するには、フィルター ドキュメントを一重引用符で囲み、ドキュメントを文字列として渡します。
構成ファイルで監査フィルターを指定するには、構成ファイルの YAML 形式を使用する必要があります。
注意
MongoDB EnterpriseおよびMongoDB Atlasでのみ利用可能です。
--auditSchema型: string
デフォルト:
mongoバージョン8.0の新機能。
監査ログに使用される形式を指定します。
--auditSchemaには、次のいずれかの値を指定できます。値説明mongoログは、MongoDB によって設計された形式で書き込まれます。
ログメッセージの例については、「mongo スキーマ監査メッセージ」を参照してください。
OCSFログは OCSF 形式で書かれています。このオプションは、ログプロセッサと互換性のある標準化された形式でログを提供します。
ログメッセージの例については、「OCSF スキーマ監査メッセージ」を参照してください。
プロファイラーのオプション
--slowms <integer>デフォルト: 100
低速操作時間のしきい値(ミリ秒単位)。操作が実行される時間がこのしきい値より長いと、低速とみなされます。
logLevelが0に設定されている場合、MongoDB はslowOpSampleRateで決定されたレートで低速操作を診断ログに記録しますlogLevelを高く設定すると、待ち時間に関係なく、すべての操作が診断ログに表示されます。mongosインスタンスの場合、mongosではプロファイリングが利用できないため、診断ログにのみ影響し、プロファイラーには影響しません。
--slowOpSampleRate <double>デフォルト: 1.0
ログに記録されるべき 低速
--slowOpSampleRate操作の割合です。0 1は、 から までの値を受け入れます。mongosインスタンスの場合、--slowOpSampleRatemongosは診断ログにのみ影響し、プロファイラーには影響しません。プロファイリングは では利用できないためです。
LDAP 認証および承認のオプション
注意
MongoDB 8.0以降、 LDAP認証と認可は非推奨です。 LDAP は使用可能であり、 MongoDB 8のサポート期間中に変更されずに動作し続けます。 LDAP は将来のメジャー リリースで削除される予定です。
詳細については、「LDAP の非推奨」を参照してください。
--ldapServers <host1>:<port>,<host2>:<port>,...,<hostN>:<port>MongoDB Enterprise でのみ使用できます。
mongosがユーザーを認証したり、特定のデータベースでユーザーが実行できるアクションを決定したりするための LDAP サーバーです。指定した LDAP サーバーにレプリケーションされたインスタンスがある場合は、各複製サーバーのホストとポートをカンマ区切りのリストで指定できます。LDAP インフラストラクチャが LDAPディレクトリを複数の LDAP サーバーに分割する場合は、1 つ の LDAPサーバーまたはその複製されたインスタンスのいずれかを
--ldapServersに指定します。 MongoDB は、RFC..45114 110で定義されている以下の--ldapServersLDAP 紹介をサポートしています。インフラストラクチャ内のすべての LDAPサーバーを一覧表示するために、 を使用することは避けてください。この設定は、
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 承認を使用している
に LDAP クエリを使用します。
username transformationLDAP サーバーが匿名バインドを許可していない
--ldapQueryUserでは--ldapQueryPasswordを使用する必要があります。設定されていない場合、
mongosは LDAP サーバーへのバインドを試行しません。この設定は、
setParameterを使用して実行中のmongosで設定できます。注意
Windows MongoDB配置では、
--ldapBindWithOSDefaultsと--ldapQueryUser--ldapQueryPasswordの代わりに を使用できます。--ldapQueryUser--ldapBindWithOSDefaultsと の両方を同時に指定することはできません。
--ldapQueryPassword <string>MongoDB Enterprise でのみ使用できます。
を使用するときに LDAPサーバーにバインドするために使用されるパスワード。
--ldapQueryUserでは--ldapQueryPassword--ldapQueryUserを使用する必要があります。設定されていない場合、
mongosは LDAP サーバーへのバインドを試行しません。この設定は、
setParameterを使用して実行中のmongosで設定できます。注意
Windows MongoDB配置では、
--ldapBindWithOSDefaultsと--ldapQueryPassword--ldapQueryPasswordの代わりに を使用できます。--ldapQueryPassword--ldapBindWithOSDefaultsと の両方を同時に指定することはできません。
--ldapBindWithOSDefaults <bool>デフォルト: false
Windows プラットフォームの MongoDB Enterprise でのみ利用可能です。
LDAP サーバーに接続するときに、
mongosが Windows のログイン資格情報を使用して認証またはバインドできるようにします。次の場合にのみ必要です。
LDAP 承認を使用している
に LDAP クエリを使用します。
username transformationLDAP サーバーが匿名バインドを許可していない
--ldapBindWithOSDefaults--ldapQueryUserと を置き換えるには、--ldapQueryPasswordを使用します。
--ldapBindMethod <string>デフォルト: simple
MongoDB Enterprise でのみ使用できます。
は
--ldapQueryUserを使用してmongos--ldapQueryPasswordLDAPサーバーに認証します。 LDAPサーバーに接続するには、 と とともに を使用します。--ldapBindMethodは次の値をサポートします。simple-mongosは簡易認証を使用するsasl-mongosは認証に SASL プロトコルを使用する
saslを指定した場合は、 を使用して使用可能な SASL--ldapBindSaslMechanismsメカニズムを構成できます。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 が自動生成されます。 を
--ldapBindWithOSDefaultstruemongosに設定すると、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 バージョンのドキュメントを参照してください。
--ldapTransportSecurityをnonemongosに設定すると、 と LDAPサーバーの間で TLS/SSL が無効になります。警告
--ldapTransportSecuritynoneをmongosに設定すると、 と LDAPサーバー間でプレーンテキスト情報と場合によっては認証情報が送信されます。
--ldapTimeoutMS <int>デフォルト: 10000
MongoDB Enterprise でのみ使用できます。
LDAP サーバーが要求に応答するまで
mongosが待機する時間(ミリ秒)です。の値を増やすと、障害の原因が接続タイムアウトである場合、 MongoDBサーバーと
--ldapTimeoutMS--ldapTimeoutMSLDAPサーバー間の接続が失敗しなくなる可能性があります。 の値を減らすと、 MongoDB がLDAPサーバーからの応答を待機する時間が短縮されます。この設定は、
setParameterを使用して実行中のmongosで設定できます。
--ldapRetryCount <int>バージョン6.1の新機能。
デフォルト: 0
MongoDB Enterprise でのみ使用できます。
ネットワーク エラーが発生した場合にサーバー LDAP マネージャーによって再試行される操作の回数。
--ldapUserToDNMapping <string>MongoDB Enterprise でのみ使用できます。
認証用に に指定されたユーザー名を LDAP 識別名(DN)にマッピングします。次のシナリオではユーザー名をLDAP DN に変換するために
mongos--ldapUserToDNMappingを使用する必要がある場合があります。LDAP のシンプル バインドにより LDAP 認証を実行し、ユーザーが MongoDB に対し、完全な LDAP 識別名ではないユーザー名で認証されます。
識別名を必要とする
LDAP authorization query templateを使用します。x.509 や kerberos などのさまざまな認証メカニズムを使用して Mongo DB に認証するクライアントのユーザー名を、認証用の完全な LDAP DN に変換します。
--ldapUserToDNMappingは、順序付けられたドキュメントの配列を表す引用符で囲まれたJSON文字列を要求しています。各ドキュメントには、正規式matchsubstitutionldapQueryと、受信ユーザー名の変換に使用される または のテンプレートが含まれています。配列内の各ドキュメントの形式は次のとおりです。
{ match: "<regex>" substitution: "<LDAP DN>" | ldapQuery: "<LDAP Query>" } フィールド説明例match指定されたユーザー名と照合するための ECMAScript 形式の正規表現(regex)です。かっこで囲まれた各セクションは、
substitutionまたはldapQueryで使用される正規表現キャプチャ グループを表します。"(.+)ENGINEERING""(.+)DBA"substitution正規表現に一致する認証名を LDAP
matchDN に変換する LDAP識別名(DN)形式のテンプレート。中括弧で囲まれた各数値は、 正規表現によって認証ユーザー名から抽出された、対応する正規表現キャプチャmatchグループに置き換えられます。置換の結果は、RFC4514 のエスケープされた文字列である必要があります。
"cn={0},ou=engineering, dc=example,dc=com"ldapQuery正規表現に一致する認証名を
matchRFC4515 と RFC4516 に従ってエンコードされた 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は接続リクエストを拒否し、配列内の残りのドキュメントをチェックしません。MongoDB5.0 以降、マッピング ドキュメントの代わりに、
--ldapUserToDNMappingは空の文字列""または空の配列[ ]を受け入れます。空の 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がローカル IPv6 アドレスまたはインターフェースをリッスンするように 指示しません 。mongosIPv6 インターフェースでリッスンするように を設定するには、次のいずれかを行う必要があります。IPv アドレスまたは IPv アドレスに解決するホスト名を
--bind_ip1 つ以上使用して66 を構成するか、 あるいは--bind_ip_allをtrueに設定します。