このページでは、Kubernetes Operator 用 MongoDB Controllers を使用して MongoDB Search とベクトル検索を実行する際に、mongod (または mongos)が mongot に対して開く接続の TLS を構成する方法について説明します。この接続では、mongot がリスンサーバーを実行し、mongod がクライアントです。これは、MongoDBSearch リソースの spec.security.tls ブロックを介して構成します。
このページでは、mongot mongodがデータの取得元として に開く接続については説明していません。この方向については、mongot がどのように認証し、取得元 mongod の証明書をどのように信頼するかを含め、「検索から MongoDB への接続を保護する」を参照してください。
このページで参照されている各 MongoDBSearch 設定の完全なスキーマについては、「MongoDB Search およびベクトル検索設定」を参照してください。
TLS モード
mongot リスンサーバーは、次の 3 つの概念モードをサポートします。
モード | 動作 |
|---|---|
disabled | リスンサーバーはプレーンテキスト接続のみを受け付けます。 |
TLS | リステン サーバーには |
mTLS | リスンサーバーには TLS が必要であり、クライアント ( |
Kubernetes 演算子は、この構成を単一のspec.security.tlsブロックとして表示します。ソースmongodもTLSを使用する場合、リスンサーバーはmTLSモードで実行する。この場合、mongotは、spec.security.tlsで構成されたCAではなく、ソースmongodのCAに対してクライアント証明書を検証します。この信頼を構成するには、「検索からMongoDBへの接続の保護」を参照してください。
リスンサーバー証明書の構成
mongot リステンサーバーで TLS を有効にするには、MongoDBSearch リソースで spec.security.tls.certsSecretPrefix を設定します。Kubernetes 演算子は、名前プレフィックスにより、同じ名前空間の Kubernetes Secret リソースから TLS マテリアルを検索します。
spec: security: tls: certsSecretPrefix: my-mongot
上記の接頭辞を使用して、Kubernetes 演算子は接頭辞に固定サフィックスを追加することで TLS シークレット名を導出します。レプリカセットの場合、<name> が MongoDBSearch リソースの metadata.name であるシークレット my-mongot-<name>-search-cert から tls.crt と tls.key のペアを読み取ります。シャーディングされたクラスター配置を含むすべての名前パターンについては、spec.security.tls.certsSecretPrefix を参照してください。mTLS モードでは、mongot が mongod のクライアント証明書を検証するために使用する CA は、spec.security.tls ではなく、ソース mongod の TLS 構成から取得されます。検索から MongoDB への接続を保護する。を参照してください。
注意
spec.security.tls.certsSecretPrefix 新しい配置におすすめのフィールドです。レガシー spec.security.tls.certificateKeySecretRef.name フィールドは今でもサポートされており、同じ MongoDBSearch リソースに両方が設定されている場合は優先されます。レガシー フィールドの既存の配置は、変更なしで引き続き機能します。
既知の制限
mongot TLS には次の制限が適用されます。
構成可能な暗号スイートはありません。
mongotが交渉する暗号スイートは、MongoDBSearchCRD またはmongot構成を介しては構成できません。このセットは、mongotに付属する値に固定されています。FIPS はサポートされていません。
mongotこのリリースではFIPS検証済みのTLSモードは提供されていません。リステンサーバーでのホスト名または SAN 検証はありません。
mongot着信したクライアント証明書が信頼されたCAによって署名されていることは検証しますが、証明書のサブジェクトホスト名やSANエントリは検証しません。リッスンパスでの認証は、証明機関および「SearchからMongoDBへの接続をセキュアにする」で構成されたX.509識別名(DN)承認に基づきます。最低 TLS バージョンは 1.2です。
mongotTLS 1.0 または 1.1 接続は受け付けません。
TLS マテリアルのローテーションは、クライアント証明書のローテーションと同じフローです。参照されている Secret を更新し、mongot ポッドを再起動します。手順については、「検索から MongoDB への接続を保護する」を参照してください。
警告
実行中の配置でTLSを有効にすると、短時間ではありますが、実際に停止が発生します。これはシームレスな変更ではありません。mongotのgRPCリスナーはバイナリです。プレーンテキストかTLSのいずれか一方を受け入れますが、両方を受け入れることはありません。無効からTLSに切り替えると、mongotとmongodのsearchTLSModeが一緒にロールされ、切り替え中は新しい検索クエリが一時的に失敗します。既にTLSが有効になっている配置で証明書をローテートしても、リスナーモードは変わらないため、このギャップは発生しません。初期TLS有効化のメンテナンスウィンドウを計画します。