AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

自己管理型配置の TLS 構成を計画する

TLS は、クライアントとMongoDBデプロイ、およびレプリカセット内のノード間の接続を暗号化します。 TLS を設定する前に、このページを使用して、セキュリティ要件に一致する構成を決定してください。

重要

これらの手順は、自己管理型MongoDB配置に適用されます。 MongoDB Atlasクラスターはデフォルトで TLS を使用します。 Cloud Managerまたは Ops Manager を使用する場合は、配置管理ツールを通じて TLS を構成します。

TLS 構成を計画する前に、次のリソースと情報があることを確認してください。

  • TLS で構成する自己管理型 MongoDB レプリカセット。

  • パブリック CA やプライベート CA など、使用可能な証明機関のタイプ。

  • X.509 認証が必要かどうかなどのセキュリティ要件。

アクセスできる CA の種類によって、利用可能な TLS 構成が決まります。

CA タイプ
説明
推奨される使用

パブリック CA

  • 登録されたドメイン名が必要です

  • Does not support clientAuth EKU (as of April 2026)

mTLS または X.509 認証なしでクラスター内 TLS 暗号化

プライベート CA

  • 組織の PKI によって内部で操作されます

  • serverAuthclientAuth EKU の両方をサポート

クラスター内 mTLS および X.509 ノード認証

自己署名

  • 証明書を生成します

  • CA 発行の証明書ほど信頼性の高い認証はできません

  • 本番環境では使用しないでください

ローカル開発とテストのみ

次のセクションでは、レプリカセット内のノード間、およびクライアントとサーバー間の TLS 暗号化と認証を構成する方法を決定するのに役立ちます。

TLS およびノード間のキーファイル認証、およびサーバーとクライアント間の相互 TLS および X.509 認証を使用した TLS 有効な配置の図。

ノード間のクラスター内 TLS とキーファイル認証、クライアントとサーバー間の相互 TLS と X.509 認証を使用した配置の例。

クリックして拡大します

すべての TLS 対応配置では、ノード間の接続が暗号化されます。また、クラスター内 mTLS を有効にすることもできます。これには、TLS ハンドシェイク中にノードがクライアントとして認証するために証明書を提示する必要があります。ノードは着信接続を受け入れる際に、接続側が ID を確認できるようにサーバー証明書を提示します。ノードが別のノードにアウトバウンド接続を行う場合、その動作はクラスター内 mTLS を有効にしているかどうかによって異なります。

各暗号化モードに必要な操作を決定するには、次の表を使用します。

暗号化モード
システム要件

mTLS を使用しないクラスター内 TLS

  • serverAuth EKU のみを持つサーバー証明書(あらゆる CA タイプから発行されたもの)

クラスター内 mTLS

  • 任意の CA タイプによって発行された、serverAuth EKU を持つサーバー証明書

  • プライベート CA が発行した clientAuth EKU を持つクライアント証明書

クラスター内 mTLS を使用しない場合、ノードはアウトバウンド接続でクライアントとして認証するための証明書を提示しません。接続ノードは受信ノードのサーバー証明書を検証しますが、受信ノードはTLS ハンドシェイクを通じて接続ノードの ID を検証しません。公開 CA など、serverAuth EKU でのみ証明書を取得できる場合は、この構成を使用します。この構成では、ノード間で X.509認証を有効にすることはできません。

クラスター内 mTLS では、各ノードは他のノードへの発信接続でも証明書を提示し、相互認証を提供します。クラスター内 mTLS は、X.509 ノード認証を使用するのに必要です。ただし、clientAuth EKU を持つ証明書が必要なため、プライベート CA へのアクセスが必要です。

レプリカセットのノードは、認可されたノードのみがレプリケーションに参加することを確認するために相互に認証します。デフォルトでは、承認が有効になっているレプリカセットは、ノード間のキーファイル認証を使用します。ただし、クラスター内 mTLS を有効にすると、代わりに X.509 証明書認証を使用できます。

次の表を使用して、各認証モードに必要なものを決定します。

認証モード
システム要件

キーファイル認証

  • すべてのノードで共有されたキーファイル

X.509 ノード認証

  • クラスター内 mTLS の有効化

  • プライベート CA が発行した clientAuth EKU を持つクライアント証明書

キーファイル認証を使用する場合、すべてのレプリカセットのノードはキーファイルに保存された 1 つの共有シークレットを共有します。各ノードは、セット内の他のノードに接続する際に共有シークレットを提示することで、メンバーシップを証明します。すべてのノードが同じキーを共有しているため、個別のノードのアクセスを取り消したい場合は、すべてのノードでキーファイルを置き換える必要があります。

X.509 認証では、各ノードのクラスター証明書を使用してメンバーシップを確認します。証明書の交換は TLS ハンドシェイク中に行われるため、X.509 ノード認証には、ノードが相互に身元を確認するためのクラスター内 mTLS が必要です。各ノードの一意の証明書身元により、証明書を取消することで個別のノードのアクセスを取消できますが、他のノードには影響しません。さらに、認証と暗号化は単一のハンドシェイクで同時に確立されます。

クラスターノードの証明書には、通常のクライアント証明書と区別するX.509 属性を含める必要があります。必要な証明書属性について学ぶには、ノードX.509 証明書を参照してください。

mongoshやドライバーなどのクライアントがTLSmongod 対応の インスタンスに接続すると、サーバーはID を証明するために証明書を提示し、クライアントはその証明書を信頼できる CA 証明書と照合します。また、クライアントは、サーバーのホスト名が証明書のホスト名と一致することも確認します。検証に成功すると、TLS はサーバーとクライアントの間の接続を暗号化します。

各暗号化モードに必要な操作を決定するには、次の表を使用します。

接続モード
システム要件

クライアント証明書のない TLS

mongod/mongos 構成ファイルで allowConnectionsWithoutCertificatestrue に設定します

相互 TLS または X.509 クライアント認証

クライアントは clientAuth EKU を持つ証明書を提示する必要があります

allowConnectionsWithoutCertificatestrueに設定すると、クライアントは証明書を送信せずに接続できます。これを有効にすると、serverAuth EKU のみを含む証明書など、不正な証明書を使用してのユーザーの接続が防止されます。サーバーは接続を暗号化し、クライアントに共有される自身のアイデンティティを証明しますが、サーバーは TLS ハンドシェイクを通じてクライアントのアイデンティティを検証できません。クライアントは SCRAM のような方法で認証する必要があります。

クライアントがハンドシェイク中に独自の証明書を提示した場合、サーバーは信頼できる CA に対してクライアント証明書を検証できます。これにより、サーバーとクライアント間で相互 TLS が確立されます。クライアントとサーバー間で X.509 クライアント認証を有効にするには、クライアントが証明書を提示する必要があります。

TLS 接続を確立した後、クライアントは配置にアクセスするために認証する必要があります。クライアントは様々な方法で認証できますが、このクイックスタートでは SCRAM と X.509 認証について説明します。

次の表を使用して、各認証モードに必要なものを決定します。

認証モード
システム要件

SCRAM 認証

  • クラスターの管理者アカウント

X.509 クライアント認証

  • クライアントとサーバー間の相互 TLS

  • clientAuth EKU の証明書

  • プライベート CA へのアクセス

MongoDB はデフォルトのクライアント認証メカニズムとして SCRAM を使用します。クライアントは、ユーザー名、パスワード、および認証データベースを提供し、MongoDB は指定されたデータベース内のユーザーに対して認証情報を検証します。SCRAM では、TLS ハンドシェイク中にクライアントが証明書を提示する必要はありません。

X.509 クライアント認証では、接続時にクライアントが提示する証明書を使用します。相互 TLS が確立されると、クライアントは MONGODB-X509 メカニズムを使用して $external データベースに認証します。MongoDB は証明書のサブジェクト フィールドを $external データベースのユーザーにマップします。

このページを使用して構成を決定したら、続いてTLS サーバー証明書を取得に進んでください。