Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

setAuditConfig

項目一覧

  • 定義
  • 互換性
  • 構文
  • コマンドフィールド
  • 動作

重要

バージョン7.1では非推奨 : 代わりに、 auditConfigクラスター パラメータを使用してください。

setAuditConfig

バージョン 5.0 で追加

setAuditConfigは、実行時にmongod } サーバー インスタンスとmongosサーバー インスタンスの新しい監査構成を設定する管理コマンドです。

db.adminCommand( { command } )メソッドを使用して、 adminデータベースに対してsetAuditConfigを実行します。

このコマンドは、次の環境でホストされている配置で使用できます。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

重要

このコマンドは、 MongoDB Atlasクラスターではサポートされていません。すべてのコマンドの Atlas サポートの詳細については、「 サポートされていないコマンド 」を参照してください。

このコマンドの構文は、次のとおりです。

db.adminCommand(
{
setAuditConfig: 1,
filter: <Filter Document>,
auditAuthorizationSuccess: <Boolean>
}
)

コマンドには次のフィールドがあります:

フィールド
タイプ
説明
setAuditConfig
integer
実行する setAuditConfig
filter
ドキュメント
auditAuthorizationSuccess
ブール値
アクセス認可のすべてまたは失敗のみをログに記録

実行時に setAuditConfigを使用するように 監査 を有効にします。

auditAuthorizationSuccessは、 authCheckアクションの認可成功の監査を有効にします。 読み取り操作と書込み操作を監査するには、パラメータ値がtrueである必要があります。 ただし、 auditAuthorizationSuccessfalseの場合、 監査システムは認可の失敗のみをログに記録するため、監査によるパフォーマンスへの影響は少なくなります。

構成の更新はoplogメカニズムを介して分散されるため、 mongodノードの更新はセカンダリ ノードにすばやく分散されます。 mongosノードには別の分散メカニズムがあります。 mongosノードは、構成更新のために定期的にプライマリ サーバーをpollする必要があります。 setAuditConfigシャードがプライマリgetAuditConfig サーバーでアップデートされた構成の詳細をポーリングする前に、プライマリ サーバーで を実行し、 シャード で を実行すると、ポーリング遅延により古いデータが表示される可能性があります。

これらの例では、監査メッセージが再フォーマットされています。 これらはログファイルの 1 行に表示されます。

コレクションが作成または削除されたときに監査を有効にします。

db.admin.runCommand(
{
setAuditConfig: 1,
filter:
{
atype:
{
$in: [ "createCollection", "dropCollection" ]
}
},
auditAuthorizationSuccess: false
}
)

inventoryコレクションがsalesデータベースに作成されると、監査システムは次のようなメッセージをログに記録します。

{
"atype" : "createCollection",
"ts" : { "$date" : "2021-08-09T13:45:05.372+00:00" },
"uuid" : { "$binary" : "RKU/YLizS6K9se2GUU7ZVQ==", "$type" : "04" },
"local" : { "ip" : "127.0.0.1", "port" : 27502 },
"remote" : { "ip" : "127.0.0.1", "port" : 51918 },
"users" : [],
"roles" : [],
"param" : { "ns" : "sales.inventory" },
"result" : 0
}

inventoryコレクションがsalesデータベースから削除されると、監査システムは次のようなメッセージをログに記録します。

{
"atype" : "dropCollection",
"ts" : { "$date" : "2021-08-09T13:45:00.661+00:00" },
"uuid" : { "$binary" : "0gle4/pSQli+LUcz43ykag==", "$type" : "04" },
"local" : { "ip" : "127.0.0.1", "port" : 27502 },
"remote" : { "ip" : "127.0.0.1", "port" : 51928 },
"users" : [],
"roles" : [],
"param" : { "ns" : "sales.inventory" },
"result" : 0
}

auditAuthorizationSuccesstrueに設定し、読み取り操作と書込み操作を監査する重要なアクションを含むフィルターを作成します。

db.admin.runCommand(
{
setAuditConfig: 1,
filter:
{
atype: "authCheck",
"param.command":
{
$in: [ "find", "insert", "delete", "update", "findandmodify" ]
}
},
auditAuthorizationSuccess: true
}
)

findコマンドを使用して、 salesデータベースのinventoryコレクションを検索し、次のような監査ログ エントリを作成します。

{
"atype" : "authCheck",
"ts" : { "$date" : "2021-08-09T15:28:10.788+00:00" },
"uuid" : { "$binary" : "ngwRt5CRTZqgE4TsfleoqQ==", "$type" : "04" },
"local" : { "ip" : "127.0.0.1", "port" : 27502 },
"remote" : { "ip" : "127.0.0.1", "port" : 51930 },
"users" : [],
"roles" : [],
"param" : {
"command" : "find",
"ns" : "sales.inventory",
"args" : {
"find" : "inventory",
"filter" : { "widget" : 1 },
"lsid" : { "id" : { "$binary" : "FNWNxiitQ8GHKrHx8eJSbg==", "$type" : "04" } },
"$clusterTime" : { "clusterTime" : { "$timestamp" : { "t" : 1628521381, "i" : 1 } },
"signature" : { "hash" : { "$binary" : "AAAAAAAAAAAAAAAAAAAAAAAAAAA=", "$type" : "00" },
"keyId" : { "$numberLong" : "0" } } },
"$db" : "sales"
}
},
"result" : 0
}

Tip

以下も参照してください。

戻る

rotateCertificates