データベース監査を設定する
注意
データベース監査により、管理者は複数のユーザーによる配置のシステム アクティビティを追跡できます。Atlas 管理者は、監査するアクション、データベースユーザー、Atlas ロール、および LDAP グループを選択できます。Atlas は次の制限付きで、文書化されたシステム イベント アクション のほとんどの 監査をサポートしています。
Atlas ユーザーがクラスター上の Atlas UI でアクションを実行すると、監査ログと
mongodb.log
ファイルの両方に、監査可能なアクションを実行しているユーザーとしてmms-automation
データベース ユーザーが記録されます。ただし、プロジェクト アクティビティ フィードには、アクションを担当する Atlas ユーザーの実際のユーザー名が記録されます。Atlas はこれらの操作を
admin
データベースで直接実行するので、Atlas 監査ログではユーザーの作成または変更イベントは追跡されません。
authCheck
イベント アクションは、プロジェクト内のクラスター内のデータベースに対して読み取りや書込みを試行するユーザーによる承認試行を記録します。Atlas では、次の特定のコマンドが監査されます。
authCheck Reads | authCheck Writes |
---|---|
Atlas は、authCheck
イベント アクションを次の 4 つの個別のアクションとして実装します。
イベント アクション | 説明 |
---|---|
authChecksReadFailures | authCheck auditAuthorizationSuccess パラメータが false に設定されている、失敗したすべての読み取りに対するイベント アクション。このイベント アクションは、読み取り関連のイベント アクションのデフォルトです。 |
authChecksReadAll |
警告: auditAuthorizationSuccessを有効にすると、クラスターのパフォーマンスに重大な影響を与える可能性があります。 このオプションを有効にする場合は注意が必要です。 |
authChecksWriteFailures | authCheck auditAuthorizationSuccess パラメータが false に設定されている、すべての失敗した書込み (write) に対するイベント アクション。このイベント アクションは、書込み (write) 関連のイベント アクションのデフォルトです。 |
authChecksWriteAll |
警告: auditAuthorizationSuccessを有効にすると、クラスターのパフォーマンスに重大な影響を与える可能性があります。 このオプションを有効にする場合は注意が必要です。 |
MongoDB が監査イベントをディスクに書き込む方法については、MongoDB マニュアルの「監査保証」を参照してください。
必要なアクセス権
監査ログを構成するには、更新するプロジェクトへの Project Owner
アクセス権、または更新するプロジェクトを含む組織への Organization Owner
アクセス権が必要です。
手順
注意
一時データベース ユーザーのアクションを監査するためのベスト プラクティスについては、「一時データベース ユーザーの監査」を参照してください。
データベース監査を設定するには、次の手順に従います。
Atlas Atlasで、プロジェクトの {0 ページにGoします。GoAdvanced
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Security見出しの下のAdvancedをクリックします。
詳細ページが表示されます。
認証の失敗を監査することを確認します。
デフォルトでは、Atlas は既知ユーザーと不明ユーザーの両方の失敗した認証試行を プライマリ ノードの監査ログに記録します。
でアクションを監査するデータベース ユーザー、Atlas ロール、および LDAPSelect users and roles グループを選択します。
または Use Custom JSON Filter をクリックして、監査フィルターを JSON 文字列として手動で入力します。Atlas でカスタム監査フィルターを構成する方法の詳細については、「カスタム監査フィルターの構成」を参照してください。
で監査対象のイベント アクションを選択します。<a class=\" \" href=\" \" title=\" \"><svg xmlns=\" \" width=\" \" height=\" \" fill=\" \" viewbox=\" \" class=\" \" role=\" \" aria-label=\" \"><path fill=\" \" d=\"Select actions to audit \"> <path fill=\" \" d=\" \">
注意
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" ] } }