自己管理型レプリカセットのキーのローテーション
レプリカセットのノードは、キーファイルを使用して、同じ配置のノードとして相互に認証できます。
キーファイルには複数のキーを含めることができ、少なくとも 1 つのキーがメンバー間で共通の場合、メンバーシップ認証が確立されます。 これにより、ダウンタイムなしでキーのローリング アップグレードが可能になります。
次のチュートリアルでは、ダウンタイムなしでレプリカセットのキーを更新するプロセスについて説明します。 [1]
警告
このチュートリアルのサンプルキーは、説明のみを目的としています。 配置を使用しないでください。 代わりに、選択した任意の方法を使用してキーファイルを生成します(例: openssl rand -base64
756
など)。
各ノードのキーファイルに次のキーが含まれる レプリカセット を考えてみましょう。
![Image of current key to replace.](/ja-jp/docs/manual/static/f5335f85341aa04e4cdb060a70256641/95d4b/example-key1.webp)
次の手順では、レプリカセット ノードを更新して新しいキーを使用します。
![Image of new key.](/ja-jp/docs/manual/static/f7cb9450fb37ad6000e5155fe8e7fa99/6c107/example-key2.webp)
[1] | このチュートリアルは、 MongoDB の暗号化されたストレージ エンジン のローカル キー管理に使用される キー ファイルには適用されません。そのキーファイルには1つのキーしか入れることができません。 |
手順
1. キーファイルを変更して、古いキーと新しいキーを含める
各ノードのキーファイルを変更して、古いキーと新しいキーの両方を含めます。 引用符で囲まれた文字列またはキーのシーケンスとして複数のキーを指定できます。
警告
このチュートリアルのサンプルキーは、説明のみを目的としています。 配置に使用しないでください。 代わりに、選択した任意の方法でキーファイルを生成します(例: openssl rand -base64
756
など)。
複数のキー文字列をキー文字列のシーケンスとして指定できます(一重引用符またはdouble引用符で囲むこともできます)。
![Image of multiple key string sequence.](/ja-jp/docs/manual/static/228daf2e80628352b31a5d97da66f302/c4d62/example-multiple-keys2.webp)
2. 各ノードを再起動する
すべてのキーファイルに古いキーと新しいキーの両方が含まれたら、各ノードを一度に 1 つずつ再起動します。
各 セカンダリ メンバー について、 mongosh
をメンバーに接続し、
ノードをシャットダウンするには、
db.shutdownServer()
メソッドを使用します。use admin db.shutdownServer() ノードを再起動します。
プライマリの場合は、 mongosh
をノードに接続し、
rs.stepDown()
を使用してメンバーを降格します。rs.stepDown() ノードをシャットダウンするには、
db.shutdownServer()
メソッドを使用します。use admin db.shutdownServer() ノードを再起動します。
キーファイルには古いキーと新しいキーの両方が含まれているため、すべてのノードはメンバーシップ認証にどちらのキーも受け入れることができるようになりました。
3. キーファイルの内容を新しいキーのみに更新する
警告
このチュートリアルのサンプルキーは、説明のみを目的としています。 配置に使用しないでください。 代わりに、選択した任意の方法でキーファイルを生成します(例: openssl rand -base64
756
など)。
各ノードのキーファイルを変更して、新しいパスワードのみを含めます。
![Image of new key.](/ja-jp/docs/manual/static/f7cb9450fb37ad6000e5155fe8e7fa99/6c107/example-key2.webp)
4. 各ノードを再起動する
すべてのキーファイルに新しいキーのみが含まれたら、各ノードを一度に 1 つずつ再起動します。
各 セカンダリ メンバー について、 mongosh
をメンバーに接続し、
ノードをシャットダウンするには、
db.shutdownServer()
メソッドを使用します。use admin db.shutdownServer() ノードを再起動します。
プライマリの場合は、 mongosh
をノードに接続し、
rs.stepDown()
を使用してメンバーを降格します。rs.stepDown() ノードをシャットダウンするには、
db.shutdownServer()
メソッドを使用します。use admin db.shutdownServer() ノードを再起動します。
すべてのノードがメンバーシップ認証に新しいキーのみを受け入れるようになりました。