Azure Policyの設定手順、効果をAzure VMサイズ制限で確認
Azure Policy(ポリシー)の設定手順や、ポリシー適用時の挙動について簡単にまとめました。
今回は、仮想マシン(Azure VM)のサイズ制限を例に確認しています。
-
- ポリシーの概要や効果
- ビルトインポリシー(仮想マシンのサイズ制限)の適用手順
- ポリシー割り当て後の動作確認
- ポリシーが適用された際のログ確認
※本記事では、Azure Virtual Machines(Azure VM)を仮想マシンとして表記しています。
※本記事では、Azure Policyをポリシーと記載している場合があります。
※Azureのビルトインポリシーを利用して確認しています。
Azure Policyのデフォルト定義を割り当て
Azure Policyとは
Azure Policyは、Azure上のリソースに対して様々な制限やコンプライアンスルールを適用するサービスです。
リソースのデプロイや設定を制限したり、自動で修復したりすることで、組織のコンプライアンスとセキュリティを強化します。
一言でまとめると、”あらかじめ定めたルールに違反する操作を制限・禁止し、必要に応じて設定の強制や自動修復も可能なサービス”です。
セキュリティ要件を満たさないリソースの作成を防止することができます。
Azure Policyの代表的な活用例として、次のようなものがあります。
-
- リソースのデプロイを許可するリージョンを限定(他のリージョンでのリソースデプロイを禁止)
- 許可されたリソースの種類以外はデプロイできないよう制限
- 仮想マシンにNSG(ネットワークセキュリティグループ)のアタッチを強制
Azure Policyの適用範囲は、管理グループ、サブスクリプション、リソースグループなど柔軟に指定できます。
特定のリソースやリソースグループを除外する設定も可能です。
独自のルール(カスタムポリシー)を作成して組織の方針に合わせた運用も行えます。
複数のポリシー定義をまとめて、イニシアティブ定義としてグループ化できます。
これにより複数のコンプライアンス要件を一括して割り当てることも可能です。
Azure Policyの効果
Azure Policyには効果の種類があります。
Azure Policyの効果には評価の順番があります。
各効果ごとに評価の優先順位(順番)があります。
効果(評価順) | 概要 |
①Disabled |
ポリシーを無効化します。 |
②Append | 既存のリソースに新しい設定を追加します。 既存のリソースに診断設定を追加してログ収集を有効化する、といった場合に利用します。 Appendはタグ以外のプロパティ(設定項目)に対して値を追加または強制することを目的としています。 |
②Modify | 既存のリソース設定に新しい設定を追加します。 既存のリソースグループにタグを追加しするような場合などに利用します。 Modifyはタグのプロパティで使用することを目的としています。 |
③Deny | ポリシー定義に一致した場合にリソースデプロイメントを拒否またはブロックします。 ポリシー定義に合致しないリソースの作成を拒否したい場合に利用します。 |
④Audit | ポリシー定義に一致した場合にアクテビティログに出力します。 デプロイメント等の操作自体は許可されます。 |
⑤Manual | リソースまたはスコープのコンプライアンスを自己証明します。 評価をアクティブにスキャンさせずに手動の変更をコンプライアンス状態とします。 |
⑥AuditIfNotExists |
ポリシー定義に一致しないリソースの存在を監査しログに出力します。 |
⑥DeployIfNotExists |
ポリシー定義に一致しないリソースが存在した場合、一致したリソースをデプロイします。 |
⑦denyAction | リソースに対する操作をブロックするために使われます。 現時点ではDELETEのみがサポートされており、リソースの削除を防ぐことが出来ます。 |
※denyActionはプレビュー段階になります。
※同じ評価順の効果は同時に評価されます。
ビルトインのAzure Policyを適用
ビルトインのポリシー定義はサブスクリプションやリソースグループに割り当てることが出来ます。
今回はリソースグループ(test-rg)に割り当てます。
許可されている仮想マシンサイズ SKUのビルトインのポリシー定義を適用します。
※許可されている仮想マシンサイズ SKUはDenyの効果を持つポリシー定義です。
割り当ての確認
Azure Policyの割り当てを確認します。
割り当て確認 | |
ポリシーの左側のメニューで割り当てを選択します。 割り当てされているポリシーの一覧が表示されます。 リソースグループのスコープにポリシーが割り当てされています。 |
![]() |
ポリシーを選択するとポリシーの設定内容が表示されます。 パラメータ設定の内容が表示されます。 |
![]() |
コンプライアンスの表示を選択すると準拠状況が表示されます。 既存リソースの準拠準拠が分かります。 |
![]() |
適用されたポリシーの確認
新規に仮想マシンをデプロイ
新規に仮想マシンをデプロイしてAzure Policyの効果を確認します。
ポリシーの効果確認 | |
Azure Policyで許可されたサイズが選択できないようになっている事が確認出来ます。 | ![]() |
既存の仮想マシンをサイズ変更
height: 10px;
既存リソースへのAzure Policyの効果を確認します。
デプロイ済みの仮想マシンのサイズを変更して確認します。
サイズ変更して確認 | |
サイズ変更がエラーになっている事が確認出来ます。 | ![]() |
アクテビティログを確認
アクテビティログへの出力内容を確認します。
アクテビティログ | |
コンプライアンスの表示からポリシーに該当したアクテビティログを表示できます。 | ![]() |
仮想マシンの変更に失敗したログとポリシーが適用されたログが確認出来ます。 | ![]() |
準拠してない仮想マシンを起動
今回のAzure Policyはサイズ変更に対する制限になります。
準拠していない仮想マシンであったとしても起動する事は出来ます。
仮想マシンの起動は設定変更を伴いません。
その為Azure Policyが適用されません。
—広告—
最後に
今回は仮想マシンのサイズ制限を例にAzure Policy設定や挙動について確認してみました。
クラウドでの操作ミスや意図せぬ挙動を簡単な設定で防ぐことが出来るのはとても便利かと思います。
今後も引き続き試してみたいと思います。