Azure Policyのバージョン管理機能と周辺の悩み
はじめに
Azure PolicyはAzureのクラウドレイヤのセキュリティを守るのに欠かせないサービスです。
過去に何度か書いた解説記事も、今でも結構読んでもらえているので、世の中的にも需要があるサービスかなと思います。私自身も実運用でかなり使っているのですが、ちょっと困ることがありまして、今回はそんな悩みを書いてみます。
運用上の悩み
Azure Policyには「組み込みポリシー」と「カスタムポリシー」とあるのですが、どちらを使っていくべきか迷う場面があります。
上記の記事…もう3年も前なのですが、当時からこんな悩みを書いていますが、再度まとめるとこんな話です。
①:Azureのバージョンアップにより、Azureリソースのパラメータの持ち方が変わることがある(ので、元々のAzureポリシーの記載では、ルール違反を正しく検知できなくなる)
②:組み込みポリシーはバージョンが上がり、上記に合わせたルールの表現に変わる
③:カスタムポリシーの場合は、②を自力で修正取り込みしないといけない
④:①~②の間は、Azureポリシーが違反として検知するが、Updateされるまでガマン。
また、さらにこの新しいポリシーのルール表現に変わった後も「過去バージョンと何が変わったんだっけ?」といった管理上の悩みが残ります。上記のような破壊的変更があった時は分かりやすいのですが、微修正/カイゼンのような修正が行われたときは、何が違うのか確認するだけでも大変です…。
新機能
今月、下記のような記事が公開されました。
Azure Policy定義を取得するREST APIで、バージョン指定をすることで過去情報も取得できる…ということのようです。これで簡単に「何がUpdateされたのか」「適用しているPolicyをUpdateすべきか」を検討できるようになります。
Azure Portalで見る旧Ver.
さてこの「過去バージョン」、Azure Portalからもプレビュー機能ですが参照できます。(2024/7/31現在)
最近私の見ている運用環境で、「App Serviceに接続する際に使用するTLS接続には、最低Ver.1.2を指定すべし」というポリシー(をもとにして作ったカスタムポリシー)が正しく判定できなくなったため、元の組み込みポリシーに修正がはいってるのは?と思い調査してみました。
Azureポリシー>作成>定義から…
ということで関連するポリシーをAzure Portalから表示させてみます。
当該ポリシーのバージョンは「2.0.1」となっており、メジャーバージョンが上がってるとなると検査対象となるパラメータ自体や、取りうる値の持ち方に大きく変更が入ってる可能性が高そうです。
そこで「Select version (preview)」というボタンを押下してみると…
なんでやねん
下記のようなブレードが表示されました。
Ver.2.0.1以外のデータを持っていない…
なんでやねん…
おわりに
以上のように非常に便利そうな機能が出てきたのですが、残念ながら過去バージョンのデータの方がちゃんと保持されていないようでした。(他にもいくつか気になるポリシーをピックアップしてみたのですが、全部最新バージョンしか見当たらず…)。もし過去Verを保持しているPolicyをご存じでしたら教えてくださいー!
Discussion