このページでは、 Kubernetes演算子用のMongoDBドライバーでMongoDB Search とベクトル検索を実行するときに mongod(またはmongos )が に開く接続に対して TLS を構成する方法について説明します。この接続では、mongotmongot mongodは listenサーバーを実行し、 はクライアントです。これは、spec.security.tls MongoDBSearchリソースの ブロックを通じて構成します。
このページでは、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有効化のメンテナンスウィンドウを計画します。