🤖

Microsoft Copilot for Security の Security Compute Unit (SCU) のデプロイを自動化

2024/04/08に公開

はじめに

Microsoft Copilot for Security を使用するために Azure リソースとして Security Compute Unit (SCU) をデプロイする必要があります。なお、Azure 上のリソースの種類は 「Microsoft Copilot for Security compute capacities」になっています。こちら、Azure ポータルや Microsoft Copilot for Security のコンソールで作成や拡張、削除できるのですが、それなりに価格が高いこともあり、作成・拡張・削除を自動化したい要件があるかと思います。(特に検証や PoC の場合)
現時点では、Azure PowerShell などが提供されていないため、今回は Azure REST API から作成や削除できるようにします。

スクリプト

作成用と削除用でそれぞれ以下のスクリプトを使用し、API をキックします。Bearer トークンの取得などが面倒なので、API キックは Azure PowerShell の Invoke-AzRestMethod を使用します。なお、SCU 追加などの更新も下記の作成用スクリプトで設定可能です。
https://github.com/katsato-ms/Microsoft/blob/main/Copilot for Security/Set-CfSSCU.ps1

削除用はこちらです。
https://github.com/katsato-ms/Microsoft/blob/main/Copilot for Security/Delete-CfSSCU.ps1

自動化

こちらを Azure Functions 上で動かします。以下の記事の 1 と 3 を実施します。
https://zenn.dev/microsoft/articles/d89713e72f3e67

1.Azure Functions でシステム割り当てマネージド ID を有効化
マネージド ID に付与するロールは共同作成者とします。(もちろんカスタム ロールを作成しても OK です)

3.Azure Functions に PowerShell モジュールを追加
Microsoft.Graph は今回使用しないため、Az のみで大丈夫です。

次に HTTP Trigger もしくは Time Trigger の関数を作成します。HTTP Trigger の場合は自動実行する仕組みはないため、別途 Logic Apps などで自動実行する仕組みが必要です。その代わり、Request にパラメータを埋め込み指定することが可能になります。以下は作成用の HTTP Trigger の例です。
https://github.com/katsato-ms/Microsoft/blob/main/Copilot for Security/Set-CfSSCUforAzFunctions.ps1

削除用はこちら。
https://github.com/katsato-ms/Microsoft/blob/main/Copilot for Security/Delete-CfSSCUforAzFunctions.ps1

これで SCU を自動的にデプロイや削除することが可能になります。

Microsoft (有志)

Discussion