以前、 構成ファイルから透過的にKey Vaultへアクセス - Azureの小ネタ (改) という記事を書いたのですが、そのときは Azure リソースのマネージド ID | Microsoft Docs (旧MSI)を使った方法しか使えないと思っていましたが、最近証明書ベースでもアクセスできることがわかったのでその備忘録。
WebAppsとか、Azure VMとか、Azure リソースのマネージド ID を使える場合は特に問題ないのですが、Azure BatchとかAzure BatchとかAzure Batchでは、Azure リソースのマネージド IDが使えないので、KeyVaultへのアクセスに難儀しておりましたが、この方法を使えば透過的にいけると思います。
とはいえ、証明書作ってADにアプリ登録して、KeyVaultへのアクセス許可して、Batchに証明書登録してとうの煩雑な作業は省略できません。
ここを参照するとわかるのですが、@connectionString="connection string
が指定できることがわかります。
この中身は、こちらで解説されております。
アプリIDとテナントIDと証明書の拇印および、ストア場所を指定できます。これで証明書ベースでKeyVaultにアクセスできるということです。
RunAs=App;AppId={AppId};TenantId={TenantId};CertificateThumbprint={Thumbprint};CertificateStoreLocation={LocalMachine or CurrentUser}
いつのまにかPreviewも取れ、ドキュメントが整備されてなくてよくわからなかった仕様も分かるようになってきてますね。