Azure Automanageには「マシン構成機能」というものがあります。
本機能を利用することによりAzure上だけでなくマルチクラウド、オンプレミスにある仮想マシン内に対して、Azure Policyを使った監査および構成操作が可能となります。
本記事では、Azure AutomanageとAzure Policyを適用して、Azure VM(Windows)への特定アプリケーションのインストール状況を監査する方法についてご紹介いたします。
前提条件
本機能を利用するには、監査するVMに対して下記2点が設定されている必要があります。
- システム割り当てマネージドID
- VM拡張機能
システム割り当てマネージドIDの権限付与
前提条件を設定する際には、次のいずれかの権限が必要です。
- 仮想マシン共同作成者
- 共同作成者
- 所有者
権限を持つユーザーにて仮想マシンへアクセスし、「ID」を選択し、「システム割り当て済み」にて状態をオンを選択します。
「保存」を選択します。
「システム割り当てマネージドIDを有効化する」にて「はい」を選択します。
オブジェクトIDが付与されたことを確認します。
マネージドIDの設定は以上になります。
VM拡張機能のインストール
拡張機能のインストールはAzureポータルからは設定できないため、Azure CLIにて設定する手順を紹介いたします。
Azure CLIにログインし、以下コマンドを実行します。
- Azureにログイン
- az login
- サブスクリプションを設定
- az account set --subscription <サブスクリプション名>
- VM拡張機能をインストール ※VMを起動していないとエラーになります
- az vm extension set --publisher Microsoft.GuestConfiguration --name ConfigurationforWindows --extension-instance-name AzurePolicyforWindows --resource-group <リソースグループ名> --vm-name <VM名> --enable-auto-upgrade true
コマンドが完了するとVMの「拡張機能とアプリケーション」にて「AzurePolicyforWindows」がインストールされていることが確認できます。
VMの拡張機能のインストールは以上になります。
なお、PowershellやARMテンプレートから実行することも可能です。手順は以下リンクを参考にしてください。
Azure Automanage マシン構成 (ゲスト構成) - Azure Virtual Machines | Microsoft Learn
Windowsのアプリケーション制御ポリシー適用
ポリシーを適用する際には、次のいずれかの権限が必要です。
- リソースポリシーの共同作成者
- 所有者
Windowsのアプリケーションのインストール状況を監査するためのポリシーは以下2つ存在します。
- 指定したアプリケーションがインストールされていない Windows マシンを監査する
- →インストールされていると準拠、されていないと未準拠状態となる
- 指定したアプリケーションがインストールされている Windows マシンを監査する
- →インストールされていると未準拠、されていないと準拠状態となる
今回は「指定したアプリケーションがインストールされていない Windows マシンを監査する」の設定方法をご紹介します。
監査するアプリケーション名の確認
対象Azure VMへアプリケーションをインストールします。
※今回はサクラエディタを利用します
対象VMへログインし、以下レジストリを確認し、サクラエディタのDisplayNameを確認します。
※いずれかのレジストリに存在します。
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
- HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432node\Microsoft\Windows\CurrentVersion\Uninstall
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall
確認したところ「DisplayName」は「sakura editor(サクラエディタ)」ということが確認できます。
ポリシー適用方法
Azureポータルのポリシーの定義から「指定したアプリケーションがインストールされていない Windows マシンを監査する」を選択します。
ポリシー定義にて「割り当て」を選択します。
スコープにて管理グループ or サブスクリプション or リソースグループを選択します。
本手順ではサブスクリプションを選択します。
任意の「割り当て名」を設定して、「次へ」を選択します。
本手順では「sakuraエディタがインストールされていない Windows マシンを監査する」とします。
「詳細」では既定のまま「次へ」を選択します。
「パラメーター」のアプリケーション名でレジストリで確認したDisplayNameを入力し、「次へ」を選択します
「修復」では既定のまま「次へ」を選択します。
「非準拠メッセージ」では既定のまま「次へ」を選択します。
「確認および作成」では「作成」を選択します。
ポリシー適用後の確認
ポリシーの「割り当て」より、該当ポリシーが適用されていることが確認できます。
対象ポリシーを選択してください。※ポリシー反映に30分~ほどかかる場合があります
ポリシーの割り当てで「コンプライアンスの表示」を選択します。
サクラエディタがインストールされているものは準拠状態となっており、その他VMは未準拠状態となっています。
ポリシーの適用と確認の手順は以上となります。
終わりに
今回、お客様からの要望で本機能をお客様のAzure環境へ導入しました。案件を通じてAzure Policyの知識を深めることが出来ました。
本記事がご参考になりますと幸いです。