🕌

Azure Policyのバージョン管理機能と周辺の悩み

2024/07/31に公開

はじめに

Azure PolicyはAzureのクラウドレイヤのセキュリティを守るのに欠かせないサービスです。

過去に何度か書いた解説記事も、今でも結構読んでもらえているので、世の中的にも需要があるサービスかなと思います。私自身も実運用でかなり使っているのですが、ちょっと困ることがありまして、今回はそんな悩みを書いてみます。

運用上の悩み

Azure Policyには「組み込みポリシー」と「カスタムポリシー」とあるのですが、どちらを使っていくべきか迷う場面があります。
https://zenn.dev/tomot/articles/e65770773b2213

上記の記事…もう3年も前なのですが、当時からこんな悩みを書いていますが、再度まとめるとこんな話です。

①:Azureのバージョンアップにより、Azureリソースのパラメータの持ち方が変わることがある(ので、元々のAzureポリシーの記載では、ルール違反を正しく検知できなくなる)
②:組み込みポリシーはバージョンが上がり、上記に合わせたルールの表現に変わる
③:カスタムポリシーの場合は、②を自力で修正取り込みしないといけない
④:①~②の間は、Azureポリシーが違反として検知するが、Updateされるまでガマン。

また、さらにこの新しいポリシーのルール表現に変わった後も「過去バージョンと何が変わったんだっけ?」といった管理上の悩みが残ります。上記のような破壊的変更があった時は分かりやすいのですが、微修正/カイゼンのような修正が行われたときは、何が違うのか確認するだけでも大変です…。

新機能

今月、下記のような記事が公開されました。
https://techcommunity.microsoft.com/t5/azure-governance-and-management/public-preview-announcement-azure-policy-built-in-versioning/ba-p/4186105

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