現在キーファイル認証を使用しているクラスターを x にアップグレードする方法。 509認証には、次のローリング アップグレード プロセスを使用します。
注意
MongoDB は、TLS 1.1 + が利用可能なシステムで TLS 1.0暗号化のサポートを無効にします。
アップグレード手順(tls オプションを使用)
注意
MongoDB は、 net.ssl設定(および--sslコマンドライン オプション)に対応するnet.tls設定(および--tlsコマンドライン オプション)を提供します。 MongoDB は常に TLS 1.0以降をサポートしているため、新しいtls設定はssl設定と同じ機能を提供します。
このセクションの手順では、 tls設定とオプションを使用します。 ssl設定/オプションの使用手順については、「アップグレード手順( sslオプションの使用) 」を参照してください。
tlsTLS/SSL とキーファイルを使用したクラスターのアップグレード( オプションを使用)
注意
この手順では、 tlsの設定とオプションを使用します。 ssl設定/オプションの使用手順については、「現在 TLS/SSL を使用しているクラスター( sslオプションを使用) 」を参照してください。
TLS/SSL とキーファイル認証を使用するクラスターの場合、x.509 クラスター認証にアップグレードするには、次のローリング アップグレード プロセスを使用します。
クラスターの各ノードに対して、次の設定を構成ファイルに追加し、再起動します。
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/membershipkey replication: replSetName: myReplicaSet net: bindIp: localhost,mongodb0.example.net port: 27017 systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true 続行する前に、クラスターのすべてのノードを更新して、
security.clusterAuthModeとnet.tls.clusterFile設定を含めます。各ノードに接続し、
setParameterコマンドを使用してclusterAuthModeをsendX509に更新します。 [1]db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } ) sendX509では、各ノードはnet.tls.clusterFileを送信して自分自身をメンバーとして認証します。 ただし、各ノードは他のノードを認証するために、他のノードから キーファイル または x.509 証明書のいずれかを受け取ることができます。続行する前に、クラスターのすべてのノードをこの設定にアップグレードします。
任意ですが推奨します。 最後に、クラスターの各ノードで、ノードに接続し、
setParameterコマンドを使用してclusterAuthModeをx509に更新し、認証に x.509 証明書のみを使用するようにします。 [1]db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } ) すべてのノードをアップグレードした後、適切な 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: x509 replication: replSetName: myReplicaSet net: bindIp: localhost,mongodb0.example.net port: 27017 systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true
Tip
構成ファイルの代わりにコマンドライン オプションを使用して mongod と mongos を設定することもできます。
mongodについては、 ---tlsMode---tlsCertificateKeyFile---tlsCAFile---tlsClusterFile---clusterAuthModeを参照してください。mongosについては、 ---tlsMode---tlsCertificateKeyFile---tlsCAFile---tlsClusterFile---clusterAuthModeを参照してください。
キーファイルを使用するが TLS/SSL を使用しないクラスターの更新(tls オプションを使用)
注意
この手順では、 tlsオプションを使用します。 ssl設定/オプションの使用手順については、「現在 TLS/SSL を使用していないクラスター( sslオプションを使用) 」を参照してください。
キーファイル認証を使用するが TLS/SSL は使用しないクラスターの場合、x.509 メンバーシップ認証と TLS/SSL 接続にアップグレードするには、以下を実行します。
クラスターの各ノードに対して、次の設定を構成ファイルに追加し、再起動します。
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.pem security: clusterAuthMode: sendKeyFile keyFile: /my/securely/located/membershipkey replication: replSetName: myReplicaSet net: bindIp: localhost,mongodb0.example.net port: 27017 systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true クラスターのすべてのノードを、
net.tls.mode、net.tls.certificateKeyFile、net.tls.clusterFile、security.clusterAuthModeを含むようにアップグレードします。各ノードに接続し、
setParameterコマンド[1]を使用して次の操作を行います。tlsModeをpreferSSLに更新します。tlsModeをpreferTLSに設定すると、ノードは TLS/SSL と非 TLS/SSL 以外の受信接続の両方を受け入れ、その送信接続は TLS/SSL を使用します。clusterAuthModeをsendX509に更新します。clusterAuthModeをsendX509に設定すると、各ノードはnet.tls.clusterFileを送信して自分自身をメンバーとして認証します。 ただし、各ノードは、それらのノードを認証するために、他のノードからキーファイルまたは x.509 証明書のいずれかを引き続き受け入れます。
db.adminCommand( { setParameter: 1, tlsMode: "preferTLS" } ); db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } ); 続行する前に、クラスターのすべてのノードをこれらの設定にアップグレードします。
すべてのノードをアップグレードした後、適切な TLS/SSL と x.509 設定で構成ファイルを編集し、次回の再起動時にクラスターが x.509 認証を使用するようにします。
net: tls: mode: preferTLS certificateKeyFile: /etc/ssl/mongodb.pem clusterFile: "/etc/ssl/myReplMembershipCertificateKeyFile.pem" CAFile: /etc/ssl/caToValidateReceivedCertificates.pem security: clusterAuthMode: sendX509 replication: replSetName: myReplicaSet net: bindIp: localhost,mongodb0.example.net port: 27017 systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true 注意
この時点で、
クラスター内のノードは TLS/SSL 接続を使用します。 ただし、ノードはクライアント アプリケーションから非 TLS/SSL 接続を受け入れることができます。
ノードはメンバーシップ認証のために x.509 証明書を送信しますが、他のノードから x.509 証明書またはキーファイルを受け入れて、他のノードのメンバーシップを検証できます。
クライアント アプリケーションから TLS/SSL 接続を強制し、メンバーシップ認証に x.509 のみを受け入れるようにするには、次の手順を参照してください。
任意ですが推奨します。 メンバーシップ認証に
TLS/SSL接続のみと x.509 証明書のみを使用するようにすべてのノードを更新します。重要
この TLS/SSL 接続要件はすべての接続に適用されます。つまり、クライアントとクラスターのノードの両方で同期されます。 つまり、クライアントは TLS/SSL 接続を指定し、クラスターに接続するときに証明書鍵ファイルを提示する必要があります。 TLS/SSL を使用した接続の詳細については、「クライアント証明書を必要とする MongoDB インスタンスへの接続」を参照してください。 「クライアントが証明書を提示した場合のみ検証する 」も参照してください。
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.pem security: clusterAuthMode: x509 replication: replSetName: myReplicaSet net: bindIp: localhost,mongodb0.example.net port: 27017 systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: dbPath: "/var/lib/mongodb" processManagement: fork: true
Tip
構成ファイルの代わりにコマンドライン オプションを使用して mongod と mongos を設定することもできます。
mongodについては、 ---tlsMode---tlsCertificateKeyFile---tlsCAFile---tlsClusterFile---clusterAuthModeを参照してください。mongosについては、 ---tlsMode---tlsCertificateKeyFile---tlsCAFile---tlsClusterFile---clusterAuthModeを参照してください。
アップグレード手順(ssl オプションを使用)
注意
MongoDB は、 net.ssl設定(および--sslコマンドライン オプション)に対応するnet.tls設定(および--tlsコマンドライン オプション)を提供します。 MongoDB は常に TLS 1.0以降をサポートしているため、新しいtls設定はssl設定と同じ機能を提供します。
このセクションの手順では、 sslオプションを使用します。 tlsオプションの使用手順については、「アップグレード手順( tlsオプションの使用) 」を参照してください。
現在 TLS/SSL を使用しているクラスター(ssl オプションを使用)
注意
この手順では、 sslオプションを使用します。 tlsオプションを使用する手順については、「現在 TLS/SSL を使用しているクラスター( sslオプションを使用) 」を参照してください。
TLS/SSL とキーファイル認証を使用するクラスターの場合、x.509 クラスター認証にアップグレードするには、次のローリング アップグレード プロセスを使用します。
クラスターの各ノードで、オプション
--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 証明書のいずれかを受け入れることができるようになりました。 クラスターのすべてのノードをこの設定にアップグレードします。
次に、クラスターの各ノードで、ノードに接続し、
setParameterコマンドを使用してclusterAuthModeをsendX509に更新します。 [1]たとえば、db.adminCommand( { setParameter: 1, clusterAuthMode: "sendX509" } ) この設定では、各ノードは x を使用します。前の手順で
--sslClusterFileオプションで指定された509証明書を使用して、自分自身をメンバーとして認証します。 ただし、各ノードは引き続きキーファイルまたは x のいずれかを受け入れます。他のノードからの509証明書を使用して、それらのノードを認証します。 クラスターのすべてのノードをこの設定にアップグレードします。任意ですが推奨します。 最後に、クラスターの各ノードで、ノードに接続し、
setParameterコマンドを使用してclusterAuthModeをx509に更新し、認証に x.509 証明書のみを使用するようにします。 [1]たとえば次のとおりです。db.adminCommand( { setParameter: 1, clusterAuthMode: "x509" } ) すべてのノードをアップグレードした後、適切な x.509 設定で構成ファイルを編集し、次回の再起動時にクラスターが x.509 認証を使用するようにします。
さまざまなモードとその説明については、 --clusterAuthModeを参照してください。
現在 TLS/SSL を使用していないクラスター(ssl オプションを使用)
注意
この手順では、 sslオプションを使用します。 tlsオプションを使用する手順については、「キーファイルを使用して TLS/SSL を使用しないクラスターの更新( tlsオプションを使用) 」を参照してください。
キーファイル認証を使用するが TLS/SSL は使用しないクラスターの場合、x.509 認証にアップグレードするには、次のローリング アップグレード プロセスを使用します。
クラスターの各ノードで、オプション
--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 証明書のいずれかを受け入れることができるようになりました。クラスターのすべてのノードをこれらの設定にアップグレードします。
次に、クラスターの各ノードで、ノードに接続し、
setParameterコマンドを使用して、sslModeをpreferSSLに、clusterAuthModeをsendX509に更新します。 [1]たとえば次のとおりです。db.adminCommand( { setParameter: 1, sslMode: "preferSSL", clusterAuthMode: "sendX509" } ) sslModeをpreferSSLに設定すると、ノードは TLS/SSL と非 TLS/SSL 以外の受信接続の両方を受け入れ、送信接続は TLS/SSL を使用します。clusterAuthModeをsendX509に設定すると、各ノードは x を使用します。前の手順で--sslClusterFileオプションで指定された509証明書を使用し、自分自身をメンバーとして認証します。 ただし、各ノードは引き続きキーファイルまたは x のいずれかを受け入れます。他のノードからの509証明書を使用して、それらのノードを認証します。クラスターのすべてのノードをこれらの設定にアップグレードします。
任意ですが推奨します。 最後に、クラスターの各ノードで、ノードに接続し、
setParameterコマンドを使用して、sslModeをrequireSSLに、clusterAuthModeをx509に更新します。 [1]たとえば次のとおりです。db.adminCommand( { setParameter: 1, sslMode: "requireSSL", clusterAuthMode: "x509" } ) sslModeをrequireSSLに設定すると、ノードは TLS/SSLs 接続のみを使用します。clusterAuthModeをx509に設定すると、ノードは認証に x.509 証明書のみを使用します。すべてのノードをアップグレードした後、適切な TLS/SSL と x.509 設定で構成ファイルを編集し、次回の再起動時にクラスターが x.509 認証を使用するようにします。
さまざまなモードとその説明については、 --clusterAuthModeを参照してください。
| [1] | ( 1 、 2 、 3 、 4 、 5 、 6 、 7 ) setParameterコマンドを使用する代わりに、適切な TLS/SSL と x509 のオプションと値を使用してノードを再起動することもできます。 |