新規リソース作成時にタグ付けを必須とするポリシーの設定方法

■はじめに

新規リソース作成時にタグ付けを必須とするポリシーの設定方法を調べました。
この設定を行うことで、リソース作成時にタグ付けを失念することがないため、
タグ付けによりリソース管理を徹底したい、といったケースに有用です。
本ブログでは、新規リソース作成時にタグ付けを必須とするポリシーの設定方法、
及び設定後の動作と設定前の考慮事項について記載します。

 

 

 

■前提

一部リソースではタグ機能がサポートされておらず、タグ付けが出来ないリソースがあります。
各リソースへのタグ付けの可不可は、下記のサイトで確認できます。
Azureリソースでのタグのサポート

“タグのサポート”が”いいえ”になっているリソースは、タグ付け必須のポリシーの設定に関わらず、タグ付けが出来ません。
例えば、クラシックVMは以下画像の通りタグ付けが不可能です。
また、クラシックVMに限らず、クラシックリソースは全てタグ付けが不可能です。

 

 

 

■操作手順

“リソースでタグを必須にする”というポリシーを設定することで、新規リソース作成時にタグ付けを必須とすることが出来ます。
本節では当ポリシーの詳細な設定方法について記載します。
なお、以下手順では、タグ”BusinessUnit”の付与を必須とする場合の操作手順を記載しています。
実際に操作する際に、指定したいタグに置き換えて操作を実施してください。

 

1.AzurePortalサインイン後、[ポリシー] > [割り当て] > [ポリシーの割り当て]を押下します。
2.ポリシーの割り当ての基本タブで、以下を入力します。
 [スコープ]:※任意
 [除外]:※任意
 [ポリシー定義]:リソースでタグを必須にする
 [割り当て名]:※任意
 [説明]:※任意
 [ポリシーの適用]:有効
 [割り当て担当者]:※任意
3.パラメータタブで、以下を入力します。
 [tagName]:BusinessUnit
4.修復タブにて、[マネージドIDを作成します]のチェックを外します。
5.非準拠メッセージタブのメッセージは任意で入力します。
6.[確認および作成] > [作成]を押下したら、設定完了です。

 

 

 

■ポリシー”リソースでタグを必須にする”設定後の動作について

ポリシー”リソースでタグを必須にする”設定後は、新規リソース作成時に、指定したタグを付けないとデプロイができません。
下記の画像のように、新規リソース作成時の[確認および作成]の際に、エラーが生じます。

[タグ]タブにて指定のタグを付与することで、デプロイが可能となります。
これにより、リソース作成時にタグ付けを失念することを防げます。

 

 

 

 

■ポリシー”リソースでタグを必須にする”設定時の考慮事項について

ポリシー”リソースでタグを必須にする”を設定する際に考慮すべき事項が2点あります。

 

①ポリシーで指定したタグが付与されていない既存リソースについて、一部の変更操作が実施できなくなります。
全ての既存のリソースに指定したタグを付与済であれば問題はありませんが、
指定したタグが付与されていない既存リソースがある場合、一部の変更操作が実施できなくなるため、考慮が必要になります。
例えば、ポリシー設定後に指定したタグが付与されていないVMでは、サイズ変更が実施できなくなります。

なお、全ての変更操作ではなく、一部の変更操作が実施不可となります。
例えば、NSGの場合、移動操作は実施できませんが、セキュリティ規則の変更は実施可能です。
このようなことが起きるのは、該当操作において”ResouceType”の値がサポートされているか否かに依存します。

 

該当操作の”ResourceType”の値は、操作ログのJSONファイルから確認できます。
この値と、下記サイトに記載のある項目”タグ”を照らし合わせることで、
該当操作の”ResouceType”の値がサポートされているか否かを確認できます。
Azure resource reference – Bicep, ARM template & Terraform AzAPI reference | Microsoft Docs

※操作ログの確認は、該当操作実施後に可能となるため、”ResouceType”の値を確認するには、1度該当操作を実施する必要があります。

 

該当操作の”ResourceType”の値がサポートされている場合
“リソースでタグを必須にする”ポリシーの評価が行われ、ポリシーで指定したタグ付けがされていない場合、操作が拒否されます。
一方、該当操作の”ResourceType”の値がサポートされていない場合
“リソースでタグを必須にする”ポリシーの評価が行われないため、操作が拒否されることなく、実施可能となります。

 

NSGの移動操作を例に挙げて説明します。
NSGの移動操作時、操作ログ(JSONファイル)の”ResoureType”セクション内の”value”が、
“Microsoft.Network/networkSecurityGroup”となっています。

 

ここで、先ほどのサイト内で、”タグ”項目を確認すると、“タグ”がサポートされていることがわかります。
“タグ”がサポートされていれば該当操作は実施不可となるため、移動操作は実施不可となります。

 

一方、NSGのセキュリティ規則変更時は、操作ログの”ResoureType”セクション内の”value”は
“Microsoft.Network/networkSecurityGroup/securityRules”となっています。

ここでまたサイトを確認すると、“タグ”がサポートされていないことがわかります。

以上により、NSGの移動操作は実施不可ですが、セキュリティ規則の変更は実施可能という事象が発生します。

 

 

②Runbookの新規作成が出来ません。
Runbookはタグがサポートされているリソースのため、
ポリシー”リソースでタグを必須にする”設定後は、リソース作成時に指定したタグを付与しないとデプロイできません。
しかし、既存AutomationにRunbookを新規作成する際にタグ付けをすることができない(設定項目が存在しない)ため、
Runbookを新規作成することができません。
※もしかすると、Runbook以外にも、このような矛盾により新規作成が出来ないリソースがあるかもしれません。

 

この事象は、ポリシー”リソースでタグを必須にする”設定時に、既存Automationを[除外]リソースに設定することで回避可能です。
この設定によりRunbookの新規作成が可能になります。
ただし、ここで新規作成したRunbookは作成時にタグ付けがされていないため、
タグ付けを行いたい場合は、デプロイ後にタグの付与操作をする必要があります。

 

 

 

■おわりに

新規リソース作成時にタグ付けを必須とするポリシーの設定方法を解説しました。
“リソースでタグを必須にする”ポリシーを設定することで、新規リソース作成時にタグ付けを必須とすることが可能です。
しかし、ポリシー設定後は指定したタグが付いていないリソースに対して操作が制限される可能性があるため、
設定後の動作について十分に考慮した上で、ポリシー設定を行う必要があります。

いいね (この記事が参考になった人の数:2)
(↑参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルプロセス&テクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください