ある企業が Azure Policy イニシアチブ(Initiative)を使ってセキュリティ基準を管理している。イニシアチブ定義に含まれる 1 つのポリシーが「DeployIfNotExists」効果を持ち、診断設定が存在しない VM に対して自動デプロイを行う設定になっている。ポリシーを割り当てた後、非準拠の既存 VM に対してポリシーの修復を実行したい。正しい手順として最も適切なものはどれか。
- A. Azure portal の「修復(Remediation)」タブから修復タスクを作成し、マネージド ID に必要な RBAC ロールを付与する
- B. Azure Automation の Runbook を作成し、診断設定なしの VM を検索してスクリプトで設定を適用する
- C. DeployIfNotExists ポリシーは新規リソース作成時にのみ機能するため、既存 VM への修復は手動で行う必要がある
- D. ポリシー割り当てを削除して再割り当てすると、DeployIfNotExists が自動で既存リソースに適用される
解答と解説を見る
正解: A
DeployIfNotExists(DINE)ポリシーは新規・更新リソースへの評価時に自動デプロイするが、既存の非準拠リソースには修復タスク(Remediation task)を手動でトリガーする必要がある。修復タスクはポリシーが割り当てられたスコープの既存リソースを再評価し、必要なリソースをデプロイする。この際、ポリシー割り当てに関連付けられたマネージド ID(システム割り当てまたはユーザー割り当て)にターゲットリソースへのデプロイ権限(例:Contributor や特定リソースプロバイダーの書き込み権限)を付与しておく必要がある。選択肢Dの再割り当てでは既存リソースへの DINE の自動適用は起きない。選択肢Cは誤りで、修復タスク機能により既存リソースへの適用が可能。選択肢BはAzure Automation は有効だが、Azure Policy 標準機能の修復タスクを使う方がガバナンスと一貫性の観点で優れている。
📚 関連サービスの解説: Azure RBAC