Azure App Service の Key Vault 参照でバージョン番号が必須じゃなくなりました!!!
追記
2021/02/14
Microsoft リージョナル ディレクター兼 Microsoft MVP の @kosmosebi さんから指摘いただきました!
従来の動作は、以下のように SecretVersion
を空にしてると最新をとってきてくれたけど、値の自動更新はしてくれなかった。今回アップデートで値の更新にも対応したらしいと…
@Microsoft.KeyVault(VaultName=myvault;SecretName=mysecret;SecretVersion=)
確かに今回のアップデートの説明文を見ると
References without a version will now be periodically checked for staleness.
とあるので、従来でもバージョンなしの指定出来てたように読めますね…。自分は今回のアップデートで入った変更に対応する前のドキュメントに記載のあった以下の記載を読んでバージョン指定しないとエラーになるもんだと思ってました…。
Versions are currently required. When rotating secrets, you will need to update the version in your application configuration. For example, a complete reference would look like the following:
まぁ、とりあえず自動更新入ったでヨシ!
本文 (元のまま)
Azure App Service のアプリケーションから Key Vault のシークレットを参照するKey Vault 参照で、今までシークレットのバージョン番号までを明示的に指定しないといけなかったんですが、ふと Azure 更新情報を見ていたら、なんと必須じゃなくなってました!!!!
従来は、Azure Functions や Web Apps から Key Vault のシークレットを参照しようとしたらアプリケーション設定に @Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931)
こんな感じでバージョン番号(最後の ec96f02080254f109c51a1f14cdb1931
部分)の指定が必須でした。
今回の更新ではバージョン番号の指定が必須ではなくなりました。なので、さっきの例は @Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret)
こんな感じに書けるようになります。
これだけで最新の値を取ってきてくれます。
今まではバージョン番号の指定が必須だったのが、バージョン番号なしでも最新の値をとってきてくれて凄く便利になりました!!
更新時の挙動は??
Key Vault の方でシークレットが更新された場合は、App Service 側の値は 1 日以内に最新の値に更新されます。もしくは App Service のアプリケーション設定の値が更新された(新しい値が追加されたり、何か値が変更された)場合は即座に Key Vault のシークレットの最新の値に更新されます。
ドキュメント
2021年2月13日現在では日本語のドキュメントは、まだバージョン番号が必須という記述になっています。
英語版のほうはバージョン番号がオプションになっているという記載に更新されていました。
そのうち、日本語の方も最新に書き換わると思いますが現時点でドキュメントを確認する場合は英語の方を見た方がよさそうです。
まとめ
App Service の Key Vault 参照が割と便利になってきました。
更新タイミングがもうちょっとリアルタイムになると嬉しい感じですが、とりあえず一歩前進って感じがしますね。
Discussion