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

キーファイル認証からX.509認証へのアップグレードする

現在キーファイル認証を使用している自己管理型クラスターを X.509認証にアップグレードするには、次のローリング アップグレード プロセスを使用します。

注意

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

注意

MongoDB は、 net.ssl設定(および--sslコマンドライン オプション)に対応するnet.tls設定(および--tlsコマンドライン オプション)を提供します。 MongoDB は常に TLS 1.0以降をサポートしているため、新しいtls設定はssl設定と同じ機能を提供します。

このセクションの手順では、 tls設定とオプションを使用します。 ssl設定/オプションの使用手順については、「アップグレード手順( sslオプションの使用) 」を参照してください。

注意

この手順では、 tlsの設定とオプションを使用します。 ssl設定/オプションの使用手順については、「現在 TLS/SSL を使用しているクラスター( sslオプションを使用) 」を参照してください。

TLS/SSL と キーファイル認証を使用するクラスターの場合、X.509 クラスター認証にアップグレードするには、次のローリング アップグレード プロセスを使用します。

  1. クラスターの各ノードに対して、次の設定を構成ファイルに追加し、再起動します。

    • security.clusterAuthMode
      sendKeyFile に設定します。この設定値では、各ノードはノードとして認証するためにキーファイルを送信し続けます。ただし、各ノードは他のノードを認証するために、他のノードから キーファイル または X.509 証明書を受け取ることができます。
    • net.tls.clusterFile
      メンバーシップ認証用にノードの証明書鍵ファイルの適切なパスに設定します。 mongod / mongosは、このファイルをクラスターの他のノードに提示し、自分自身をノードとして識別します。

    その他のTLS/SSL オプションと特定の構成に適したその他のオプションを含めます。

    以下に例を挙げます。

    net: tls: mode: requireTLS certificateKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/caToValidateReceivedCertificates.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem"security: clusterAuthMode: sendKeyFile keyFile: /my/securely/located/membershipkeyreplication: replSetName: myReplicaSetnet: bindIp: localhost,mongodb0.example.net port: 27017systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: truestorage: dbPath: "/var/lib/mongodb"processManagement: fork: true

    続行する前に、クラスターのすべてのノードを更新して、 security.clusterAuthModeとnet.tls.clusterFile設定を含めます。

  2. Connect to each node and use the setParameter command to update the clusterAuthMode to sendX509. [1]

    db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } )

    sendX509 では、各ノードはnet.tls.clusterFileを送信して自分自身をメンバーとして認証します。ただし、各ノードは他のノードからキーファイルまたは X.509 証明書を受け取り、それらのノードを認証できます。

    続行する前に、クラスターのすべてのノードをこの設定にアップグレードします。

  3. Optional but recommended. Finally, for each node of the cluster, connect to the node and use the setParameter command to update the clusterAuthMode to x509 to only use the X.509 certificate for authentication. [1]

    db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } )
  4. すべてのノードをアップグレードした後、適切な X.509 設定を使用して構成ファイルを編集し、次回の再起動時にクラスターが X.509認証を使用するようにします。(例: )。

    net: tls: mode: requireTLS certificateKeyFile: /etc/ssl/mongodb.pem CAFile: /etc/ssl/caToValidateReceivedCertificates.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem"security.clusterAuthMode: x509replication: replSetName: myReplicaSetnet: bindIp: localhost,mongodb0.example.net port: 27017systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: truestorage: dbPath: "/var/lib/mongodb"processManagement: fork: true

Tip

構成ファイルの代わりにコマンドライン オプションを使用して mongod と mongos を設定することもできます。

注意

この手順では、 tlsオプションを使用します。 ssl設定/オプションの使用手順については、「現在 TLS/SSL を使用していないクラスター( sslオプションを使用) 」を参照してください。

キーファイル認証を使用するが TLS/SSL は使用しないクラスターの場合、X.509 メンバーシップ認証と TLS/SSL 接続にアップグレードするには次のようにします。

  1. クラスターの各ノードに対して、次の設定を構成ファイルに追加し、再起動します。

    • net.tls.mode
      をallowTLSに設定します。 この値により、ノードは TLS/SSL と TLS/SSL 以外の着信接続の両方を受け入れることができます。 送信接続では、TLS/SSL は使用されません。
    • net.tls.certificateKeyFile
      TLS/SSL 証明書と鍵が含まれるファイルのパスを設定します。 mongod / mongosは、インスタンスの ID を確立するためにこのファイルをクライアントに提示します。 TLS/SSL を使用する場合は必須です。
    • net.tls.clusterFile
      メンバーシップ認証用にノードの証明書鍵ファイルの適切なパスに設定します。 mongod / mongosは、このファイルをクラスターの他のノードに提示し、自分自身をノードとして識別します。
    • net.tls.CAFile
      受信した証明書を確認するため、証明書チェーンを含むファイルのパスに設定します。
    • security.clusterAuthMode
      sendKeyFile に設定します。これにより、各ノードは、ノードとして認証するためにキーファイルを送信し続けることができます。ただし、各ノードは他のノードを認証するために、他のノードから キーファイル または X.509 証明書を受け取ることができます。

    その他のTLS/SSL オプションと特定の構成に適したその他のオプションを含めます。

    以下に例を挙げます。

    net: tls: mode: allowTLS certificateKeyFile: /etc/ssl/mongodb.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem" CAFile: /etc/ssl/caToValidateReceivedCertificates.pemsecurity: clusterAuthMode: sendKeyFile keyFile: /my/securely/located/membershipkeyreplication: replSetName: myReplicaSetnet: bindIp: localhost,mongodb0.example.net port: 27017systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: truestorage: dbPath: "/var/lib/mongodb"processManagement: fork: true

    クラスターのすべてのノードを、 net.tls.mode 、 net.tls.certificateKeyFile 、 net.tls.clusterFile 、 security.clusterAuthModeを含むようにアップグレードします。

  2. Connect to each node and use the setParameter command [1] to:

    1. tlsModeをpreferSSLに更新します。 tlsModeをpreferTLSに設定すると、ノードは TLS/SSL と非 TLS/SSL 以外の受信接続の両方を受け入れ、その送信接続は TLS/SSL を使用します。

    2. clusterAuthMode を sendX509 に更新します。clusterAuthMode を sendX509 に設定すると、各ノードはnet.tls.clusterFile を送信して自分自身をメンバーとして認証します。ただし、各ノードは、それらのノードを認証するために、他のノードからの X.509 証明書のいずれかを引き続き受け入れます。

    db.adminCommand( { setParameter: 1, tlsMode: "preferTLS" } );db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } );

    続行する前に、クラスターのすべてのノードをこれらの設定にアップグレードします。

  3. すべてのノードをアップグレードした後、適切な TLS/SSL と X.509 設定を使用して構成ファイルを編集し、次回の再起動時にクラスターが X.509認証を使用するようにします。

    net: tls: mode: preferTLS certificateKeyFile: /etc/ssl/mongodb.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem" CAFile: /etc/ssl/caToValidateReceivedCertificates.pemsecurity: clusterAuthMode: sendX509replication: replSetName: myReplicaSetnet: bindIp: localhost,mongodb0.example.net port: 27017systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: truestorage: dbPath: "/var/lib/mongodb"processManagement: fork: true

    注意

    この時点で、

    • クラスター内のノードは TLS/SSL 接続を使用します。 ただし、ノードはクライアント アプリケーションから非 TLS/SSL 接続を受け入れることができます。

    • ノードは メンバーシップ認証のために X.509 証明書を送信しますが、他のノードから X.509 証明書またはキーファイルを受け入れて、他のノードのメンバーシップを検証できます。

    クライアントアプリケーションから TLS/SSL 接続を強制し、 メンバーシップ認証に X.509 のみを受け入れるようにするには、次のステップを参照してください。

  4. 任意ですが推奨します。メンバーシップ認証に TLS/SSL 接続のみと X.509 証明書のみを使用するようにすべてのノードを更新します。

    重要

    この TLS/SSL 接続要件は、すべての接続に適用されます。つまり、クライアントだけでなく、クラスターのノードとの接続にも適用されます。つまり、クライアントは TLS/SSL 接続を指定し、クラスターに接続する際に証明書鍵ファイルを提示する必要があります。TLS/SSL を使用した接続の詳細については、「TLS 対応レプリカセットへの接続」を参照してください。「クライアントが証明書を提示した場合のみ検証する」も参照してください。

    net.tls.modeをrequireTLSに、 security.clusterAuthModeをx509に更新します。

    以下に例を挙げます。

    net: tls: mode: requireTLS certificateKeyFile: /etc/ssl/mongodb.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem" CAFile: /etc/ssl/caToValidateReceivedCertificates.pemsecurity: clusterAuthMode: x509replication: replSetName: myReplicaSetnet: bindIp: localhost,mongodb0.example.net port: 27017systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: truestorage: dbPath: "/var/lib/mongodb"processManagement: fork: true

Tip

構成ファイルの代わりにコマンドライン オプションを使用して mongod と mongos を設定することもできます。

注意

MongoDB は、 net.ssl設定(および--sslコマンドライン オプション)に対応するnet.tls設定(および--tlsコマンドライン オプション)を提供します。 MongoDB は常に TLS 1.0以降をサポートしているため、新しいtls設定はssl設定と同じ機能を提供します。

このセクションの手順では、 sslオプションを使用します。 tlsオプションの使用手順については、「アップグレード手順( tlsオプションの使用) 」を参照してください。

注意

この手順では、 sslオプションを使用します。 tlsオプションを使用する手順については、「現在 TLS/SSL を使用しているクラスター( sslオプションを使用) 」を参照してください。

TLS/SSL と キーファイル認証を使用するクラスターの場合、X.509 クラスター認証にアップグレードするには、次のローリング アップグレード プロセスを使用します。

  1. クラスターの各ノードで、オプション--clusterAuthModeをsendKeyFileに設定し、オプション--sslClusterFileをノードの証明書の適切なパスに設定してノードを起動します。 TLS/SSL オプションや、特定の構成に必要なその他のオプションを含めます。 例:

    mongod --replSet <name> --sslMode requireSSL --clusterAuthMode sendKeyFile --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 証明書のいずれかを受け入れることができるようになりました。クラスターのすべてのノードをこの設定にアップグレードします。

  2. Then, for each node of a cluster, connect to the node and use the setParameter command to update the clusterAuthMode to sendX509. [1] For example,

    db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } )

    この設定では、各ノードは、前のステップで --sslClusterFile オプションで指定された X.509 証明書を使用して、自分自身をメンバーとして認証します。ただし、各ノードは、それらのノードを認証するために、他のノードからの X.509 証明書のいずれかを引き続き受け入れます。クラスターのすべてのノードをこの設定にアップグレードします。

  3. Optional but recommended. Finally, for each node of the cluster, connect to the node and use the setParameter command to update the clusterAuthMode to x509 to only use the X.509 certificate for authentication. [1] For example:

    db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } )
  4. すべてのノードをアップグレードした後、適切な X.509 設定を使用して構成ファイルを編集し、次回の再起動時にクラスターが X.509認証を使用するようにします。

さまざまなモードとその説明については、 --clusterAuthModeを参照してください。

注意

この手順では、 sslオプションを使用します。 tlsオプションを使用する手順については、「キーファイルを使用して TLS/SSL を使用しないクラスターの更新( tlsオプションを使用) 」を参照してください。

キーファイル認証を使用するが TLS/SSL は使用しないクラスターの場合、X.509認証にアップグレードするには、次のローリング アップグレード プロセスを使用します。

  1. クラスターの各ノードで、オプション--sslModeをallowSSLに設定し、オプション--clusterAuthModeをsendKeyFileに設定し、オプション--sslClusterFileをノードの証明書の適切なパスに設定してノードを起動します。 TLS/SSL オプションや、特定の構成に必要なその他のオプションを含めます。 例:

    mongod --replSet <name> --sslMode allowSSL --clusterAuthMode sendKeyFile --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)>

    --sslMode allowSSL設定の場合、ノードは TLS/SSL と非 TLS/SSL 受信接続の両方を受け入れることができます。 ノードの送信接続では、TLS/SSL は使用されません。

    --clusterAuthMode sendKeyFile 設定により、各ノードは引き続きキーファイルを使用して自分自身をメンバーとして認証できます。ただし、各ノードは他のノードを認証するために、キーファイルまたは X.509 証明書のいずれかを受け入れることができるようになりました。

    クラスターのすべてのノードをこれらの設定にアップグレードします。

  2. Then, for each node of a cluster, connect to the node and use the setParameter command to update the sslMode to preferSSL and the clusterAuthMode to sendX509. [1] For example:

    db.adminCommand( { setParameter: 1, sslMode: "preferSSL", clusterAuthMode: "sendX509" } )

    sslModeをpreferSSLに設定すると、ノードは TLS/SSL と非 TLS/SSL 以外の受信接続の両方を受け入れ、送信接続は TLS/SSL を使用します。

    clusterAuthMode を sendX509 に設定すると、各ノードは、前のステップで --sslClusterFile オプションで指定された X.509 証明書を使用して、自分自身をメンバーとして認証します。ただし、各ノードは、それらのノードを認証するために、他のノードからのキーファイルまたは X.509 証明書のいずれかを引き続き受け入れます。

    クラスターのすべてのノードをこれらの設定にアップグレードします。

  3. Optional but recommended. Finally, for each node of the cluster, connect to the node and use the setParameter command to update the sslMode to requireSSL and the clusterAuthMode to x509. [1] For example:

    db.adminCommand( { setParameter: 1, sslMode: "requireSSL", clusterAuthMode: "x509" } )

    sslModeをrequireSSLに設定すると、ノードは TLS/SSLs 接続のみを使用します。

    clusterAuthMode を x509 に設定すると、ノードは認証に X.509 証明書のみを使用します。

  4. すべてのノードをアップグレードした後、適切な TLS/SSL と X.509 設定を使用して構成ファイルを編集し、次回の再起動時にクラスターが X.509認証を使用するようにします。

さまざまなモードとその説明については、 --clusterAuthModeを参照してください。

[1](1, 2, 3, 4, 5, 6, 7) As an alternative to using the setParameter command, you can also restart the nodes with the appropriate TLS/SSL and x509 options and values.