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