Azure 應用程式閘道 中的常見金鑰保存庫錯誤
應用程式閘道 可讓客戶安全地將 TLS 憑證儲存在 Azure 金鑰保存庫。 使用金鑰保存庫資源時,閘道可以存取連結的金鑰保存庫很重要。 如果您的 應用程式閘道 無法擷取憑證,相關聯的 HTTPS 接聽程式將會處於停用狀態。 深入了解。
本文可協助您了解錯誤碼的詳細數據,以及解決這類密鑰保存庫設定錯誤的步驟。
提示
使用未指定版本的秘密標識碼。 如此一來,如果 Azure 金鑰保存庫 中有較新版本可用,Azure 應用程式閘道 會自動輪替憑證。 沒有版本的秘密 URI 範例為: https://myvault.vault.azure.net/secrets/mysecret/
。
Azure Advisor 錯誤碼
下列各節說明您可能會遇到的各種錯誤。 您可以造訪 您帳戶的 Azure Advisor ,並使用此疑難解答文章來修正問題,以確認您的閘道是否有任何這類問題。 建議您設定 Azure Advisor 警示,以在閘道偵測到密鑰保存庫問題時保持通知。
注意
Azure 應用程式閘道 每四小時產生金鑰保存庫診斷的記錄。 如果診斷在您修正設定之後繼續顯示錯誤,您可能必須等候記錄重新整理。
錯誤碼:UserAssignedIdentityDoesNotHaveGetPermissionOnKeyVault
描述: 相關聯的使用者指派受控識別沒有必要的許可權。
解決方案: 設定金鑰保存庫的存取原則,以授與使用者指派的秘密受控識別許可權。 您可以透過下列任何方式執行此動作:
保存庫存取原則
- 移至 Azure 入口網站 中的連結金鑰保存庫。
- 開啟 [ 存取原則] 刀鋒視窗。
- 針對 [許可權模型],選取 [保存庫存取原則]。
- 在 [秘密管理作業] 底下,選取 [取得] 許可權。
- 選取儲存。
如需詳細資訊,請參閱使用 Azure 入口網站 指派 金鑰保存庫 存取原則。
Azure 角色型存取控制 \(部分機器翻譯\)
- 移至 Azure 入口網站 中連結的金鑰保存庫。
- 開啟 [ 存取原則] 刀鋒視窗。
- 針對 [ 許可權模型],選取 [Azure 角色型訪問控制]。
- 流覽至 [存取控制 (IAM) 刀鋒視窗以設定許可權。
- 選擇下列專案,為您的受控識別新增角色指派
a. 角色:金鑰保存庫 秘密使用者
b. 指派存取權給:受控識別
c. 成員:選取您已與應用程式網關相關聯的使用者指派受控識別。 - 選取檢閱+指派。
如需詳細資訊,請參閱 金鑰保存庫 中的 Azure 角色型訪問控制。
注意
使用 Azure 角色型存取控制時,目前無法使用新增金鑰保存庫型憑證的入口網站支援。 您可以使用 ARM 範本、CLI 或 PowerShell 來完成。 請瀏覽 此頁面 以取得指引。
錯誤碼:SecretDisabled
描述:金鑰保存庫 中已停用相關聯的憑證。
解決方案:重新啟用目前用於 應用程式閘道的憑證版本。
- 移至 Azure 入口網站 中的連結金鑰保存庫。
- 開啟 [ 憑證] 窗格。
- 選取必要的憑證名稱,然後選取已停用的版本。
- 在管理頁面上,使用 切換來啟用該憑證版本。
錯誤碼:SecretDeletedFromKeyVault
描述:已從 金鑰保存庫 中刪除相關聯的憑證。
解決方案: 若要復原已刪除的憑證:
- 移至 Azure 入口網站 中連結的金鑰保存庫。
- 開啟 [ 憑證] 窗格。
- 使用 [ 受控刪除的憑證 ] 索引標籤來復原已刪除的憑證。
另一方面,如果永久刪除憑證物件,您必須建立新的憑證,並使用新的憑證詳細數據更新 應用程式閘道。 當您透過 Azure CLI 或 Azure PowerShell 進行設定時,請使用不含版本的秘密標識碼 URI。 如果憑證存在,此選項可讓實例擷取更新的憑證版本。
錯誤碼:UserAssignedManagedIdentityNotFound
描述: 已刪除相關聯的使用者指派受控識別。
解決方案: 建立新的受控識別,並將其與密鑰保存庫搭配使用。
- 使用先前使用的相同名稱,以及相同資源群組底下,重新建立受控識別。 (提示:如需命名詳細數據,請參閱資源活動記錄)。
- 移至所需的金鑰保存庫資源,並設定其存取原則,將所需的許可權授與此新的受控識別。 您可以遵循與 UserAssignedIdentityDoesNotHaveGetPermissionOnKeyVault 中所述相同的步驟。
錯誤碼:KeyVaultHasRestrictedAccess
描述:金鑰保存庫 有一個受限的網路設定。
解決方式:當您啟用 金鑰保存庫 防火牆進行限制存取時,將會發生此錯誤。 您仍然可以依照下列步驟,在受限制的 金鑰保存庫 網路中設定 應用程式閘道:
- 在 [金鑰保存庫] 中,開啟 [網络] 窗格。
- 選取 [ 防火牆和虛擬網络] 索引標籤,然後選取 [私人端點] 和 [選取的網络]。
- 然後,使用 虛擬網絡,新增 應用程式閘道 的虛擬網路和子網。 在程序期間,也選取其複選框來設定 『Microsoft.KeyVault』 服務端點。
- 最後,選取 [是] 以允許信任的服務略過 金鑰保存庫 防火牆。
錯誤碼:KeyVaultSoftDeleted
描述: 相關聯的金鑰保存庫處於虛刪除狀態。
解決方案:在 Azure 入口網站 中,搜尋密鑰保存庫。 在 [服務] 底下,選取 [金鑰保存庫]。
選取 [受控已刪除的保存庫]。 您可以從這裡找到已刪除 金鑰保存庫 資源並加以復原。
錯誤碼:CustomerKeyVaultSubscriptionDisabled
描述:已停用 金鑰保存庫 的訂用帳戶。
解決方案: 您的 Azure 訂用帳戶可能會因為各種原因而停用。 若要採取必要動作來解決,請參閱 重新啟用已停用的 Azure 訂用帳戶。
應用程式閘道 錯誤碼
錯誤碼:ApplicationGatewayCertificateDataOrKeyVaultSecretIdMustBeSpecified / ApplicationGatewaySslCertificateDataMustBeSpecified
描述: 嘗試更新接聽程序憑證時,可能會遇到此錯誤。 發生此錯誤時,將會捨棄更新憑證的變更,而接聽程式將會繼續處理先前定義的組態的流量。
解決方案: 若要解決此問題,請嘗試再次上傳憑證。 例如,下列 PowerShell 命令可用來更新上傳至 應用程式閘道 或透過 Azure 金鑰保存庫 參考的憑證。
直接上傳至 應用程式閘道 的憑證:
$appgw = Get-AzApplicationGateway -ResourceGroupName "<ResourceGroup>" -Name "<AppGatewayName>"
$password = ConvertTo-SecureString -String "<password>" -Force -AsPlainText
Set-AzApplicationGatewaySSLCertificate -Name "<oldcertname>" -ApplicationGateway $appgw -CertificateFile "<newcertPath>" -Password $password
Set-AzApplicationGateway -ApplicationGateway $appgw
更新從 Azure 金鑰保存庫 參考的憑證:
$appgw = Get-AzApplicationGateway -ResourceGroupName "<ResourceGroup>" -Name "<AppGatewayName>"
$secret = Get-AzKeyVaultSecret -VaultName "<KeyVaultName>" -Name "<CertificateName>"
$secretId = $secret.Id.Replace($secret.Version, "")
$cert = Set-AzApplicationGatewaySslCertificate -ApplicationGateway $AppGW -Name "<CertificateName>" -KeyVaultSecretId $secretId
Set-AzApplicationGateway -ApplicationGateway $appgw
下一步
當您繼續使用 應用程式閘道 時,這些疑難解答文章可能會很有説明: