[Azure] NSGにリソースロックを掛けるとフローログを設定できない?
はじめに
Azureでは、「リソースロック」という仕組みがあり、「読み取り専用ロック(リソースを変更できない)」と、「削除ロック(リソースを削除できない)」とがあります。
このロックにより「予期せぬ変更を防ぐ」という統制面でのとても良い効果があるのですが、一方でロック中には想定通り動かなくなるリソースが出るなど扱いが難しい機能です。
こちらのドキュメントに、リソースをロックした場合の代表的な制約が記載されています。
たとえば、本記事の対象にする下のような制約です。
- 日本語
- 英語
ところが手元の環境で「削除ロックを掛けているのにNSGフローログを設定している」リソースがあることに気づき、あれおかしいなと思ったのが本記録のスタートです。
原文を見ても、日本語訳で間違えたわけではなさそうです。はて?
確認したこと
よくわからないことはサポートに聞いてみます。結果、下記のことがわかりました。
- 現時点では、「削除ロック」のかかったNSGにNSGフローログを設定することができる。もちろん動作も問題なし。
- 「読み取り専用ロック」の場合は、NSGフローログは設定できない。
どうやら、機能改善されているのに、ドキュメントの更新漏れのようです。
動作確認
実際に、「読み取り専用ロック」と「削除ロック」を施したNSGを用意し、NSGフローログを設定して見ました。
削除ロック
-
削除ロックを施したNSGを用意します
-
当該NSGのNSGフローログを設定します
-
デプロイします
ドキュメントの記載と違い、作成できてしまします。
読み取り専用ロック
-
読み取り専用ロックを施したNSGを用意します
-
当該NSGのNSGフローログを設定します
(画像は省略) -
デプロイに失敗します
ドキュメントの記載通り、作成に失敗します。
おわりに
サポートの方から「ドキュメントを更新する」と連絡いただいているのですが、現時点で未反映だったのと、私のような迷い人を数人でも救えたらと思ってメモを公開します。
結論、リソースロックによるNSGフローログに関する制約は
- 「削除ロック」のかかったNSGにNSGフローログを設定することができる。
- 「読み取り専用ロック」の場合は、NSGフローログは設定できない。
です。
お間違いのないよう、リソースロックライフを満喫ください。
Discussion