Bicepを利用してストレージアカウントの診断設定を実装する機会がありましたので、簡単に紹介したいと思います。
※本記事は2023年7月時点での内容になります。
診断設定とは
診断設定とは、各AzureリソースのログやメトリックをLogAnalyticsワークスペースなどに送信する設定となります。
例えば、Blobストレージに対して診断設定を行った場合、いつ、だれがBlobに対してどのような動作をしたのかなどの情報を送信することが可能となります。
ログの出力先として指定可能なAzureリソース
- LogAnalyticsワークスペース
- Azure Storage Account
- Event Hub
Bicepで診断設定の実装
Azure Blob Storageに対して診断設定を行い、ログやメトリックの送信先をLogAnalyticsワークスペースとして実装します。
前提条件
Bicepを利用して診断設定を実装する際の前提条件は以下になります。
前提条件 | 概要 |
Bicep実行環境の準備、リソースグループ作成 |
「Bicepを試してみた-リソースグループ作成編- - JBS Tech Blog」を参照してBicep実行環境の準備、リソースグループ作成を行う |
RBAC権限の追加 | 共同作成者、所有者など |
ファイルの準備 | 「DiagnosticSettings.bicep」というファイルを用意して、Visual Studio Codeで開く |
Powershell、Azモジュールのインストール | 「Azure仮想ネットワークピアリング実装してみた -Powershell編 - JBS Tech Blog」を参照してPowershell、Azモジュールのインストールを行う |
パラメータシートの定義
DiagnosticSettings.bicepファイルを開き、パラメータ設定を行います。
設定値は以下になります。
LogAnalyticsワークスペースの作成
ログの送信先となるLogAnalyticsワークスペースの作成を行います。
DiagnosticSettings.bicepファイルに「logana」と入力して事前に定義されたスニペットから「res-log-analytics-workspace」を選択します。
赤枠部分を上記で設定した変数に変更します。
設定値は下記の通りになります。
ストレージアカウントの作成
ストレージアカウントの作成を行います。
「st」と入力して事前に定義されたスニペットから「res-storage」を選択します。
赤枠部分を上記で設定した変数に変更します。
設定値は下記の通りになります。
Blobストレージの作成
Blobストレージの作成を行います。
Blobストレージの作成は既定で定義されたスニペットに含まれていない為、以下を利用します。
parentプロパティを設定することで依存関係を指定することが可能です。
Blobストレージはストレージアカウントに含まれる必要がある為、今回は上記で作成したストレージアカウント(変数:storageaccount)を指定しています。
診断設定
ストレージアカウントの診断設定を行います。
診断設定は既定で定義されたスニペットに含まれていない為、以下を利用します。
scopeプロパティではどのリソースに対して診断設定を行うのか指定します。今回はBlobストレージに対して診断設定を行う為、変数:blobを指定します。
workspaceIdでは送信先となるLogAnalyticsワークスペースのidを指定します。
デプロイ
Poweshell でサインインします。
下記コマンドを実行して、リソースを作成します。
パラメータの値を変更したい場合は下記のように記載します。
診断設定の確認
問題なく設定されていることを確認します。
おわりに
Bicep便利なので、ぜひ使ってみてください!