Microsoft Copilot for Security を安全に使う.. と聞いて「ああ、あの話ね」と察した方もいるかもしれませんが、あの話をします。そうです、Microsoft Copilot for Securityで重課金を防ぐ、つまり安全に使う方法についてです。
Microsoft Copilot for Securityとは
Copilot for SecurityはMicrosoft Defender XDRに対する(Microsoft 365内のインフラ系サービスを対象とした)生成AIのサービスで、自分の会社の構成情報をもとに構成情報の解説をしてくれたり、インシデントであればその状況の解説をしてくれたり、その後に行うべきアクションを指示してくれたりします。これまでにもこのブログではサービス種類ごとに利用感などについて書いてきました。
Copilot for Security利用時の注意点
Copilot for SecurityはMicrosoft 365内のインフラ系サービスを対象とした生成AIのサービスでありながら、Copilot for Securityを利用するためのサービスはMicrosoft Azureに作成されるという、ちょっと複雑なアーキテクチャになっています。「Copilot for Securityを利用するためのサービス」というのがSecurity Computing Unit (SCU) と呼ばれる仮想プロセッサ(?)で、このプロセッサを SCU というユニット単位で購入して使うという仕組みになっています。
このことがCopilot for Securityの管理を少し複雑にしているところがあります。
そしてもっとも私たちが注意しなければならないのは1SCU / 1時間あたり4ドルの課金が発生するという点です。これは月額換算だと2880ドル(1ドル150円換算で432000円!)に相当します。また、実際に使ってみるとわかりますけど3~5SCU程度の契約をしないと課題解決する前にリソース切れになってしまうので、そう考えると結構な金額がかかってくると考えられるわけです。(実際、私もそういう請求を受けました)
いくらCopilot for Securityが便利だからといって常に使い続けるものでもありません。なのでSCUは利用するときだけ契約し、終わったら即削除!これが求められるのです。
SCUを定期的に削除する
SCUは使わなくても作成するだけで、どんどんお金を消費していくので使わないときは削除しなければなりませんが、それが人間の手作業となれば消し忘れ等のリスクがあります。そのため私はAzure Logic Appsを使って1時間おきにリソースグループを削除するように設定してみました。ロジックアプリデザイナーの画面で見るとこんな感じ。
設定をひとつずつ見てみましょう
1.Recurrence
繰り返し実行するアクションで、1時間ごとに繰り返し実行するように構成しました
2.Azure Resource Manager > リソースグループの一覧表示
指定したサブスクリプション内に存在するリソースグループの情報をまとめて取得する設定です。この情報はこの後で活躍します
3.For each
リソースグループの一覧表示で取得した情報 (Value) の数だけ繰り返し実行する設定です
4.Condition
条件にリソースグループの名前が「au-copilot」だったら、と設定しています。
私はいつもCopilot for SecurityのSCUを格納するリソースグループの名前をau-copilotとしているので、その名前を持つリソースグループがあればSCUが含まれるリソースグループだと気づけるわけです。
5.True に入れるアクション > Azure Resource Manager > リソースグループを削除
リソースグループの名前をau-copilotだったら、そのリソースグループを削除しましょうというアクションを設定しています
■ ■ ■
以上の操作により1時間に一度、au-copilotリソースグループを探し、該当するものがあれば削除してくれます。SCUを削除するときに、SCUだけを削除するか?リソースグループごと削除する必要があるか?については色々意見はあると思いますが、後述する理由により私はリソースグループから削除しています。
コストのアラートを設定する
Azureポータルのサブスクリプション > コスト管理 > 予算 からxx円以上の課金が発生したらメールで通知するという設定を行っています。
※赤い点線が私が設定した予算金額。過去に盛大にやらかしたので赤い線を思いっきり突き抜けているw
この後に予算で設定した値のxx%に達したら、xxにメールを送信するという設定を行って終わり。これで後は放っておけば、万が一の際に通知が来て気づけるわけです。
最後に私の体験談を..
冒頭の画像にもあったように私の場合は削除方法のトラブルで一時的に数百万円の請求が来て、サポートに問い合わせたら数百万円が返金されるという事象がありました。どうしてそのようなことになったのかはサポートから説明はありませんでしたが、恐らく先方のミスによるのではないかなと思います (SCUに連動する隠しリソースがあった??)。サポートの方の対応もとても速かったので大事には至らなかったのですが、そもそもこうしたことは起こらないに限ります。そんなこともあり、SCUの削除はリソースごとではなく、リソースグループ単位で行うべきと紹介しました。
ロジックアプリを1時間ごとに動かしたら今度はロジックアプリ破産が起きるんじゃないかと心配する人もいるかもしれませんが、1週間ほど動かしても100円にも満たない金額で動作しているので取るに足らないと思いますし、セーフティーガードのためにバンバン動してみてください。