ある日 Azure Functions で使用しているストレージ(Web Job Storage?)のMicrosoft Defender for Storage のコストが思った以上にかかっていることに気づき、Microsoft Defender For Storage のコストや課金体系、必要性などを調べる機会があったのでまとめます。
- Azure Functions に紐づくストレージの Microsoft Defender のコストが想像よりかかっていた
- Azure Functions に紐づくストレージの Microsoft Defender は除外していいのか問題
- Microsoft Defender for Storage の保護対象から除外する方法
- Microsoft Defender for Storage の課金形態について調べてみた
- Microsoft Defender for Storage の料金を見積もるには Price Estimation Dashboard 使用する
- 結論「除外は可能だが適用の有無は自己判断で!!基本的には除外しない方が良い」
- 参考ページ
Azure Functions に紐づくストレージの Microsoft Defender のコストが想像よりかかっていた
ある日ふと Azure Functions が入っているリソースグループのコストを確認したときに、Microsoft Defender のコスト比率がリソースグループ全体のコストの5割近く発生していることに気づきました。ちなみにAzure Portalのコスト分析上はMicrosoft Defender のコストは 旧名の「Advanced Threat Protection」で表記されています。
気になったので「Advanced Threat Protection」のリソースごとのコストを調べてみたところ、上位4リソースがストレージアカウント、特に1番コストがかかっているリソースが Azure Functions で WebJobStorage に設定しているストレージであることがわかりました。
実際にファイルを格納しているストレージに課金が発生しているのはわかるのですが、Azure Functions の裏で使われているStorageが思ったよりコストがかかっていたので今回はAzure Functions で WebJobStorage に設定しているストレージにフォーカスして調べていこうと思います。
Azure Functions に紐づくストレージの Microsoft Defender は除外していいのか問題
まず、そこでまず誰もが簡単に思いつくのが、該当のストレージを Defender の対象から除外からしてしまえばいいんじゃないかというアイデア。ただしセキュリティ的にありなのか気になったのでMicrosoftのAzureサポートに問い合わせてみました。
- Q「Azure Functionsの裏で動いているStorageにもDefenderの適用はした方がよいか?」
- A 「要件や環境によって変わるので判断しかねる。ご自身で判断する必要があります」
予想通りではありましたが公式の回答は「自己責任でOFF」にしてねという回答でした。そのため、Microsoft Defender をOFFにする場合はそのリスクや必要性をしっかり調べた上、ご自身の責任で設定を行いましょう。今回のパターンではAzure Functionに紐づくStorageが外部からの脅威にされた場合どのような被害を調べる必要がありそうです。
Microsoft Defender for Storage の保護対象から除外する方法
自己責任での実施になりますが、Microsoft Defender for Storage の保護対象から ストレージアカウントを除外する方法があります。下記の公式ドキュメントで説明されていますが、要約すると除外したいリソースのタグに{"AzDefenderPlanAutoEnable":"off"} を設定してMicrosoft Defender for Storageを一度無効にして再度有効にするとMicrosoft Defender for Storage の保護対象から除外できます。
docs.microsoft.com
Microsoft Defender for Storage の課金形態について調べてみた
保護対象から外すのが難しいとなると今度はコストがどのくらいかかるのか見積もりたくなりますよね。そのためにまずMicrosoft Defender for Storageの課金体験を調べてみました。Microsoft Defender for Storage の課金体系はトランザクション数による課金となります。
価格 — Microsoft Defender | Microsoft Azure
一般的にはトランザクション数はデータ量が大きくなれば、トランザクション数も増加しますが、その他の様々な要因によって増減するため、トランザクション数を見積もることは大変難しいですね。
Microsoft Defender for Storage の料金を見積もるには Price Estimation Dashboard 使用する
Microsoft Defenerの料金を見積もる方法を調べていたところ、Microsoft Defender for Storageの料金を見積もる「Price Estimation Dashboard」が用意されていることがわかりました。
Microsoft Defender for Storage - 利点と機能 | Microsoft Docs
「Price Estimation Dashboard」を使用するには Microsoft Defender for Cloud のポータル画面から「ブック」→「価格見積もり」→「Defender for Storage」から確認することができるようです。
上記のような画面で実際の使用量に基づく Defender の推定料金を計算してくれます。詳しくは下記ページに書いてありますのでご参照ください。
Microsoft Defender for Cloud Price Estimation Dashboard - Microsoft Tech Community
このように実際に使うことわかるものなのであらかじめトランザクション数を予想してコストを見積もることは難しいことがわかりました。
結論「除外は可能だが適用の有無は自己判断で!!基本的には除外しない方が良い」
今回、「Azure Functions に紐づくストレージに Microsoft Defender for Storage を適用すべきか」、「そもそも Microsoft Defender for Storage の課金の仕組みはどうなっているのか」調べてみましたが、Microsoft Defender を切っていいと明言できる根拠はみつかりませんでした。現在のところはOFFにすることはできるが、自己責任で行う必要があるということだけわかりました。今回の件に関しては、そもそもAzure Functionsのストレージの中身の仕組みを理解するところからする行う必要があると実感したところで次回の課題にしようと思います。