データベース監査を設定する
注意
データベース監査により、管理者は複数のユーザーによる配置のシステム アクティビティを追跡できます。 Atlas 管理者は、監査するするアクション、データベースユーザー、Atlas ロール、および LDAP グループを選択できます。 Atlas は次の制限付きで、文書化された システムイベントアクション のほとんどの 監査をサポートしています。
Atlas はこれらの操作を
admin
データベースで直接実行するので、Atlas 監査ログではユーザーの作成または変更イベントは追跡されません。
重要
完全なデータベース監査の実行
この制限があるため、完全な監査するを実行するには、監査するログ、mongodb.log
、および プロジェクト アクティビティ フィード を組み合わせて使用する必要があります。
authCheck
イベント アクションは、プロジェクト内のクラスター内のデータベースに対して読み取りや書込みを試行するユーザーによる承認試行を記録します。Atlas では、次の特定のコマンドが監査されます。
authCheck Reads | authCheck Writes |
---|---|
Atlas は、authCheck
イベント アクションを次の 4 つの個別のアクションとして実装します。
イベント アクション | 説明 |
---|---|
|
|
|
警告: auditAuthorizationSuccessを有効にすると、クラスターのパフォーマンスに重大な影響を与える可能性があります。 このオプションを有効にする場合は注意が必要です。 |
|
|
|
警告: auditAuthorizationSuccessを有効にすると、クラスターのパフォーマンスに重大な影響を与える可能性があります。 このオプションを有効にする場合は注意が必要です。 |
MongoDB が監査イベントをディスクに書き込む方法については、MongoDB マニュアルの「監査保証」を参照してください。
必要なアクセス権
監査ログを構成するには、更新するプロジェクトへの Project Owner
アクセス権、または更新するプロジェクトを含む組織への Organization Owner
アクセス権が必要です。
手順
注意
一時データベース ユーザーのアクションを監査するためのベスト プラクティスについては、「一時データベース ユーザーの監査」を参照してください。
データベース監査を設定するには、次の手順に従います。
Atlas Atlasで、プロジェクトの {0 ページにGoします。GoAdvanced
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のAdvancedをクリックします。
詳細ページが表示されます。
認証の失敗を監査することを確認します。
デフォルトでは、Atlas は既知ユーザーと不明ユーザーの両方の失敗した認証試行を プライマリ ノードの監査ログに記録します。
Select users and roles でアクションを監査するデータベース ユーザー、Atlas ロール、および LDAP グループを選択します。
または Use Custom JSON Filter をクリックして、監査フィルターを JSON 文字列として手動で入力します。Atlas でカスタム監査フィルターを構成する方法の詳細については、「カスタム監査フィルターの構成」を参照してください。
Select actions to audit で監査対象のイベント アクションを選択します。
注意
authenticate
アクションの選択を解除すると、Atlas は認証失敗を監査できなくなります。
注意
authCheck
イベント アクションでの監査の承認成功の粒度を選択する場合、Atlas は読み取りと書込み (write) の異なる選択をサポートしません。たとえば、authCheck Reads の代わりに Successes and Failures を選択したり、authCheck Writes の代わりに Failures を選択したりすることはできません。authCheck Reads と authCheck Writes の両方を選択した場合、Atlas は選択した粒度を両方に自動的に適用します。
Atlas で監査ログを検索するには、MongoDB ログを参照してください。API を使用して監査ログを検索するには、「ログ」を参照してください。
カスタム監査フィルターを構成する
注意
Atlas は、MongoDB Auditing をカスタマイズする JSON 形式の監査フィルターの指定をサポートしています。
カスタム監査するフィルターを使用すると、ユーザーは管理された Atlas UI監査フィルター ビルダー を使用せずに、イベント監査を手動で細かく制御できるようになります。 Atlas は、カスタム フィルターが有効なJSON構文を使用しているかどうかのみをチェックし、フィルターの機能を検証またはテストしません。
監査フィルター ドキュメントは、監査イベント メッセージ内の 1 つ以上のフィールドに一致するクエリに解決される必要があります。フィルター ドキュメントでは、必要な監査メッセージを一致させるために、クエリ演算子と等価条件の組み合わせを使用できます。
監査フィルターの例を表示するには、「監査フィルターの例」を参照してください。MongoDB 監査フィルターの構成の詳細については、「監査フィルターの構成」を参照してください。
重要
Atlas は、Atlas プロジェクト内のすべてのクラスターにわたって監査構成設定を有効化または更新するために、ローリング アップグレード 戦略を使用します。ローリング アップグレードでは、レプリカセットごとに少なくとも 1 回の選挙が必要です。
レプリカセットの選挙に対するアプリケーションの回復力をテストする方法の詳細については、「プライマリ フェイルオーバーのテスト」を参照してください。Atlas が高可用性を実現する仕組みについて詳しくは、「Atlas の高可用性」を参照してください。
手順
AtlasGoAdvancedAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のAdvancedをクリックします。
詳細ページが表示されます。
Audit authorization successes を切り替えます。
警告
Audit authorization successes を有効にすると、クラスターのパフォーマンスに重大な影響を与える可能性があります。このオプションを有効にする場合は注意が必要です。
authCheck
アクション型を指定する監査フィルターは、デフォルトでは監査システムは指定された param.command
の承認の失敗のみをログに記録します。Audit authorization successes を有効にすると、監査システムは承認の成功もログに記録するように指示します。詳細については、「auditAuthorizationSuccess」を参照してください。
カスタムの監査フィルターを編集する
フィルターはいつでも編集できます。
AtlasGoAdvancedAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のAdvancedをクリックします。
詳細ページが表示されます。
カスタム監査フィルターを表示する
Atlas CLI で指定したプロジェクトの監査構成を取得するには、次のコマンドを実行します。
atlas auditing describe [options]
コマンドの構文とパラメータについて詳しくは、Atlas CLI ドキュメントの atlas auditing describe を参照してください。
Atlas UI でカスタム監査フィルタを表示する方法。
AtlasGoAdvancedAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のAdvancedをクリックします。
詳細ページが表示されます。
監査フィルターの例
独自のフィルターを作成する際のガイドとして、次の監査フィルターの例を使用してください。
重要
これらの例は本番環境での使用を意図したものではなく、MongoDB 監査ドキュメントに関する知識の代替となるものでもありません。
既知のユーザーのすべての認証イベントを監査する
{ "atype": "authenticate" }
既知のユーザーのすべての認証イベントと未知のユーザーの認証失敗を監査する
{ "$or": [ { "users": [] }, { "atype": "authenticate" } ] }
注意
既知および未知のユーザーからの認証失敗をログに記録するには、authenticate
アクションが必要です。
「myClusterAdministrator」ユーザーの認証イベントを監査する
{ "atype": "authenticate", "param": { "user": "myClusterAdministrator", "db": "admin", "mechanism": "SCRAM-SHA-256" } }
選択したコマンドを実行する不正な試みを監査する
{ "atype": "authCheck", "param.command": { "$in": [ "insert", "update", "delete" ] } }