kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Azure SQL Databaseで一定以上の件数の抽出に対するクエリがあった場合アラートを上げたい

Azure SQL Databaseに対して監査を設定することで、SQL全権抽出した場合などにアラートをあげられるようになりました。プレビューですが、ちょっとやってみましょう。

docs.microsoft.com

f:id:kkamegawa:20210407113645p:plain

Azure SQLの監査を有効にして、Log Analyticsへ送信します。

f:id:kkamegawa:20210407111921p:plain

ログでクエリーを書いてみます。ここではテストデータがしょぼいので、過去12時間に1件以上の抽出があったものだけを対象にしています。

response_rows_dを好きな件数にしてください。

f:id:kkamegawa:20210407111926p:plain

対象のデータベース、対象となったクエリーselect* from Master_Accountなどが確認できます。消してますが、ホストやクライアントIPも出てきます。

クエリーができたので、これでアラートを作ります。

f:id:kkamegawa:20210407121336p:plain

クエリーエディターの脇にある新しいアラートルールをクリックします。

f:id:kkamegawa:20210407111930p:plain

アラートルールの作成画面が出てきます。Log Analyticsでは抽出対象時間を縛っていましたが、ここでは指定せずに単純に1件より多い件数で縛っています。

他にもIPアドレスで縛っているのであれば、そのIP以外とか指定したクライアント以外からのアクセスとか条件を追加すればいいでしょう。

f:id:kkamegawa:20210407111857p:plain

こんな風に直近24時間以内に条件に一致するアラートが検出できています。

f:id:kkamegawa:20210407111936p:plain

ディメンジョン、トリガーする違反数、評価期間を指定します。この辺はAzure Monitorそのものなので、問題ないですね。

f:id:kkamegawa:20210407111911p:plain

アクションを指定します。ない場合はアクショングループの作成から作成できます。

f:id:kkamegawa:20210407111916p:plain

全件抽出とかは重大なインシデントなので、重大度0でアラートルールを指定します。

これでOK…のはずです。

アクショングループの作成

ついでにアクショングループを作成するときです。別のブレードが開きます。

f:id:kkamegawa:20210407111903p:plain

アクショングループ名、表示名を指定します。

f:id:kkamegawa:20210407111907p:plain

通知先を指定します。ここではロールで指定できるので、管理者向けに通報が可能です。