🔐

[Azure] NSGにリソースロックを掛けるとフローログを設定できない?

2023/08/24に公開

はじめに

Azureでは、「リソースロック」という仕組みがあり、「読み取り専用ロック(リソースを変更できない)」と、「削除ロック(リソースを削除できない)」とがあります。
このロックにより「予期せぬ変更を防ぐ」という統制面でのとても良い効果があるのですが、一方でロック中には想定通り動かなくなるリソースが出るなど扱いが難しい機能です。

こちらのドキュメントに、リソースをロックした場合の代表的な制約が記載されています。
https://learn.microsoft.com/ja-jp/azure/azure-resource-manager/management/lock-resources?tabs=json

たとえば、本記事の対象にする下のような制約です。

  • 日本語
  • 英語

ところが手元の環境で「削除ロックを掛けているのにNSGフローログを設定している」リソースがあることに気づき、あれおかしいなと思ったのが本記録のスタートです。
原文を見ても、日本語訳で間違えたわけではなさそうです。はて?

確認したこと

よくわからないことはサポートに聞いてみます。結果、下記のことがわかりました。

  • 現時点では、「削除ロック」のかかったNSGにNSGフローログを設定することができる。もちろん動作も問題なし。
  • 「読み取り専用ロック」の場合は、NSGフローログは設定できない。

どうやら、機能改善されているのに、ドキュメントの更新漏れのようです。

動作確認

実際に、「読み取り専用ロック」と「削除ロック」を施したNSGを用意し、NSGフローログを設定して見ました。

削除ロック

  • 削除ロックを施したNSGを用意します

  • 当該NSGのNSGフローログを設定します

  • デプロイします

ドキュメントの記載と違い、作成できてしまします。

読み取り専用ロック

  • 読み取り専用ロックを施したNSGを用意します

  • 当該NSGのNSGフローログを設定します
    (画像は省略)

  • デプロイに失敗します

ドキュメントの記載通り、作成に失敗します。

おわりに

サポートの方から「ドキュメントを更新する」と連絡いただいているのですが、現時点で未反映だったのと、私のような迷い人を数人でも救えたらと思ってメモを公開します。

結論、リソースロックによるNSGフローログに関する制約は

  • 「削除ロック」のかかったNSGにNSGフローログを設定することができる。
  • 「読み取り専用ロック」の場合は、NSGフローログは設定できない。

です。

お間違いのないよう、リソースロックライフを満喫ください。

Discussion