ablog

不器用で落着きのない技術者のメモ

Amazon Redshift で取得できる監査ログ

設定

監査ログの有効化
  • マネジメントコンソールでRedshiftクラスターを選択する。
  • [データベース]-[監査ログ記録の設定]を選択する。

  • [監査ログ記録の設定]で以下の通り入力する
    • 監査ログ記録の有効化: はい
    • 監査ログ記録の有効化: 新規作成
    • 新規バケット名: redshift-trail-ds2xl2n(任意の名前)

ユーザーアクティビティログ取得設定
  • Redshift のパラメータグループを作成し enable_user_activity_logging を true に設定する。

  • 作成したパラメータグループを Redshift クラスターに割り当てる。

確認する

接続ログ

認証の試みと、接続および切断を記録します。次の表に、接続ログの情報を示します。

列名 説明
event 接続または認証イベント。
recordtime イベントが発生した時刻。
remotehost リモートホストの名前または IP アドレス。
remoteport リモートホストのポート番号。
pid ステートメントに関連付けられるプロセス ID。
dbname データベース名。
username ユーザー名。
authmethod 認証方法。
duration 接続時間 (マイクロ秒)。
sslversion Secure Sockets Layer (SSL) バージョン。
sslcipher SSL 暗号。
mtu 最大送信単位 (MTU)。
sslcompression SSL 圧縮タイプ。
sslexpansion SSL 拡張タイプ。
  • 100000000000_redshift_ap-northeast-1_ds2xl2n_connectionlog_2018-09-04T07:16.gz
    • redshift-trail-ds2xl2n/AWSLogs/100000000000/redshift/ap-northeast-1/2018/09/04/
authenticated |Tue, 4 Sep 2018 06:16:36:393|::ffff:127.0.0.1 |53154 |13647|dev |rdsdb |password |0| | |0| | | |
initiating session |Tue, 4 Sep 2018 06:16:36:393|::ffff:127.0.0.1 |53154 |13647|dev |rdsdb |password |0| | |0| | | |
authenticated |Tue, 4 Sep 2018 06:19:30:621|::ffff:**.*.*.145 |25692 |13965|mydb |awsuser |password |0|TLSv1.2 |ECDHE-RSA-AES256-GCM-SHA384 |0| | | |
initiating session |Tue, 4 Sep 2018 06:19:30:621|::ffff:**.*.*.145 |25692 |13965|mydb |awsuser |password |0|TLSv1.2 |ECDHE-RSA-AES256-GCM-SHA384 |0| | | |
set application_name |Tue, 4 Sep 2018 06:19:30:621|::ffff:**.*.*.145 |25692 |13965|mydb |awsuser |password |159643|TLSv1.2 |ECDHE-RSA-AES256-GCM-SHA384 |0| | | |psql
disconnecting session |Tue, 4 Sep 2018 06:36:28:431|::ffff:**.*.*.145 |25692 |13965|mydb |awsuser |password |1017969825|TLSv1.2 |ECDHE-RSA-AES256-GCM-SHA384 |0| | | |psql
disconnecting session |Tue, 4 Sep 2018 06:36:36:366|::ffff:127.0.0.1 |53154 |13647|dev |rdsdb |password |1199973731| | |0| | | |
ユーザーログ

データベースユーザーに対する操作を記録する。

  • ユーザーの作成
  • ユーザーの削除
  • ユーザーの変更 (名前の変更)
  • ユーザーの変更 (プロパティの変更)
列名 説明
userid 変更の影響を受けるユーザーの ID。
username 変更の影響を受けるユーザーのユーザー名。
oldusername 名前の変更アクションの場合、以前のユーザー名。その他のアクションの場合、このフィールドは空です。
action 実行されたアクション。有効な値: Alter 作成 Drop Rename
usecreatedb true (1) の場合、ユーザーに create database 権限があることを示します。
usesuper true (1) の場合、ユーザーがスーパーユーザーであることを示します。
usecatupd true (1) の場合、ユーザーはシステムカタログを更新できることを示します。
valuntil パスワードが失効する日付。
pid プロセス ID。
xid トランザクション ID。
recordtime UTC で表されたクエリの開始時間。
ユーザーアクティビティログ

クエリ実行単位のログ

列名 説明
recordtime イベントが発生した時刻。
db データベース名。
ユーザー ユーザー名。
pid ステートメントに関連付けられるプロセス ID。
userid ユーザー ID
xid トランザクション ID。
query プレフィックス LOG の後に、改行を含むクエリのテキストが続きます。
  • 100000000000_redshift_ap-northeast-1_ds2xl2n_useractivitylog_2018-09-04T06:16.gz
    • redshift-trail-ds2xl2n/AWSLogs/100000000000/redshift/ap-northeast-1/2018/09/04/
'2018-09-04T05:34:50Z UTC [ db=mydb user=awsuser pid=9972 userid=100 xid=7200 ]' LOG: select * from STL_USERLOG;
'2018-09-04T05:34:50Z UTC [ db=mydb user=awsuser pid=9972 userid=100 xid=7200 ]' LOG: SELECT pg_catalog.stl_userlog.userid AS userid, pg_catalog.stl_userlog.username AS username, pg_catalog.stl_userlog.oldusernam
e AS oldusername, pg_catalog.stl_userlog.action AS action, pg_catalog.stl_userlog.usecreatedb AS usecreatedb, pg_catalog.stl_userlog.usesuper AS usesuper, pg_catalog.stl_userlog.usecatupd AS usecatupd, pg_catalog
.stl_userlog.valuntil AS valuntil, pg_catalog.stl_userlog.pid AS pid, pg_catalog.stl_userlog.xid AS xid, pg_catalog.stl_userlog.recordtime AS recordtime FROM pg_catalog.stl_userlog;