[AWS] Amazon DocumentDB が CloudWatch Logs への監査ログ出力に対応

こんにちは、菊池です。

先月登場したばかりのAmazon DocumentDBのアップデートです。

Amazon DocumentDB (MongoDB 互換) で Amazon CloudWatch Logs によるデータベース監査のサポートを開始

Amazon DocumentDBで、CloudWatch Logsへの監査ログの出力がサポートされました。

やってみた

それでは早速試してみます。ログ出力を有効化するためには、

  • クラスタ設定での有効化
  • パラメータグループによる有効化

の2つとも行う必要があります。まずはクラスタ設定での有効化です。クラスタ作成時の詳細設定に、[Log expors]の項目が追加されていますので、有効にします。

続いて、パラメターグループです。こちらも、[audit_logs]の項目が追加されていますので、[enable]に変更します。

設定し、DocumentDBクラスタが起動してしばらくすると、CloudWatch Logsにロググループが作成されています。

何も操作してない状態でも、数件のログが出力されていました。

ログ出力を試すため、DBに接続していくつか操作を実行します。

まずはDBの作成

rs0:PRIMARY> use test
switched to db test

続いて、コレクションを作成します。

rs0:PRIMARY> db.createCollection("testcol")
{ "ok" : 1 }

すると、すぐにログが出力されていました。

ログの内容です。接続のログ。

{
    "atype": "authenticate",
    "ts": 1550448834114,
    "remote_ip": "172.31.60.114:46608",
    "user": "skikuchi",
    "param": {
        "user": "skikuchi",
        "mechanism": "SCRAM-SHA-1",
        "success": true,
        "message": "",
        "error": 0
    }
}

DB作成のログです。

{
    "atype": "createDatabase",
    "ts": 1550448963673,
    "remote_ip": "172.31.60.114:46608",
    "user": "skikuchi",
    "param": {
        "ns": "test"
    }
}

そして、コレクション作成のログ。

{
    "atype": "createCollection",
    "ts": 1550448963673,
    "remote_ip": "172.31.60.114:46608",
    "user": "skikuchi",
    "param": {
        "ns": "test.testcol"
    }
}

また、コレクション作成と同時に、_idにインデックスが作成されていることもわかります。

{
    "atype": "createIndex",
    "ts": 1550448963673,
    "remote_ip": "172.31.60.114:46608",
    "user": "skikuchi",
    "param": {
        "ns": "test.testcol",
        "indexName": "_id_",
        "indexSpec": {
            "key": {
                "_id": 1
            },
            "unique": true,
            "background": false,
            "sparse": false
        }
    }
}

まとめ

以上、Amazon DocumentDBでサポートされた、CloudWatch Logsへのログ出力を試しました。監査要件などへの対応も可能になりましたので、必要な場合には有効にするとよいでしょう。