Azure SQL Databaseに対して監査を設定することで、SQL全権抽出した場合などにアラートをあげられるようになりました。プレビューですが、ちょっとやってみましょう。
Azure SQLの監査を有効にして、Log Analyticsへ送信します。
ログでクエリーを書いてみます。ここではテストデータがしょぼいので、過去12時間に1件以上の抽出があったものだけを対象にしています。
response_rows_d
を好きな件数にしてください。
対象のデータベース、対象となったクエリーselect* from Master_Account
などが確認できます。消してますが、ホストやクライアントIPも出てきます。
クエリーができたので、これでアラートを作ります。
クエリーエディターの脇にある新しいアラートルール
をクリックします。
アラートルールの作成画面が出てきます。Log Analyticsでは抽出対象時間を縛っていましたが、ここでは指定せずに単純に1件より多い件数で縛っています。
他にもIPアドレスで縛っているのであれば、そのIP以外とか指定したクライアント以外からのアクセスとか条件を追加すればいいでしょう。
こんな風に直近24時間以内に条件に一致するアラートが検出できています。
ディメンジョン、トリガーする違反数、評価期間を指定します。この辺はAzure Monitorそのものなので、問題ないですね。
アクションを指定します。ない場合はアクショングループの作成
から作成できます。
全件抽出とかは重大なインシデントなので、重大度0でアラートルールを指定します。
これでOK…のはずです。
アクショングループの作成
ついでにアクショングループを作成するときです。別のブレードが開きます。
アクショングループ名、表示名を指定します。
通知先を指定します。ここではロールで指定できるので、管理者向けに通報が可能です。