AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

ダウンタイムなしで TLS 証明書をローテーション

Ops Manager は、 MongoDBプロセスを再起動せずに、管理対象の配置全体で TLS 証明書をローテーションできます。オートメーション構成でcertificatesVersion フィールドを増加させると、 MongoDB Agent は適格なプロセスごとにdb.adminCommand({ rotateCertificates: 1 }) を実行するため、クライアント接続は操作全体で中断されません。

MongoDB Agent は、次の要件をすべて満たすプロセスにのみゼロダウンタイム ローテーションを適用します。

  • プロセスタイプはmongod またはmongos です。

  • MongoDBバージョンは 5.0 以降です。

  • TLS は プロセスで構成されています。

  • 配置のすべてのノードが上記の要件を満たしています。

MongoDB Agent は、次のいずれかのカテゴリのプロセスにゼロダウンタイム ローテーションを適用することはできません。 Ops Manager UIでは、資格のない配置のチェックボックスが無効になっています。オートメーションAPIを通じて、Ops Manager はHTTP 400 エラーを出して適格でない配置の構成更新を拒否します。その理由は次のとおりです。

条件
動作

MongoDBバージョン 5.0 より前

Ops Manager UIでは選択できません。 Automation API はHTTP 400 エラーで構成の更新を拒否します。

TLS が構成されていない

Ops Manager UIでは選択できません。 Automation API はHTTP 400 エラーで構成の更新を拒否します。

BI Connector または mongosqld

Ops Manager UIでは選択できません。 Automation API はHTTP 400 エラーで構成の更新を拒否します。

TLS パスの変更はローテーションと同期します

ローリング再起動により、パスの変更が処理されます。 Ops Manager はローテーションを完了として記録します。

重要

ゼロダウンタイムローテーションには、配置内のすべてのプロセスが適格要件を満たしている必要があります。いずれかのプロセスが対象とならない場合は、代わりに既存の方法を使用します。DeploymentSecuritySettingsTLS Settings に移動し、証明書パスを更新して、Review and Deploy からローリング再起動をトリガーします。

証明書をローテーションする前に、以下の点を確認してください。

  • 配置は Ops Manager Automation によって管理されます。

  • mongodmongosデプロイメント内のすべての プロセスと プロセスでは、 MongoDB5.0 以降が実行されます。

  • 配置では TLS が有効になっています。

  • 新しい TLS 証明書は有効であり、元に設定されたパスで正しく上書きされます。

証明書ローテーションをトリガーするには、 Automation APIまたは Ops Manager UIを使用します。

重要

UIまたはAPIを使用して、certificatesVersion を以前の値に戻すことはできません。 MongoDB Ops Manager では、この値の増加のみが許可されます。

Automation APIを使用して証明書をローテーションするには、現在のオートメーション構成を取得し、certificatesVersion を増やして、更新された構成をアップロードします。

1

Automation Configuration エンドポイントに GETリクエストを送信します。

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" \
--digest \
--header "Accept: application/json" \
--request GET \
"https://<OpsManagerHost>/api/public/v1.0/groups/{GROUP-ID}/automationConfig"

レスポンス本体を ローカルファイル(automation-config.json など)に保存します。

2

processes 配列で、ローテーションするプロセスごとのオブジェクトを見つけます。 certificatesVersion 整数を 1 ずつ増やします。フィールドが存在しない場合は、追加し、1 に設定します。

インプレース ローテーションをトリガーするには、現在公開されている値より大きい値を設定します。等価値では、ローテーションはトリガーされません。 MongoDB Ops Manager はHTTP 400 INVALID_AUTOMATION_CONFIG による減算を拒否します。フィールド検証ルールについては、 「 MongoDBプロセス 」を参照してください。

3

変更された構成で PUTリクエストを送信します。

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" \
--digest \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--request PUT \
--data @automation-config.json \
"https://<OpsManagerHost>/api/public/v1.0/groups/{GROUP-ID}/automationConfig"
4

UI Ops Manager で、Deployment、次に Processes をクリックします。ステータス インジケーターがすべてのプロセスが変換されたことを示すまで待ちます。 MongoDB Agent は適格なプロセスごとにローテーションを適用し、その結果を記録します。

Ops Manager UIを使用して証明書をローテーションするには、プロジェクトの TLS 設定に移動し、ローテーションする配置を選択します。

1

[DeploymentSecuritySettingsTLS Settings の順にクリックします。

2

[Edit をクリックし、Rotate Certificates をクリックします。この表には、プロジェクト内のすべての配置項目が一覧表示されています。資格のないアイテムは無効になり、カーソルを合わせるとその理由が表示されます。

3

適格な配置アイテムを 1 つ以上選択し、操作を確認します。

4

すべてのプロセスが目的の状態に達するまで待ちます。 MongoDB Agent が適格なプロセスごとにローテーションを適用すると、Ops Manager Automation ステータス パネルのステータス インジケーターが更新されます。

MongoDB Agent は各ローテーションの結果を保持するため、エージェントの再起動に耐えられ、中断された場所から再開できます。

MongoDB Ops Manager は、オートメーション構成の更新により 1 つ以上のプロセスで証明書がローテーションされるたびに、プロジェクトのアクティビティフィードに TLS_CERTIFICATES_ROTATEDイベントを記録します。このイベントを使用して、証明書ローテーション履歴を監査する。

rotateCertificates コマンドが失敗した場合、 MongoDB Agent はエラー コード 128(TlsCertificatesRotationErr)を返します。 Ops Manager に「TLS 証明書ローテーション エラー」が表示されるオートメーション ステータス パネルに表示され、次のコンフィギュレーション チェックでステップが再スケジュールされます。エラーを解決するには、ディスク上の証明書ファイルを修正します。

コマンドが成功しても、 MongoDB Agent が結果を保持できない場合は、自動的に再試行されます。

MongoDB Agent は、オートメーション構成で増加した certificatesVersion を検出すると、適格な各プロセスを資格要件に対してチェックし、db.adminCommand({ rotateCertificates: 1 }) を実行します。