はじめに
RDS for MySQL の Audit ログを取得する方法を紹介します。RDS でどんなユーザーがいつログインして、どのようなクエリーを発行したのか、といったことを CloudWatch Logs に出力が出来ます。監査目的に非常に重要な重要なので、必要なセキュリティ要件が有る場合はぜひ取得するのが良いです。
備忘録的に手順を紹介します。
Option group 作成
まず、Option group で、Audit Log 取得用の Plugin を有効にします。
Create group
Create
Add option
Option name で、MARIADB_AUDIT_PLUGIN
を選択して、どのような Audit Log を有効にするか指定します。
SERVER_AUDIT_EVENTS
CONNECT,QUERY,TABLE,QUERY_DDL,QUERY_DML,QUERY_DCL
RDS 作成
Create database
作成した Option group を指定
Log exports も有効化
Create を押すと、作成される
Cloud Watch Logs
Log groups が自動的に作成される
確認
接続
[opc@onprem-server01 ~]$ mysql -u admin -h audit-test01.comulzzpkhpz.ap-northeast-1.rds.amazonaws.com -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.31-log Source distribution
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
コマンドを実行すると、Log group が新たに生成される
こんな感じに適当に database や table を作成
create database sugitest;
use sugitest;
CREATE TABLE sample(
id INT(11) NOT NULL AUTO_INCREMENT,
value INT(5) NOT NULL DEFAULT 0,
PRIMARY KEY (id)
);
INSERT INTO sample(value) VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
実行したクエリーが、CloudWatch Logs 上でも確認できます。
参考URL