Docs Menu
Docs Home
/
MongoDBマニュアル
/ / / /

x を使用します。自己管理型 MongoDB によるメンバーシップ認証の509証明書

項目一覧

  • x.509 メンバー証明書
  • レプリカセット/シャーディングされたクラスターの構成
  • 詳細情報

MongoDB は x をサポートしています。安全な TLS/SSL 接続で使用する509証明書認証。 シャーディングされたクラスター ノードとレプリカセット ノードは x を使用できます。 509証明書を使用して、キーファイル を使用する代わりにクラスターまたはレプリカセットへの メンバーシップを確認します 。 メンバーシップ認証は内部プロセスです。

注意

MongoDB は、TLS 1.1 + が利用可能なシステムで TLS 1.0暗号化のサポートを無効にします。

内部認証を有効にすると、 自己管理型配置でのロールベースのアクセス制御も有効になります。 配置で接続して操作を実行するには、クライアントは ユーザーとして認証する必要があります。

  • 配置にユーザーを追加する手順については、「 自己管理型配置でのユーザーとロールの管理」チュートリアルを参照してください。

  • 509x を使用する 」を参照してください。 x の使用手順については 、「 自己管理型配置でクライアントを認証するための509 証明書 」のチュートリアルを参照してください。ユーザー認証用の 証明書。

重要

TLS/SSL、PKI(公開キー暗号基盤)証明書、特に x.509 証明書と証明機関の詳細な説明は、このドキュメントの範囲外になります。このチュートリアルでは、TLS/SSL に関する事前の知識と、有効な x.509 証明書にアクセスできることを前提としています。

注意

有効な x.509 証明書が必要です。

--tlsAllowInvalidCertificatesまたはnet.tls.allowInvalidCertificates: trueを指定した場合、無効な証明書は TLS 接続を確立するには十分ですが、認証には不十分です。

メンバー証明書を使用して、シャーディングされたクラスターまたはレプリカセットへのメンバーシップを検証します。メンバー証明書ファイルのパスは net.tls.clusterFile オプションおよび net.tls.certificateKeyFile オプションで構成されます。メンバーには次の構成要件があります。

  • クラスター ノードの設定では、認証に使用される属性の少なくとも 1 つに空でない値を指定する必要があります。デフォルトで MongoDB は次のものを受け入れます。

    • 組織 (O)

    • 組織単位 (OU)

    • ドメインコンポーネント (DC)

    net.tls.clusterAuthX509.extensionValue を設定することで、認証に使用する代替属性を指定できます。

  • クラスター ノード設定には同じ net.tls.clusterAuthX509.attributes を含み、一致する値を使用する必要があります。属性の順序は関係ありません。次の例えでは OOU を設定しますが、 DC は設定しません。

    net:
    tls:
    clusterAuthX509:
    attributes: O=MongoDB, OU=MongoDB Server

注意

enforceUserClusterSeparationパラメータを無効にすると、次の動作が適用されます。

  • 構成ファイルでclusterAuthModekeyFileの場合、 O/OU/DCチェックは無効になります。 これにより、メンバー証明書を持つクライアントは、 $externalデータベースに保存されているユーザーとして認証できるようになります。

  • 構成ファイルでclusterAuthModekeyFileでない場合、サーバーは起動しません。

enforceUserClusterSeparationパラメータをfalseに設定すると、サーバーは、アプリケーションが認証に使用するクライアント証明書と、特権アクセス権を持つクラスター内証明書を区別しません。 これは、 clusterAuthModekeyFileである場合、効果はありません。 ただし、 clusterAuthModex509の場合、許可されたスキームを使用するユーザー証明書はクラスター証明書と複合化され、特権アクセスが付与されます。

次の操作を行うと、既存の証明書に内部特権が付与されます。

  1. このパラメーターで許可された名前を持つユーザーを作成します。

  2. enforceUserClusterSeparationパラメータをfalseに設定します。

  3. clusterAuthModex509に設定します。

enforceUserClusterSeparationフラグによって作成が許可された昇格特権を持つユーザーを削除したことを検証せずに、 keyFileからx509にアップグレードすることはできません。

enforceUserClusterSeparationパラメータをfalseに設定するには、起動時に次のコマンドを実行します。

mongod --setParameter enforceUserClusterSeparation=false

証明書には次の要件があります。

  • 単一の認証局 (CA) が、シャーディングされたクラスターまたはレプリカセットのノードすべての x.509 証明書を発行する必要があります。

  • サブジェクト代替名 (SAN) エントリの少なくとも 1 つは、他のクラスター ノードが使用するサーバー ホスト名と一致する必要があります。SAN を比較する際に、MongoDB は DNS 名または IP アドレスのいずれかを比較できます。

    subjectAltNameを指定しない場合、MongoDB は代わりに共通名(CN)を比較します。 ただし、CN のこの使用は RFC に従って非推奨となります。2818

  • certificateKeyFile として使用される証明書に extendedKeyUsage が含まれている場合、値には clientAuth(「TLS Web クライアント認証」)と serverAuth(「TLS Web サーバー認証」)の両方を含める必要があります。

    extendedKeyUsage = clientAuth, serverAuth
  • clusterFile として使用される証明書に extendedKeyUsage が含まれている場合、値には clientAuth が含まれている必要があります。

    extendedKeyUsage = clientAuth

ローリング アップグレード手順以外では、レプリカセットまたはシャーディングされたクラスターのすべてのコンポーネントは、配置内の他のすべてのコンポーネントに安全に接続できるようにするために、同じ--clusterAuthMode 設定を使用する必要があります。

レプリカセットの配置の場合、これにはレプリカセットのすべてのmongodメンバーが含まれます。

シャーディングされたクラスターの配置の場合、これにはすべてのmongodまたはmongosインスタンスが含まれます。

注意

mongodmongos は、デフォルトで localhost にバインドされます。配置のノードが異なるホスト上で実行されている場合、またはリモート クライアントを配置に接続する場合は、--bind_ip または net.bindIp を指定する必要があります。

注意

このセクションの手順では、 tls設定/オプションを使用します。 非推奨のsslエイリアスの使用手順については、「コマンドライン オプションの使用( ssl )」を参照してください。

MongoDB では常に TLS 1.0 以降をサポートしているため、 tlsの設定/オプションはsslオプションと同じ機能を提供します。

mongod --replSet <name> --tlsMode requireTLS --clusterAuthMode x509 --tlsClusterFile <path to membership certificate and key PEM file> --tlsCertificateKeyFile <path to TLS/SSL certificate and key file> --tlsCAFile <path to root CA file> --bind_ip localhost,<hostname(s)|ip address(es)>

重要

x.509 認証を使用する場合、--tlsCertificateSelector または --net.tls.certificateSelector を使用しない限り、--tlsCAFile または net.tls.CAFile を指定する必要があります。

特定の構成に必要な追加オプション(TLS/SSL など)を含めます。 について

security:
clusterAuthMode: x509
net:
tls:
mode: requireTLS
certificateKeyFile: <path to its TLS/SSL certificate and key file>
CAFile: <path to root CA PEM file to verify received certificate>
clusterFile: <path to its certificate key file for membership authentication>
bindIp: localhost,<hostname(s)|ip address(es)>

重要

x.509 認証を使用する場合、--tlsCertificateSelector または --net.tls.certificateSelector を使用しない限り、--tlsCAFile または net.tls.CAFile を指定する必要があります。

特定の構成に必要な追加オプション(TLS/SSL など)を含めます。

詳しくは、「 TLS/SSL 用にmongodmongosを構成する 」を参照してください。

注意

このセクションの手順では、非推奨のssl設定とオプションを使用します。 tlsエイリアスの使用手順については、「コマンドライン オプションの使用( tls )」を参照してください。

MongoDB では常に TLS 1.0 以降をサポートしているため、 tlsの設定/オプションはsslオプションと同じ機能を提供します。

内部クラスター メンバー認証に x.509 証明書を指定するには、レプリカセットのメンバーの次の例のように、追加の TLS/SSL オプション--clusterAuthMode--sslClusterFileを追加します。

mongod --replSet <name> --sslMode requireSSL --clusterAuthMode x509 --sslClusterFile <path to membership certificate and key PEM file> --sslPEMKeyFile <path to TLS/SSL certificate and key PEM file> --sslCAFile <path to root CA PEM file> --bind_ip localhost,<hostname(s)|ip address(es)>

重要

x.509 認証を使用する場合、--tlsCertificateSelector または --net.tls.certificateSelector を使用しない限り、--tlsCAFile または net.tls.CAFile を指定する必要があります。

特定の構成に必要な追加オプション(TLS/SSL など)を含めます。

security:
clusterAuthMode: x509
net:
ssl:
mode: requireSSL
PEMKeyFile: <path to TLS/SSL certificate and key PEM file>
CAFile: <path to root CA PEM file>
clusterFile: <path to x.509 membership certificate and key PEM file>
bindIp: localhost,<hostname(s)|ip address(es)>

重要

x.509 認証を使用する場合、--tlsCertificateSelector または --net.tls.certificateSelector を使用しない限り、--tlsCAFile または net.tls.CAFile を指定する必要があります。

特定の構成に必要な追加オプション(TLS/SSL など)を含めます。

詳しくは、「 TLS/SSL 用にmongodmongosを構成する 」を参照してください。

キーファイルによる内部認証から x にアップグレードします。 509内部認証については、「自己管理型 MongoDB をキーファイル認証から x にアップグレードする 」を参照してください。 509認証。

異なるDNを使用して新しい証明書に、証明書のローリング アップデートを実行するには、「 x のローリング アップデート 」を参照してください。自己管理型クラスター上の新しい識別名を含む509証明書

戻る

シャーディングされたクラスターキーのローテーション