業務自動化とプログラミングのためのTips

自動化.work

Azure

Application GatewayでKey Vaultから証明書を読み込めない

更新日:

AzureのApplication Gateway V2だとリスナーの証明書の設定でKey Vaultから証明書をインポートできる。
しかしそのためにはKey Vaultのアクセスポリシーの権限の設定が必要。

PowerShellで設定するためのアクセスポリシーについてはPowerShellで設定ができる。
その設定はドキュメントに載っている。

Azure PowerShell で Key Vault 証明書を使用して TLS 終端を構成する

しかしポータルのGUIから設定するための設定はどうだろうか。

Application GatewayでKey Vaultから証明書を読み込むために必要な設定

結論から言えば、Key Vaultのアクセスポリシーの設定には以下の設定が必要になる。

  • マネージドIDの「シークレットのアクセス許可」の「取得」
  • ユーザーの「証明書のアクセス許可」の「取得」と「一覧」
  • ユーザーの「シークレットのアクセス許可」の「取得」

また、Key Vaultのネットワーク設定は「すべてのネットワーク」になっていなければならず、制限などをかけてはならない。

ユーザーマネージドIDのアクセスポリシー設定

ユーザーのアクセスポリシーのシークレットのアクセス許可の設定

ユーザーのアクセスポリシーの証明書のアクセス許可の設定

これらの設定がないときにどういうパターンのエラーがでるかというのが以下。

このキーコンテナーは、マネージド ID へのアクセスを許可しません。

このエラーが表示されるときはマネージドIDのアクセスポリシーの設定で「シークレットのアクセス許可」の「取得」がないために発生する。
そのため「取得」にチェックを入れて保存しておけば解消する。

キーコンテナーのアクセス許可なしエラー

証明書が「読み込んでいます ...」のままとなる

キー コンテナーでKey Vaultを選択したのにもかかわらず、証明書の欄がずっと「読み込んでいます...」は以下の状況の場合に発生する。

  1. 操作しているユーザのアクセスポリシーの設定に不備がある。
  2. Key Vaultのネットワークの「ファイアウォールと仮想ネットワーク」で「許可するアクセス元」が「すべてのネットワーク」になっていない。(自分のIPアドレスが許可されていない)

読み込んでいますエラー

ユーザーのアクセスポリシーでは「証明書のアクセス許可」の「取得」と「一覧」が必要。

ネットワークの許可するアクセス元は「すべてのネットワーク」になっている必要があり、「プライベート エンドポイントと選択されたネットワーク」を選んでVnetを追加したり、Application GatewayのIPアドレスを設定したりしても駄目である。一応自分のIPアドレスを入れればこの問題は解消できるものの、Application Gatewayからは証明書の読み込みができないので結局「すべてのネットワーク」にする必要がある。

Data または KeyVaultSecretId のいずれかを指定する必要があります。

以下のエラーが出るような場合はユーザーのシークレットアクセスの「取得」のチェックが入っていない。

アプリケーション ゲートウェイ 'xxx' に構成の変更を保存できませんでした。エラー: Application Gateway の証明書 'Application GatewayのリソースID' では、Data または KeyVaultSecretId のいずれかを指定する必要があります。

Data または KeyVaultSecretId のいずれかを指定する必要がありますエラー

アプリケーションゲートウェイの変更を保存できませんでした

以下のエラーが出るような場合はKey Vaultのネットワークの「ファイアウォールと仮想ネットワーク」で「許可するアクセス元」が「すべてのネットワーク」になっていない。

アプリケーション ゲートウェイ 'xxx' に構成の変更を保存できませんでした。エラー: 要求を解析できません。

要求を解析できません

ネットワークの許可するアクセス元は「すべてのネットワーク」になっている必要があり、「プライベート エンドポイントと選択されたネットワーク」を選んでVnetを追加したり、Application GatewayのIPアドレスを設定したりしても駄目である。


-Azure
-,

Copyright© 自動化.work , 2020 All Rights Reserved.