Azure SQL Database の監査ログを構成して確認する

SQL Server と Basic データベースを作成し、サーバーレベル監査を Storage Account 宛に有効化します。sqlcmd でクエリを実行し、生成された .xel 監査ログを確認する AZ-500 / DP-300 対策ラボです。

中級50Azure 実環境

ラボ概要

データベースに「いつ・誰が・どんな操作をしたか」を記録する監査(Auditing)は、セキュリティ インシデントの調査やコンプライアンス要件への対応に欠かせない機能です。Azure SQL Database では、サーバーまたはデータベース単位で監査を有効化し、イベントを Storage Account・Log Analytics・Event Hubs のいずれかに送信できます。

このラボでは、最も基本的な構成である「Storage Account への監査ログ出力」を実際に構築します。az CLI で SQL Server(論理サーバー)と Basic レベルのデータベースを作成し、サーバーレベル監査を有効化したうえで、Cloud Shell の sqlcmd からクエリを実行して監査イベントを発生させます。最後に、拡張イベント形式(.xel)のログ ファイルがストレージに書き込まれることを確認します。

監査の構成は AZ-500(Azure セキュリティ エンジニア)と DP-300(Azure データベース管理者)の両試験で問われる定番トピックです。手を動かしながら、サーバーレベルとデータベースレベルの監査の違い、既定で監査されるアクション グループ、ログの保存形式を確認していきます。

学習目標

  • az CLI で SQL Server(論理サーバー)と Basic レベルの SQL Database を作成できる
  • サーバーレベル監査とデータベースレベル監査の違いを説明できる
  • 監査ログの出力先として Storage Account を構成できる
  • 既定で監査される 3 つのアクション グループ(バッチ完了・ログイン成功・ログイン失敗)を理解する
  • Storage Account に生成される .xel(拡張イベント)ファイルの場所と階層構造を確認できる
  • SQL Server のファイアウォール規則の役割を理解する

前提

  • Azure ポータルにサインイン済みであること(サンドボックス アカウントが自動で用意されます)
  • リソースはすべて japaneast(東日本) リージョンに作成します
  • 作業は割り当て済みのサンドボックス リソースグループ 1 つの中だけで行います(新規リソースグループの作成はできません)
  • 追加のツールは不要です(Cloud Shell に az CLI と sqlcmd が組み込まれています)

ラボの構成

  1. 1Cloud Shell を起動する
  2. 2SQL Server(論理サーバー)を作成する
  3. 3SQL Database(Basic)を作成する
  4. 4監査ログ保存先の Storage Account を作成する
  5. 5サーバーレベル監査を有効化する
  6. 6ファイアウォール規則を追加してクエリを実行する
  7. 7.xel 監査ログの生成を確認する
  8. 8動作確認
  9. 9完了チェックリスト
  10. 10後片付け

詳細な手順は、ラボ開始後に画面内のガイドとして表示されます。

構成図

参考リソース