🦁

app service証明書でKey Vaultにインポートしようとした時にはまった件

2025/02/05に公開

こんな内容をAzureのサポートに投げた

[お問い合わせの概要]
Application Gatewayの配下にApp Serviceを紐付け、Webアプリを作成しようとしております。
SSL証明書をApp Serviceで作成し、キーコンテナにインポートしようと考え、App Service 証明書の設定画面から「証明書の構成」を選択し、「手順 1: 格納」から「Azure Key Vault からの キー コンテナー の選択 」で対象のキーコンテナを選択したところ、以下のエラーが出力されてしまいます。

選択した Key Vault に証明書をリンクできませんでした。詳細については、下のエラーを確認してください。: The parameter keyVaultCsmId has an invalid value.

マネージドIDに「キー コンテナー シークレット責任者」、「キー コンテナー管理者」、「キー コンテナー証明書責任者」を付与してみましたが状況は変わりませんでした。
なお、操作しているユーザーはサブスクリプションに対して所有者のロールを付与しています。
本件について、事象を解消する方法をご教示ください。

端的な答え

[ご案内内容]
この度、App ServiceのSSL証明書を使用する時発生した問題について、以下の情報をご共有させていただきます。

現在、App Service 証明書でサポートされているのは Key Vault のアクセス ポリシーのみであり、RBAC モデルはサポートされていません。

詳細につきまして、以下のMicrosoft公式ドキュメントをご参照ください。
https://learn.microsoft.com/ja-jp/azure/app-service/configure-ssl-app-service-certificate?tabs=portal#store-the-certificate-in-azure-key-vault

抜粋:
現在、App Service 証明書でサポートされているのは Key Vault のアクセス ポリシーのみであり、RBAC モデルはサポートされていません。

いや、まあそうなのかも知れないけどエラー内容が不親切すぎてわかんないよ!

Key Vaultもapp service証明書も初めて使う流れで、UI的にKey Vaultを新規作成してねーみたいな流れで作らせておいて「よくわからんけど、インポートできません」みたいなエラーだされてわかるか?普通。

結局なんだったのか?

1. Key Vault アクセス ポリシーとは?

  • Key Vault 固有のアクセス管理モデルです。
  • ユーザーやアプリケーションに対して、**細かい操作権限(例: シークレットの取得、証明書の発行など)**を設定できます。
  • Key Vault 内部のリソース(シークレット、キー、証明書)専用の仕組みです。

2. なぜ App Service 証明書はアクセス ポリシーしかサポートしないのか?

  • App Service 証明書が設計上、Key Vault の細かい権限管理に依存しているため
  • RBAC(Azure全体の一貫性あるアクセス管理)は、Key Vault の高度な機能や操作(証明書の自動更新など)を完全にはカバーしていません。
  • 現状、RBAC モデルへの移行には技術的な制約があるため、App Service 証明書はアクセス ポリシーのモデルのみをサポートしています。

3. 結論

  • App Service 証明書を利用する際は、Key Vault のアクセス ポリシーを手動で設定する必要があります。
  • 将来的に RBAC モデルがサポートされる可能性はありますが、現時点ではアクセス ポリシーを使うのが必須です。

結論

まあ勉強不足と言われればそれまでなんだけども、もーすこしユーザーフレンドリーにして欲しいな。
サポートの返信は年末年始という事もあって2週間くらいかかったけど内容はかなり親切に教えてくれた。

Discussion