自己管理型 MongoDB をキーファイル認証から x にアップグレードします。 509認証
現在キーファイル認証を使用しているクラスターを 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
オプションの使用) 」を参照してください。
tls
TLS/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 のオプションと値を使用してノードを再起動することもできます。 |