セキュリティコンプライアンスのためにMongoDBで監査を構成するには、次の手順に従う必要があります。
監査を有効にする: MongoDBサーバーで監査を有効にすることから始めます。これは、 auditLog
構成をmongodb構成ファイル(通常mongod.conf
)に追加することで実行できます。
<code class="yaml">auditLog: destination: file path: /var/log/mongodb/audit.log format: JSON</code>
監査フィルターの設定:監査する操作を定義します。 MongoDBを使用すると、ユーザー、操作タイプ、および名前空間に基づいてフィルタリングできます。たとえば、 getmore
およびkillcursors
除くすべての操作を監査するには、以下を使用します。
<code class="yaml">auditLog: filter: '{ atype: { $not: { $in: [ "getmore", "killcursors" ] } } }'</code>
mongod.conf
を構成した後、変更を適用するためにmongodbインスタンスを再起動します。これらの手順に従うことにより、MongoDBがセキュリティ基準に準拠してオペレーションを監査するように構成されていることを確認します。
MongoDBで監査フィルターのセットアップは、ロギングシステムを圧倒することなく、必要な情報を確実にキャプチャするために慎重に行う必要があります。ここにいくつかのベストプラクティスがあります:
create
、 drop
、 insert
、 update
、 delete
などの重要な操作に焦点を当てます。 $in
および$nin
オペレーターを使用します。これらのオペレーターを利用して、特定の種類の操作を含めるか除外します。例えば:
<code class="yaml">auditLog: filter: '{ atype: { $in: [ "create", "drop", "insert", "update", "delete" ] } }'</code>
監査に敏感なデータ:機密データがある場合は、これらのコレクションのすべての操作が監査されていることを確認してください。フィルターのnamespace
フィールドを使用して、コレクションを指定します。
<code class="yaml">auditLog: filter: '{ namespace: { $regex: "^sensitive_data." } }'</code>
createUser
、 dropUser
、 createRole
、 dropRole
などのすべての管理コマンドを監査して、セキュリティモデルの変更を追跡します。MongoDB監査ログが規制基準を満たすことを保証するには、いくつかの重要な慣行が含まれます。
auditLog.format: JSON
設定を使用して、ログを解析して分析しやすくします。auditLog.rotationSizeMB
およびauditLog.rotationTime
設定を介して保持期間の構成をサポートしています。いくつかのツールを使用して、セキュリティの洞察についてMongoDB監査ログを分析できます。
pymongo
やpandas
などのライブラリは、この目的に役立ちます。これらのツールを使用することにより、MongoDBのセキュリティ姿勢に関する貴重な洞察を得て、規制基準の順守を確保できます。
以上がセキュリティコンプライアンスのためにMongoDBで監査を設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。