Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сводка
В этой статье объясняется, как устранять распространенные ошибки хранилища ключей в Шлюз приложений Azure и устранять ошибки конфигурации, которые могут нарушить управление сертификатами и безопасные подключения HTTPS.
Шлюз приложений позволяет безопасно хранить сертификаты TLS в Azure Key Vault. При использовании ресурса хранилища ключей важно, чтобы шлюз всегда имеет доступ к связанному хранилищу ключей. Если шлюз приложений не может получить сертификат, он отключает связанные прослушиватели HTTPS. Для получения дополнительной информации см. Понимание отключенных прослушивателей.
Подсказка
Используйте секретный идентификатор, который не указывает версию. С помощью этого идентификатора шлюз приложений Azure автоматически поворачивает сертификат, если новая версия доступна в Azure Key Vault. Пример секретного универсального идентификатора ресурса (URI) без версии: https://myvault.vault.azure.net/secrets/mysecret/
коды ошибок Помощник по Azure
В следующих разделах описаны различные ошибки, которые могут возникнуть. Чтобы проверить, есть ли у вашего шлюза какие-либо из этих проблем, перейдите в Помощник по Azure для вашей учетной записи. Используйте эту статью по устранению неполадок. Настройте оповещения Помощник по Azure, чтобы быть проинформированным при обнаружении проблемы с Key Vault для вашего шлюза.
Замечание
Шлюз приложений создает журналы для диагностики хранилища ключей каждые четыре часа. Если диагностика продолжает отображать ошибку после исправления конфигурации, может потребоваться дождаться обновления журналов.
Код ошибки — UserAssignedIdentityDoesNotHaveGetPermissionOnKeyVault.
Description
Связанное управляемое удостоверение, назначаемое пользователем, не имеет требуемого разрешения.
Solution
Настройте политики доступа хранилища ключей, чтобы предоставить управляемому удостоверению, назначаемому пользователем, разрешения на доступ к секретам. Это можно сделать двумя способами:
Политика доступа к хранилищу
- На портале Azure перейдите в связанное хранилище ключей.
- Выберите Политики доступа.
- Для модели разрешений выберите политику доступа Vault.
- В разделе «Операции управления секретами» выберите разрешение «Получить».
- Нажмите Сохранить.
Дополнительные сведения см. в разделе Назначение политики доступа к Key Vault через портал Azure.
Управление доступом на основе ролей в Azure (RBAC)
- На портале Azure перейдите в связанное хранилище ключей.
- Выберите Политики доступа.
- Для модели разрешений выберите управление доступом на основе ролей Azure.
- Перейдите к элементу управления доступом (IAM), чтобы настроить разрешения.
- Добавьте назначение роли для управляемой идентификации, выбрав следующие значения: a. Роль: Пользователь секретов Key Vault b. Назначение доступа: Управляемое удостоверение c. Участники: выберите управляемое удостоверение, назначенное пользователем, которое вы связали с вашим шлюзом приложений.
- Выберите кнопку Проверить + назначить.
Дополнительные сведения см. в разделе Azure управление доступом на основе ролей в Key Vault.
Замечание
Поддержка портала для добавления нового сертификата на основе хранилища ключей в настоящее время недоступна при использовании управления доступом на основе ролей Azure. Это можно сделать с помощью шаблона Azure управления ресурсами (ARM), Azure CLI или Azure PowerShell. Дополнительные сведения см. в статье "Модель разрешений управления доступом на основе ролей Azure" в Key Vault.
Код ошибки — SecretDisabled
Description
Связанный сертификат отключен в Azure Key Vault.
Solution
Включите версию сертификата, которую использует шлюз приложений. Для этого выполните следующие действия.
- На портале Azure перейдите в связанное хранилище ключей.
- Выберите Сертификаты.
- Выберите нужное имя сертификата и выберите отключенную версию.
- На странице управления используйте переключатель для включения этой версии сертификата.
Код ошибки — SecretDeletedFromKeyVault
Description
Связанный сертификат удаляется из Key Vault.
Solution
Чтобы восстановить удаленный сертификат, выполните следующие действия.
- На портале Azure перейдите в связанное хранилище ключей.
- Откройте область "Сертификаты ".
- Перейдите на вкладку "Управляемые удаленные сертификаты" для восстановления удаленного сертификата.
При окончательном удалении объекта сертификата создайте сертификат и обновите шлюз приложений с новыми сведениями о сертификате. При настройке с помощью Azure CLI или Azure PowerShell используйте URI идентификатора секрета, не содержащий версию. Этот выбор позволяет экземплярам получить обновленную версию сертификата, если она существует.
Код ошибки — UserAssignedManagedIdentityNotFound
Description
Связанное управляемое удостоверение, назначаемое пользователем, удаляется.
Solution
Создайте новое управляемое удостоверение личности и используйте его с хранилищем ключей. Для этого выполните следующие действия.
- Повторно создайте управляемое удостоверение с тем же именем, которое вы использовали ранее, и в той же ресурсной группе. Дополнительные сведения об именовании см. в журналах действий ресурсов.
- Перейдите к нужному ресурсу хранилища ключей и задайте политики доступа, чтобы предоставить этому новому управляемому удостоверению требуемое разрешение. Дополнительные сведения см. в разделе "Код ошибки: UserAssignedIdentityDoesNotHaveGetPermissionOnKeyVault".
Код ошибки : KeyVaultHasRestrictedAccess
Description
Key Vault имеет параметр ограниченной сети.
Solution
Эта ошибка возникает при включении брандмауэра Key Vault для ограниченного доступа. Настройте шлюз приложений в ограниченной сети Key Vault. Для этого выполните следующие действия.
- В Key Vault выберите "Сеть".
- Перейдите на вкладку "Брандмауэры и виртуальные сети ", а затем выберите частную конечную точку и выбранные сети.
- Используйте Azure Virtual Network для добавления виртуальной сети и подсети шлюза приложений.
- Установите флажок Microsoft.KeyVault.
- Выберите Да. Это действие позволяет доверенным службам обойти брандмауэр Key Vault.
Код ошибки : KeyVaultSoftDeleted
Description
Связанное хранилище ключей находится в состоянии обратимого удаления.
Solution
Найдите удаленный ресурс хранилища ключей. Для этого выполните следующие действия.
- На портале Azure найдите хранилище ключей.
- В службах выберите хранилища ключей.
- Выберите Управляемые удаленные хранилища.
- Найдите удаленный ресурс хранилища ключей и восстановите его.
Код ошибки — CustomerKeyVaultSubscriptionDisabled
Description
Подписка для Key Vault отключена.
Solution
Различные причины могут привести к отключению подписки Azure. Чтобы устранить эту проблему, см. статью "Повторно активировать отключенную подписку Azure".
Коды ошибок шлюза приложений
Код ошибки : ApplicationGatewayCertificateDataOrKeyVaultSecretIdMustBeSpecified / ApplicationGatewaySslCertificateDataMustBeSpecified»
Description
Эта ошибка возникает при попытке обновить сертификат прослушивателя. При возникновении этой ошибки обновление сертификата удаляется, и прослушиватель продолжает обрабатывать трафик с прежней конфигурацией.
Solution
Чтобы устранить эту проблему, попробуйте снова отправить сертификат. Например, используйте следующие команды PowerShell для обновления сертификатов, отправленных в шлюз приложений или на которые ссылается Azure Key Vault.
Обновите сертификат, отправленный непосредственно в Шлюз приложений.
$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 Key Vault.
$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
Ссылки
- Понимание и исправление отключенных прослушивателей
- Обзор состояния ресурсов Шлюз приложений Azure