どうも、フリーランスエンジニアのMakotoです。
今回は、Azure Policyについて解説します。「Policy」というワードからもわかるようにルールを定義してAzureリソースを適正に運用するための重要なサービスです。
実際の設定画面もハンズオン形式でご紹介します。画面を見ながら学習するとイメージがわきやすいと思いますので、ぜひ、最後までお読みください。
それではいってみましょう!
Azure Policyとは?
Azure Policyは、Azureリソースを組織のルールに沿った状態に保つための仕組みです。次の2つの役割があります。
- ルールに沿ったリソースの作成を強制
- ルール違反のリソースがあればお知らせ(監査)
例えば、「日本のリージョンにのみリソースの作成を許可する」とか「仮想マシンの作成を特定のサイズに限定する」といったことが可能です。
Azure Poicyを適用することにより、組織の望むあるべき姿でシステムが運用されている状態を保つことができます。こういった状態を「ガバナンスが効いている」と言ったりもします。
ガバナンス(governance)は直訳すると「統治」や「支配」を表す言葉です。セットで覚えておくと良いでしょう。
Azure Policyの仕組み
Azure Policyでは大きく次の3つの用語が登場します。
- ポリシー定義
- イニシアチブ定義
- 割り当て
一つ一つのルールのことを「ポリシー定義」と呼び、複数のポリシー定義をひとまとめにしたものを「イニシアチブ定義」と呼びます。
ポリシー定義とイニシアチブ定義の違いはAZ-900試験で問われやすいポイントです。単品かセットか、みたいな。
そして、ポリシー定義やイニシアチブ定義は、管理グループ、サブスクリプション、リソースグループといったスコープに割り当てることができます。
親スコープに対して割り当てるポリシーは子スコープに継承されます。
Azureリソースの階層構造についてはこちらの記事で詳しく解説しています。
Azure Policyの仕組みを図で表すとこんな感じ。
ポリシー定義
一つ一つのルールのこと
イニシアチブ定義
複数のポリシー定義をひとまとめにしたもの
親スコープのポリシーは子スコープに継承される
Azureポータルから設定してみた
Azureポータルでは「ポリシー」というサービス名で表示されます。ポリシーの「定義」を開くと初めから用意されている組み込み定義が一覧表示されます。
ここではリソースのリージョンを制限するための「許可されている場所」のポリシー定義を選択します。
「割り当て」を押して進めます。
続いてパラメータータブです。許可されている場所として東日本リージョンと西日本リージョンを選択します。他のタブは必須ではないのでこれで作成します。
割り当て済みの定義は「割り当て」のメニューから確認できます。
試しに日本以外のリージョンに仮想マシンを作成しようとすると「リソースの要件を満たしていません」と怒られました。Azure Policyがきちんと作用していることがわかります。
ちなみに、仮想マシンのサイズを限定した場合は許可したサイズ以外はグレーアウトして選択できません。選択後にエラーが出るよりわかりやすいですね。
なお、Azure Policyのルールが守られているかどうか(準拠状況)は「概要」や「コンプライアンス」のメニューから確認できます。
Azure Policyの注意点
AZ-900試験で問われそうな注意点をお伝えします。
これから作成を禁止するリソースがすでにある状態でAzure Policyを適用した場合、既存リソースが勝手に削除されたり変更されることはありません。
先の画面の例のように、違反の有無が表示されるだけです。
ただし、一部のポリシー定義では準拠していないリソースを「修復」する機能をサポートしています。が、ここまで問われる可能性は低いと思います。
Azure Policyは、Azureを使い始める時に組織のルールを確認した上で最初に設定しておくのが良いということですね。
まとめ
今回はAzure Policyについて実際の設定画面を交えながらご紹介しました。
Azure Policyは、ルールに沿ったリソースの作成を強制し、ルール違反のリソースがあれば「準拠していない」リソースとして警告してくれる仕組みを備えています。
組織の適切なガバナンスを実現するための代表的なサービスとしてしっかり仕組みをおさえておきましょう。