自己管理型配置の監査
注意
MongoDB Atlas での監査
MongoDB Atlasは、M10
以上のクラスターの監査をサポートしています。詳細については、 MongoDB Atlasドキュメントの「 データベース監査の設定 」を参照してください。
MongoDB Enterprise には、 mongod
およびmongos
インスタンスの監査機能が含まれています。 監査機能により、管理者とユーザーは、複数のユーザーやアプリケーションによる配置システムアクティビティを追跡できます。
監査出力の有効化と構成
監査機能は、監査イベントをコンソール、 syslog 、JSON ファイル、または BSON ファイルに書き込むことができます。 MongoDB Enterprise で監査を有効にするには、「自己管理型配置での監査の構成 」を参照してください。
監査ログ メッセージについて詳しくは、「自己管理型配置のシステム イベント監査メッセージ 」を参照してください。
監査イベントとフィルター
監査システムを有効にすると、次の操作を記録できます [1]:
スキーマ(DDL)、
レプリカセットとシャーディングされたクラスター
認証と承認、
CRUD 操作(
auditAuthorizationSuccess
をtrue
に設定する必要があります)。
注意
MongoDB 5.0 以降、セカンダリは複製された変更のログ監査するイベントを記録しません。ローカルのデータベースと system.profile
コレクションを変更する DDL 操作については、DDL 監査イベントが引き続き記録されます。
監査するアクションについて詳しくは、「監査イベントアクション、詳細、結果」を参照してください。
監査システムを使用すると、フィルターを設定 して、キャプチャされるイベントを制限できます。 フィルターを設定するには、「自己管理型配置で監査フィルターを構成する 」を参照してください。
[1] | 中止されたトランザクション内の操作では、引き続き監査イベントが生成されます。ただし、トランザクションが中止されたことを示す監査イベントはありません。 |
監査保証
監査システムは、すべての監査イベント [2] を監査イベントのメモリ内バッファに書き込みます。MongoDB では。このバッファが定期的にディスクに書込まれます。単一の接続から収集されたイベントの場合、イベントには完全な順序があります。MongoDB で 1 つのイベントがディスクに書込まれると、システムはその接続の以前のすべてのイベントをディスクに書込んだことを保証します。
監査イベント エントリが、データの変更など、データベースの永続的な状態に影響を与える操作に対応する場合、MongoDB では常に、そのエントリのジャーナルに書込む前に、監査イベントがディスクに書込まれます。
つまり、MongoDB では、操作がジャーナルに追加される前に、操作をトリガーした接続に関するすべての監査イベントが書込まれます(操作がエントリされるまで)。
これらの監査を保証するには、MongoDB がjournaling
を有効にして実行されている必要があります。
警告
MongoDB は、イベントを監査ログにコミットする前にサーバーが終了した場合、イベントを失う可能性があります。MongoDB が監査ログにコミットする前に、クライアントはイベントの確認を受け取る場合があります。たとえば、集計操作を監査しているときに、結果を返した後、監査ログがフラッシュされる前にサーバーが終了することがあります。
さらに、サーバーが audit destination
で監査ログに書き込むことができない場合、サーバーは終了します。
[2] | 監査構成には、監査するイベントを制限するフィルターを含めることができます。 |