自動是正は「何を自動にするか」で9割決まる
- 山崎行政書士事務所
- 6 時間前
- 読了時間: 6分
〜情シス向け:Azure運用の“自動是正対象”をA〜Dで分類して、事故らないルールに落とす〜
※本記事は一般的な情報提供であり、個別案件の法的助言ではありません。※当事務所(行政書士)は、規程・台帳・運用設計・証跡整備など「ガバナンスの型づくり」を中心に支援します(個別紛争・訴訟等は弁護士領域です)。
1. 情シスの現実:自動化は“正しく怖がらないと”事故装置になる
Azureの自動是正(Azure Policyの修復、Runbook、Functions等)は、運用の属人化と棚卸し地獄を終わらせる強い武器です。一方で、やり方を誤ると「全社スケールの設定変更」を一瞬で走らせる、最大級の事故リスクにもなります。
だからこそ、Microsoftが推奨する 安全なデプロイ プラクティス(SDP) の考え方(段階ロールアウト、影響の早期検出、影響範囲の制限)を、Policy含む運用に取り込むのが前提です。
結論から言うと、情シス運用で一番効くのはこれです。
自動是正の対象は、最初にA〜Dに分類して“許可範囲”を固定する。そして、クラスごとに「安全装置(Dry-run/影響上限/承認/ロールバック)」を義務化する。
2. 前提:自動是正に必須の「安全装置」4点セット
分類の前に、最低限この4点を仕組みに入れます(入ってない自動化は“禁止”扱いにするのが安定します)。
(1) Dry-run(事前差分を出す)
ARMテンプレートの What-If は「デプロイしたら何が変わるか」をプレビューでき、既存リソースは変更しない、と明記されています。
Bicepでも同様にWhat-Ifで変更予測ができ、既存リソースに変更を加えないと説明されています。
(2) 影響上限(爆風半径の制限)
Azure Policyの修復タスクには resourceCount(対象件数)、parallelDeployments(並列数)、failureThreshold(失敗率で止める)などがあり、範囲・速度を制御できます。
(3) 承認フロー(Human-in-the-loop)
Azure DevOpsの承認チェックは、ステージを実行するタイミングを手動で制御するための仕組みとして整理されています(運用環境へのデプロイ制御に一般的)。
(4) ロールバック(止血→復元)
Azure Automation Runbookは「中断された場合、先頭から再開される」と明記されています。つまり、冪等設計(何回走っても同じ結果)や復元手順が必須です。
さらにPolicyの修復は、CLIで cancel が用意されています(止血の道具)。
3. 本題:自動是正対象のA〜D分類(情シス運用ルールの型)
ここからが運用ルールの核です。“迷ったら厳しめ(C/D寄り)”が正解です。あとで緩めるのは簡単ですが、事故の後に締めるのは地獄です。
Class A:自動OK(低リスク・可逆・追加/整形中心)
定義
“誤っても致命傷になりにくい”
変更の爆風半径が小さい(スコープ・対象を絞れる)
戻しやすい(逆操作が明確)
代表例(情シスで一番効果が出る)
タグ補完/タグ標準化(costCenter、owner、env 等)
Azure Policyの modify 効果は、プロパティ/タグを「追加・更新・削除」でき、既存非準拠も修復タスクで直せる、と明記されています。
タグガバナンスをPolicyで回すチュートリアルも公開されています。
必須の安全装置(Aでも省略不可)
Dry-runログ(対象一覧・予定変更・件数)
自動化ID(マネージドID等)の最小権限
Azure Automationのセキュリティ ベストプラクティスでも、最小特権や広範スコープ付与の回避が前提として整理されています。
Class B:自動OK(ただし影響上限つき)
定義
自動化して良いが、“速度”と“範囲”を必ず縛る
一度に全量修復しない(小さく刻んで回す)
代表例
低〜中リスクの構成是正(例:タグの欠落修復を定期で回す、軽微な標準化)
「ルール違反を直す」より、「ルールに寄せる」方向の作業
実装のポイント
Policy修復タスクの resourceCount / parallelDeployments / failureThreshold を小さく設計する(最初は遅く、少なく)。
段階展開(スコープを小さく→広く)
新しいポリシーは既存リソースの“限られたサブセット”で評価し、Dev環境で doNotEnforce を使って効果をトリガーしない形でテストできる、と説明されています。
さらに、Azure Policy割り当てにSDPを適用して段階ロールアウトする方法もチュートリアル化されています。
Class C:承認必須(Change扱い=証跡必須)
定義
正しいことをしていても「業務影響」「コスト影響」「情報管理(監査)」の説明責任が重い
自動化はするが、実行前に承認ゲートを通す
代表例(情シスが“揉めやすい”領域)
診断設定(ログ転送)の大規模適用
診断設定用の組み込みポリシー/イニシアチブで、大規模に診断設定を適用する考え方が整理されています。
便利=一気に全体へ届くので、承認と証跡がないと「なぜログ量が増えた?コストは?誰が決めた?」で確実に詰まります。
ポリシーの“強制開始”(DoNotEnforce→Defaultへの切り替え)
enforcementMode の考え方(Default / DoNotEnforce)が整理されています。
Cの王道フロー(情シス向け)
Dry-run:What-If(IaC)/DoNotEnforce(Policy)
影響上限:スコープと段階ロールアウト、修復タスクは少数・低並列
承認:DevOpsの承認チェック(承認者・期限・指示を明記)
実行:RunbookやPipelineで実行
証跡:差分(What-If)+承認ログ+実行ログ+結果確認
Class D:原則禁止(自動是正しない=検知と通知まで)
定義
誤ったときの被害が大きすぎる
戻すのに時間がかかる/二次被害が出る
“止める”より“事故が起きない”が重要
代表例
ネットワーク境界・経路(公開設定、NSG/UDR/Firewall等)
RBACの特権付与/剥奪(オーナー/共同作成者相当)
削除・破壊的変更(クリーンアップ系)
Dで自動化するなら
自動は「検知→通知(→可能なら隔離)」まで
“是正実行”は二人承認+手動Changeで実施
4. 例外の扱い:例外を放置すると、統制は必ず崩壊する
分類を決めても、現場は必ず例外を求めます。問題は「例外そのもの」ではなく、期限・理由・代替統制がない例外です。
Azure Policyの適用除外(Exemption)は、expiresOn で期限を持てること、期限を迎えてもオブジェクトは削除されず“記録保持のため維持され、適用除外は無効となる”ことが明記されています。
情シス運用ルールとして、例外は必ず次をセットで台帳化してください。
期限(expiresOn)
理由(技術制約、移行期間、業務要件)
代替統制(軽減策)
次回レビュー日
(これがあるだけで監査・引継ぎが激変します)
5. “仕組み”として回す実装パターン(事故らない自動化ライン)
分類を作ったら、次はライン化です。
監視→起動→承認→実行の王道
Azure Monitorのアクション グループは、メールだけでなく Webhook、Azure 関数 などの通知/アクションを有効化できると説明されています。
Azure Automationは Webhook 1本でRunbookを起動できます(外部サービスからHTTP要求で開始)。
Runbookは入力パラメーターで、対象や条件を柔軟に制御できます。
これを組み合わせると、情シスが欲しい「自動化+統制」が作れます。
Class A/B:自動実行(影響上限あり)
Class C:アラート検知→チケット→承認→Webhookで実行
Class D:検知→即通知→手動手順へ
6. 今日から運用ルールに落とす「3点セット」
最後に、HPブログとして“すぐ使える形”に落とします。
(1) 自動是正対象カタログ(A〜D分類表)
対象(何を直す)
クラス(A/B/C/D)
実装(Policy / Runbook / IaC / Monitor)
影響上限(resourceCount/parallel等)
承認要否
ロールバック手順
例外の条件(Exemption期限)
(2) Change記録(C以上は必須)
What-If差分
承認ログ(承認者、期限、指示)
実行ログ
結果確認(成功/失敗/是正内容)
What-Ifは「変更予測」であり、既存リソースを変更しないため、Change証跡として相性が良いです。
(3) キルスイッチ手順(止血手順)
Policy強制を止める(DoNotEnforceへ、または割当の扱い見直し)
修復タスクを止める(cancel)
Runbook停止/再実行に備えた冪等設計(中断→先頭再開を前提)
7. まとめ:情シスが“楽になる自動化”は、分類で決まる
自動是正で詰む組織の共通点は、「何でも自動化しようとする」ことです。逆に強い組織は、最初にこれをやっています。
A(自動OK)を増やして運用負債を減らす
B(影響上限付き)で安全にスケールする
C(承認必須)で説明責任を担保する
D(原則禁止)は検知と通知までで止める
例外は期限付きで台帳化(放置しない)
参考リンク(Microsoft公式・URL)
# Azure Policy:安全なデプロイ(SDP)・影響評価
# Azure Policy:修復タスク/modify/適用除外
# 診断設定(ログ転送)の大規模適用
# What-If(ARM/Bicep)
# Azure Monitor(アクション グループ)
# Azure Automation(Webhook/Runbook実行/入力パラメータ/セキュリティ)
# Azure DevOps(承認)





コメント