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