Azure SQL Databaseの監査ログを取得してSSMSから確認する

SQL DatabaseをAzureポータルからデフォルトで作成すると監査ログの取得がされません。
SQL Databaseの概要ページで監査が構成されていないという表示がされます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/6cbd4410-9821-f8c7-cc52-4fab9f95c8ed.png)

監査ログを取得して、それをSSMSで確認する方法を残します。

# SQL Database作成
今回サンプルデータベースを用意しました。ここの手順は割愛します。

# 監査ログ設定

* AzureポータルのSQL Databaseページから[監査]を選択します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/8e451e8b-e66e-c610-ddf1-597c40ce2e04.png)

* [サーバー設定を表示]を選択します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/fdd52b92-be30-893f-fcfd-40fdaf52a33c.png)

* 監査をオンにします。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/d3f06c6e-1e4a-9eac-c53c-526b9a656d71.png)

* [Storage]にチェックを入れ、[構成]を選択します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/14437c13-3b65-9d55-a500-2782d82edecc.png)

* [ストレージアカウント]を選択します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/63f1fd61-370a-56f9-cd33-909f298c40fe.png)

* 既存のストレージアカウントを選択するか、新規で作成します。今回は新規で作成しました。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/17032d8e-e4eb-fa7c-3f6b-e5055acc52c3.png)

* 新規ストレージアカウントを作成したら、監査設定を保存します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/8b37e8c2-4fd7-de04-5e6d-14621d726cde.png)

* SQL Databaseの概要ページに戻ると監査が構成されたことが分かります。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/1e723ea0-660f-3342-635b-dee143b0cea4.png)

# 監査ログ確認

* [SSMS](https://docs.microsoft.com/ja-jp/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15) をPCにダウンロードしてインストールします。

* SQL Database Server名、ログインID、パスワードを入力して接続します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/86c19787-8476-b75e-7d97-dffba9a0de2a.png)

* 今回は監査ログの取得確認なので適当なテーブルをDROPします。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/33234e19-fe78-3a53-9f23-b55089015a40.png)

* 監査ログを取得するため、SSMSより[ファイル]→[開く]→[監査ファイルの結合]の順に選択します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/777b3737-0663-489f-6c7b-f445aecf4289.png)

* [追加]を選択します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/181d0baf-3c0f-14ef-408a-f65e367b6552.png)

* 毎回監査ログをローカルPCにダウンロードするのはめんどくさいので、Blob Storageに直接接続します。[Azure Blob Storageから追加]にチェックを入れ、[接続]を選択します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/e2deb80a-b886-f2d3-2ab3-51a34e7bfe07.png)

* ストレージアカウント名、アカウントキーを入力して、[接続]を選択します。アカウントキーはAzureポータルの[ストレージアカウント]→[アクセスキー]から取得できます。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/63b89635-ede0-d774-7e6c-2492f9c6cc5d.png)

* ストレージアカウントに接続したら、サーバー名、データベース名、期間を選んで[OK]を選択します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/ddb6822b-8e18-2778-c0bc-706ded52fdfc.png)

* その期間だと監査ファイルがいくつ対象かが分かります。[OK]を選択します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/d5070cd2-454f-f717-e1bf-ee49a301ab18.png)

* こんな感じで監査ログが一覧化されます。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/18b9308c-2bdc-3538-6234-bae64e2952a8.png)

* 今回は事前にDROPした履歴を見てみたいと思います。SSMSの画面で[Ctrl+r]を押すとフィルター画面が出てきます。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/77b371fc-b3e5-7927-9deb-ad1a7c59c0f2.png)

* statementフィールドが「DROP」という文字列を含むものという条件でフィルターしてみます。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/40c8d502-1e63-0628-562b-1a53de77d36a.png)

* 先ほどDROPした履歴が出てきました。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/1fa7701f-d52f-ec1f-c527-0c8506322de7.png)

* 詳細なクエリも確認できます。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/9279bfb9-f9d3-58dc-fca4-3b198afdf3a8.png)

# Log Analyticsに飛ばしてみる

先ほどはBlob Storageに保存した監査ログを見てみましたが、次にLog Analyticsにログを飛ばした場合どのように見えるかやってみます。

* SQL Database Serverの監査ログ設定から[Log Analytics]を追加します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/96290912-4029-8c70-43a8-e1c52e92359a.png)

* 監査設定画面に戻り、[監査ログの表示]を選択します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/a7ae25b0-8d0c-0d5d-31f7-d515d834bd2b.png)

* [Log Analytics]を選択します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/0c7a569f-ca67-ae33-832e-a8eb16f3e502.png)

* 自動でクエリが実行され、Log Analytics画面で監査ログを確認することができます。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/0377c0f5-ca7f-0008-9ecd-32216e1e2e2e.png)

* 1つ前の画面に戻って、今度はダッシュボードを見てみます。[ダッシュボードの表示]を選択します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/92a51d50-f46f-f39a-42dd-bf3f63de926e.png)

* [Azure SQL - Security Insights]を選択します。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/fcbb2d49-2f5a-1f24-7280-1ef0e6ede630.png)

* このようにダッシュボードで確認することができます。  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180335/6f7c6368-a153-01b8-2b40-6f7c1dc54e5a.png)

* Log Analyticsも便利ですが、その分費用が掛かるので注意しましょう。

以上