Устранение неполадок с реализацией политики Azure в Key Vault
В этой статье показано, как устранять общие ошибки, которые могут возникнуть при настройке политики Azure для Key Vault, а также предлагаются способы их устранения.
Сведения о политике Azure для Key Vault
Политика Azure — это средство управления, которое дает пользователям возможность выполнять аудит и управлять средой Azure в нужном масштабе. Политика Azure позволяет размещать охранники на ресурсах Azure, чтобы обеспечить соответствие правилам политики. Она позволяет пользователям выполнять аудит, принудительное применение в режиме реального времени и исправление среды Azure. Результаты аудита, выполняемые политикой, будут доступны пользователям на панели мониторинга соответствия требованиям, где они смогут увидеть детализацию, из которой ресурсы и компоненты соответствуют требованиям, и которые не соответствуют требованиям.
Ведение журнала
Чтобы отслеживать, как выполняется оценка политики, вы можете просматривать журналы Key Vault. Включение ведения журнала для Azure Key Vault, которое сохраняет сведения в предоставленной учетной записи хранения Azure. Пошаговые инструкции см. в руководстве по включению ведения журнала Key Vault.
Когда вы включаете ведение журнала, автоматически создается новый контейнер с именем AzurePolicyEvaluationDetails для сбора информации о журналах, связанных с политикой, в указанной вами учетной записи хранения.
Примечание.
Вы должны строго регулировать доступ к данным мониторинга, особенно к файлам журналов, так как они могут содержать конфиденциальную информацию. Узнайте, как применять встроенную роль мониторинга Azure и ограничивать доступ.
Отдельные BLOB-объекты хранятся как текст в формате JSON.
Рассмотрим пример записи журнала для политики ключей: ключи должны иметь набор дат окончания срока действия. Эта политика выполняет аудит всех ключей в хранилищах ключей и помечает несоответствующими те из них, для которых не задана дата окончания срока действия.
{
"ObjectName": "example",
"ObjectType": "Key",
"IsComplianceCheck": false,
"EvaluationDetails": [
{
"AssignmentId": "<subscription ID>",
"AssignmentDisplayName": "[Preview]: Key Vault keys should have an expiration date",
"DefinitionId": "<definition ID>",
"DefinitionDisplayName": "[Preview]: Key Vault keys should have an expiration date",
"Outcome": "NonCompliant",
"ExpressionEvaluationDetails": [
{
"Result": "True",
"Expression": "type",
"ExpressionKind": "Field",
"ExpressionValue": "Microsoft.KeyVault.Data/vaults/keys",
"TargetValue": "Microsoft.KeyVault.Data/vaults/keys",
"Operator": "Equals"
},
{
"Result": "True",
"Expression": "Microsoft.KeyVault.Data/vaults/keys/attributes.expiresOn",
"ExpressionKind": "Field",
"ExpressionValue": "******",
"TargetValue": "False",
"Operator": "Exists"
}
]
}
]
}
В следующей таблице перечислены имена и описания полей.
Имя поля | Description |
---|---|
ObjectName | Имя объекта. |
ObjectType | Тип объекта хранилища ключей: сертификат, секрет или ключ |
IsComplianceCheck | True, если оценка произошла во время ночного аудита, false, если оценка выполнена во время создания или обновления ресурса. |
AssignmentId | Идентификатор назначения политики. |
AssignmentDisplayName | Понятное имя назначения политики. |
DefinitionId | Идентификатор определения политики для назначения. |
DefinitionDisplayName | Понятное имя определения политики для назначения. |
Результат | Результат оценки политики. |
ExpressionEvaluationDetails | Сведения об оценке, которая выполняется во время оценки политики. |
ExpressionValue | Фактическое значение указанного поля во время оценки политики. |
TargetValue | Ожидаемое значение указанного поля. |
Часто задаваемые вопросы
Восстановление Key Vault заблокировано политикой Azure
Одна из причин может заключаться в том, что ваша подписка (или группа управления) имеет политику, блокирующую восстановление. Исправление заключается в настройке политики, чтобы она не применялась при восстановлении хранилища.
Если вы видите тип RequestDisallowedByPolicy
ошибки для восстановления из-за встроенной политики, убедитесь, что вы используете самую обновленную версию.
Если вы создали настраиваемую политику с собственной логикой, вот пример части политики, которую можно использовать для настройки требования обратимого удаления. Для восстановления хранилища, удаленного с помощью функции обратимого удаления, используется тот же API, что и для создания или обновления хранилища. Но вместо определения свойств хранилища используется единственное свойство createMode со значением recover. Хранилище будет восстановлено с теми свойствами, которые у него были при удалении. Политики, которые блокируют запросы, если для них не настроены определенные свойства, также будут блокировать восстановление хранилищ, удаленных с помощью функции обратимого удаления. Исправление — включить предложение, которое заставит политику игнорировать запросы, где значение createMode равно recover:
Вы увидите предложение, которое будет заставлять политику применяться только тогда, когда значение createMode не равно recovery:
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.KeyVault/vaults"
},
{
"not": {
"field": "Microsoft.Keyvault/vaults/createMode",
"equals": "recover"
}
},
{
"anyOf": [
{
"field": "Microsoft.KeyVault/vaults/enableSoftDelete",
"exists": "false"
},
{
"field": "Microsoft.KeyVault/vaults/enableSoftDelete",
"equals": "false"
}
]
}
]
},
"then": {
"effect": "[parameters('effect')]"
}
}
Задержка при удалении назначения политики Azure в Key Vault
Microsoft.KeyVault.Data: отмена применения удаленного назначения политики может занять до 24 часов.
Исправление: обновите действие назначения политики на "Отключено".
Создание секрета с помощью шаблона ARM без оценки политики
Политики плоскости данных, которые оценивают создание секретов, не будут применимы к секретам, созданным с помощью шаблона ARM во время создания секрета. Через 24 часа, когда будет произведена автоматическая проверка соответствия, можно будет просмотреть результаты соответствия.
Следующие шаги
- См. сведения в статье Устранение ошибок при использовании Политики Azure.
- См. сведения в статье Известные проблемы с Политикой Azure.