チュートリアル: Azure Database for MySQL - フレキシブル サーバーを使用して監査ログを構成する

適用対象: Azure Database for MySQL - フレキシブル サーバー

Azure Database for MySQL フレキシブル サーバーを使用して、監査ログを構成できます。 監査ログは、接続、管理、データ定義言語 (DDL)、データ操作言語 (DML) のイベントなどのデータベースレベルのアクティビティを追跡するために使用できます。 これらの種類のログは、通常、コンプライアンスのために使用されます。 データベース監査は通常、次のために使用されます。

  • 特定のスキーマ、テーブル、または行で発生する、または特定のコンテンツに影響を与えるすべてのアクションについて説明する。
  • ユーザー (またはその他) の説明責任に基づいて、不適切な操作を行うのを防ぐ。
  • 疑わしいアクティビティを調査する。
  • 特定のデータベース アクティビティに関するデータを監視し収集する。

この記事では、MySQL 監査ログ、Log Analytics ツール、またはブック テンプレートを使用して、Azure Database for MySQL フレキシブル サーバーの監査情報を視覚化する方法について説明します。

このチュートリアルで学習する内容は次のとおりです。

  • Azure portal または Azure CLI を使用して監査を構成する
  • 診断を設定する
  • Log Analytics を使用して監査ログを表示する
  • ブックを使用して監査ログを表示する

前提条件

Azure portal を使用して監査を構成する

  1. Azure portal にサインインします。

  2. フレキシブル サーバー インスタンスを選択します。

  3. 左側のペインの [設定] の下で [サーバー パラメーター] を選択します。

    Screenshot showing the 'Server parameters' list.

  4. audit_log_enabled パラメーターで、 [ON](オン) を選択します。

    Screenshot showing the 'audit_log_enabled' parameter switched to 'ON'.

  5. audit_log_events パラメーターのドロップダウン リストで、ログに記録するイベントの種類を選択します。

    Screenshot of the event options in the 'audit_log_events' dropdown list.

  6. audit_log_exclude_users およびaudit_log_include_users パラメーターについては、MySQL ユーザー名を入力することによって、ログに含めたりログから除外したりする MySQL ユーザーを指定します。

    Screenshot showing the MySQL usernames to be included or excluded from logging.

  7. [保存] を選択します。

    Screenshot of the 'Save' button for saving changes in the parameter values.

Azure CLI を使用して監査を構成する

別の方法として、次のコマンドを実行して、Azure CLI からフレキシブル サーバーの監査を有効にして構成することもできます。

# Enable audit logs
az mysql flexible-server parameter set \
--name audit_log_enabled \
--resource-group myresourcegroup \
--server-name mydemoserver \
--value ON

診断を設定する

監査ログは Azure Monitor 診断設定と統合されているため、次の 3 つのデータ シンクにログをパイプすることができます。

  • Log Analytics ワークスペース
  • イベント ハブ
  • ストレージ アカウント

Note

診断設定を構成する前に、データ シンクを作成する必要があります。 構成したデータ シンクで監査ログにアクセスできます。 ログが表示されるまでに最大で 10 分かかる可能性があります。

  1. 左側のウィンドウの [モニター] の下で、 [診断設定] を選択します。

  2. [診断設定] ウィンドウで、 [診断設定を追加する] を選択します。

    Screenshot of the 'Add diagnostic setting' link on the 'Diagnostic settings' pane.

  3. [名前] ボックスに、診断設定の名前を入力します。

    Screenshot of the 'Diagnostics settings' pane for selecting configuration options.

  4. 監査ログの送信先 (Log Analytics ワークスペース、イベント ハブ、またはストレージ アカウント) を指定するために、対応するチェックボックスをオンにします。

    Note

    このチュートリアルでは、監査ログを Log Analytics ワークスペースに送信します。

  5. [ログ] の [ログの種類] で、 [MySqlAuditLogs] のチェックボックスをオンにします。

  6. 監査ログをパイプするようにデータ シンクを設定した後、 [保存] を選択します。

Log Analytics を使用して監査ログを表示する

  1. Log Analytics の左側のペインの [監視] から [ログ] を選択します。

  2. [クエリ] ウィンドウを閉じます。

    Screenshot of the Log Analytics 'Queries' pane.

  3. クエリ ウィンドウでは、実行するクエリを記述できます。 たとえば、特定のサーバーで監査イベントの概要を確認するために、次のクエリを使用しました。

    AzureDiagnostics
        |where Category =='MySqlAuditLogs' 
        |project TimeGenerated, Resource, event_class_s, event_subclass_s, event_time_t, user_s ,ip_s , sql_text_s 
        |summarize count() by event_class_s,event_subclass_s 
        |order by event_class_s 
    

    Screenshot of an example Log Analytics query seeking to find a summary of audited events on a particular server.

ブックを使用して監査ログを表示する

監査に使用するブック テンプレートでは、プラットフォーム ログを送信するための診断設定を作成する必要があります。

  1. Azure Monitor の左側のペインで、 [アクティビティ ログ] を選択し、 [診断設定] を選択します。

    Screenshot showing the 'Diagnostics settings' tab on the Azure Monitor 'Activity log' pane.

  2. [診断設定] ウィンドウでは、新しい設定を追加したり、既存の設定を編集したりすることができます。 各設定には、各送信先の種類を 1 つだけ含めることができます。

    Screenshot of the Azure Monitor 'Diagnostic setting' pane for selecting log destinations.

    Note

    既に構成してあるデータ シンク (Log Analytics ワークスペース、ストレージ アカウント、またはイベント ハブ) で低速クエリ ログにアクセスできます。 ログが表示されるまでに最大で 10 分かかる可能性があります。

  3. Azure portal の左側のウィンドウの [ Azure Database for MySQL フレキシブル サーバー インスタンスの監視 ] で、[ブック] を選択 します

  4. [監査] ブックを選択します。

    Screenshot showing all workbooks in the workbook gallery.

ブックでは、次の視覚化を表示できます。

  • サービスでの管理操作
  • 監査の概要
  • 接続イベントの監査の概要
  • 接続イベントの監査
  • テーブル アクセスの概要
  • 識別されたエラー

Screenshot of workbook template 'Administrative Actions on the service'.

Screenshot of workbook template 'Audit Connection Events'.

Note

  • これらのテンプレートを編集し、要件に従ってカスタマイズすることもできます。 詳細については、「Azure Workbooks」の「編集モード」セクションを参照してください。
  • 素早く表示するために、ブックまたは Log Analytics クエリをダッシュボードにピン留めすることもできます。 詳細については、「Azure portal でダッシュボードを作成する」を参照してください。

[Administrative Actions on the service](サービスでの管理操作) ビューでは、サービスで実行されたアクティビティの詳細が表示されます。 これは、サブスクリプションのリソースに対して行われたすべての書き込み操作 (PUT、POST、DELETE) について、"何を、誰が、いつ" 行ったのかを確認するのに役立ちます。

他の視覚化を使用して、データベースの利用状況の詳細を把握することができます。 データベース セキュリティには、次の 4 つの部分があります。

  • サーバー セキュリティ: 承認されていないユーザーがデータベースにアクセスするのを防ぐ役割を担います。
  • データベース接続: 管理者は、承認された担当者がデータベースの更新を実行したかどうかを確認する必要があります。
  • テーブルのアクセス制御: 許可されているユーザーのアクセス キーと、各ユーザーが扱うことを許可されているデータベース内のテーブルを表示します。
  • データベース アクセス制限: データベースをインターネットにアップロードしたユーザーにとっては特に重要であり、外部ソースからデータベースにアクセスできないようにするのに役立ちます。

次のステップ