Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Одним из крупнейших преимуществ политики Azure является анализ и управление ресурсами в подписке или группе управления подписками. Этот элемент управления может препятствовать созданию ресурсов в неправильном расположении, принудительно применять общее и согласованное использование тегов или проверять существующие ресурсы для соответствующих конфигураций и параметров. Во всех случаях политика Azure создает данные, позволяющие понять состояние соответствия вашей среды.
Прежде чем просматривать данные о соответствии, важно понимать состояния соответствия в политике Azure.
Существует несколько способов доступа к информации о соответствии, созданной политикой и назначениями инициатив:
Прежде чем рассматривать методы для отчета о соответствии, давайте рассмотрим, когда информация о соответствии обновляется, а также частоту и события, которые активируют цикл оценки.
Триггеры оценки
Результаты завершенного цикла оценки доступны через операции Microsoft.PolicyInsights и PolicyStates в поставщике ресурсов PolicyEvents. Дополнительные сведения об операциях REST API Аналитики политик Azure см. в статье "Аналитика политик Azure".
Оценки назначенных политик и инициатив происходят в результате различных событий:
- Политика или инициатива вновь назначается области. Для применения назначения к определенной области требуется около пяти минут, а затем цикл оценки начинается для применимых ресурсов в отношении вновь назначенной политики или инициативы. В зависимости от используемых эффектов ресурсы помечаются как соответствующие, несоответствующие, исключенные или неизвестные. Большая политика или инициатива, оцененная по большому объему ресурсов, может занять некоторое время, поэтому не существует предопределенного ожидания завершения цикла оценки. После завершения обновления обновленные результаты соответствия доступны на портале и пакетах SDK для разработки программного обеспечения.
- Политика или инициатива, уже назначенная для области применения, обновляется. Цикл оценки и временные рамки для этого сценария совпадают с новым назначением в области.
- Ресурс развертывается в область применения или обновляется по назначению через Azure Resource Manager, REST API или поддерживаемый пакет SDK. В этом сценарии событие эффекта (добавление, аудит, запрет, развертывание) и соответствующие сведения о состоянии отдельного ресурса становятся доступными на портале и пакетах SDK примерно через 15 минут. Это событие не приводит к оценке других ресурсов.
- Подписка (тип
Microsoft.Resources/subscriptionsресурса) создается или перемещается в иерархии групп управления с назначенным определением политики, предназначенным для типа ресурса подписки. Оценка поддерживаемых эффектов подписки (audit, auditIfNotExist, deployIfNotExists, modify), ведения журнала и любых действий по исправлению занимает около 30 минут. - Исключение политическое создается, обновляется или удаляется. В этом сценарии соответствующее назначение оценивается для определенной области льгот.
- Цикл оценки соответствия стандарту. Каждые 24 часа назначения автоматически переоцениваются. Большая политика или инициатива многих ресурсов может занять некоторое время, поэтому предопределенное ожидание завершения цикла оценки отсутствует. После завершения обновленные результаты соответствия будут доступны в портале и SDK.
- Поставщик ресурсов конфигурации компьютера обновляется управляемым ресурсом с подробными сведениями о соответствии.
- Проверка по запросу.
Note
При проектировании политика Azure освобождает от оценки политики все ресурсы в поставщике Microsoft.Resources ресурсов, за исключением подписок и групп ресурсов, которые можно оценить.
Проверка оценки по запросу
Проверку на наличие подписки или группы ресурсов можно запустить с REST, Azure CLI, Azure PowerShell, расширение политики Azure для Visual Studio Code или действие проверки соответствия политик Azure GitHub. Сканирование по запросу — это асинхронный процесс, который занимает много времени для выполнения, так как ресурсы оцениваются по всем назначенным политикам.
Note
Не все поставщики ресурсов Azure поддерживают проверки по запросу. Например, диспетчер виртуальных сетей Azure (AVNM) в настоящее время не поддерживает триггеры вручную или стандартный цикл оценки соответствия политик (ежедневные проверки).
Проверка оценки по запросу с помощью REST
В качестве асинхронного процесса конечная точка REST для запуска сканирования не ожидает завершения проверки. Вместо этого он предоставляет универсальный код ресурса (URI) для запроса состояния запрошенной оценки.
В каждом URI REST API существуют переменные, которые необходимо заменить собственными значениями:
-
{resourceGroupName}: замените именем группы ресурсов. -
{subscriptionId}: замените идентификатором подписки.
Проверка поддерживает оценку ресурсов в подписке или группе ресурсов. Запустите проверку по области с помощью команды REST API POST с помощью следующих структур URI:
Чтобы оценить подписку, используйте следующую команду. Вы можете выполнить команду из браузера в политиках — активировать оценку подписки с помощью параметра "Попробовать".
POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01
Чтобы оценить группу ресурсов, используйте следующую команду. Вы можете выполнить команду из браузера в состояниях политики— активировать оценку группы ресурсов с помощью параметра "Попробовать".
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01
Вызовы REST API подписки и группы ресурсов возвращают состояние 202 Принято . В заголовке ответа входит свойство со следующим форматом location :
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/asyncOperationResults/{ResourceContainerGUID}?api-version=2019-10-01
{ResourceContainerGUID} статически создается для запрошенной области. Если область уже выполняет проверку по запросу, новая проверка не запускается. Вместо этого новый запрос предоставляется тот же {ResourceContainerGUID}location универсальный код ресурса (URI) для состояния. Команда GET REST API в location URI возвращает 202 Accepted во время оценки. После завершения проверки оценки возвращается состояние 200 ОК . Текст завершенной проверки — это ответ JSON со состоянием: succeeded
Проверка оценки по запросу с помощью Azure CLI
Проверка соответствия запускается с помощью команды az policy state trigger-scan .
По умолчанию az policy state trigger-scan запускает оценку для всех ресурсов в текущей подписке. Чтобы запустить оценку для определенной группы ресурсов, используйте resource-group этот параметр. В следующем примере запускается проверка соответствия в текущей подписке для группы ресурсов. Замените resourceGroupName именем группы ресурсов:
az policy state trigger-scan --resource-group "resourceGroupName"
Вы можете не ожидать завершения асинхронного процесса, прежде чем продолжать работу с параметром no-wait .
Проверка оценки по запросу с помощью Azure PowerShell
Проверка соответствия запущена с помощью командлета Start-AzPolicyComplianceScan .
По умолчанию Start-AzPolicyComplianceScan запускает оценку для всех ресурсов в текущей подписке. Чтобы запустить оценку для определенной группы ресурсов, используйте ResourceGroupName этот параметр. В следующем примере запускается проверка соответствия в текущей подписке для группы ресурсов. Замените resourceGroupName именем группы ресурсов:
Start-AzPolicyComplianceScan -ResourceGroupName 'resourceGroupName'
Вы можете ожидать завершения асинхронного вызова PowerShell перед предоставлением выходных данных результатов или выполнением в фоновом режиме в качестве задания. Чтобы использовать задание PowerShell для выполнения проверки соответствия требованиям в фоновом режиме, используйте AsJob параметр и задайте для объекта значение, например $job в этом примере:
$job = Start-AzPolicyComplianceScan -AsJob
Вы можете проверить состояние задания, проверив $job объект. Задание имеет тип Microsoft.Azure.Commands.Common.AzureLongRunningJob. Используйте Get-Member объект $job для просмотра доступных свойств и методов.
Пока выполняется проверка соответствия требованиям, проверьте $job результаты вывода объекта, например следующие:
$job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
2 Long Running O... AzureLongRunni... Running True localhost Start-AzPolicyCompliance...
После завершения State проверки соответствия свойство изменится на Completed.
Проверка оценки по запросу с помощью Visual Studio Code
Расширение политики Azure для Visual Studio Code может выполнять проверку оценки для определенного ресурса. Это синхронный процесс, в отличие от методов Azure PowerShell и REST. Дополнительные сведения и инструкции см. в разделе "Оценка по запросу" с расширением VS Code.
Проверка оценки по запросу с помощью GitHub Actions
Используйте действие проверки соответствия политик Azure , чтобы активировать проверку оценки по запросу из рабочего процесса GitHub на одном или нескольких ресурсах, группах ресурсов или подписках, а также включить рабочий процесс на основе состояния соответствия ресурсам. Вы также можете настроить рабочий процесс для запуска в запланированное время, чтобы получить последнее состояние соответствия в удобное время. При необходимости GitHub Actions может создать отчет о состоянии соответствия сканированных ресурсов для дальнейшего анализа или архивации.
В следующем примере выполняется проверка соответствия для подписки. Используйте scopes идентификатор подписки.
on:
schedule:
- cron: '0 8 * * *' # runs every morning 8am
jobs:
assess-policy-compliance:
runs-on: ubuntu-latest
steps:
- name: Login to Azure
uses: azure/login@v2
with:
creds: ${{secrets.AZURE_CREDENTIALS}}
- name: Check for resource compliance
uses: azure/policy-compliance-scan@v0
with:
scopes: |
/subscriptions/aaaa6a6a-bb7b-cc8c-dd9d-eeeeee0e0e0e
Дополнительные сведения и примеры рабочих процессов см. в репозитории GitHub Actions for Azure Policy Compliance Scan.
Portal
Портал Azure демонстрирует графический интерфейс визуализации и понимания состояния соответствия в вашей среде. На странице "Политика" параметр "Обзор " содержит сведения о доступных областях соответствия как политикам, так и инициативам. Наряду с состоянием соответствия и подсчетом на назначение он содержит диаграмму, показывающую соответствие за последние семь дней. Страница соответствия требованиям содержит большую часть этих же сведений (за исключением диаграммы), но предоставляет дополнительные параметры фильтрации и сортировки.
Так как политика или инициатива могут быть назначены разным областям, таблица включает область для каждого назначения и тип определения, который был назначен. Также предоставляются количество несоответствуемых ресурсов и несоответствуемых политик для каждого назначения. Выбор политики или инициативы в таблице дает более глубокий взгляд на соответствие конкретному назначению.
Список ресурсов на вкладке "Соответствие ресурсам " отображает состояние оценки существующих ресурсов для текущего назначения. Вкладка по умолчанию не соответствует требованиям, но может быть отфильтровано. События (добавление, аудит, запрет, развертывание, изменение), инициируемые запросом на создание ресурса, отображаются на вкладке "События ".
Для ресурсов режима поставщика ресурсов на вкладке "Соответствие ресурсам " выберите ресурс или щелкните правой кнопкой мыши строку и выберите "Просмотреть сведения о соответствии компонентов". Эта страница также предлагает вкладки для просмотра политик, назначенных этому ресурсу, событиям, событиям компонентов и журналу изменений.
Вернитесь на страницу соответствия ресурсов, выберите и удерживайте (или щелкните правой кнопкой мыши) в строке события, в который вы хотите собрать дополнительные сведения и выбрать "Показать журналы действий". Откроется страница журнала действий и префильтровываются в поиске с подробными сведениями о назначении и событиях. Журнал действий предоставляет больше контекста и сведений об этих событиях.
Note
Результаты соответствия можно экспортировать с портала с помощью запросов Azure Resource Graph.
Командная строка
Те же сведения, доступные на портале, можно получить с помощью REST API, Azure CLI и Azure PowerShell.
REST API
Дополнительные сведения о REST API см. в справочнике по политике Azure . Справочные страницы REST API имеют параметр Try It для каждой операции, которая позволяет выполнять команду в браузере. Вы также можете использовать Azure CLI или предпочитаемый клиент REST API для выполнения команд.
Сводка результатов
С помощью REST API можно суммировать по контейнерам, определению или назначению. Ниже приведен пример суммирования на уровне подписки с помощью сводки аналитики политик Azure для подписки:
POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/summarize?api-version=2019-10-01
Выходные данные суммируют подписку, а сводное соответствие содержится в nonCompliantResources свойствах и nonCompliantPolicies свойствах. Этот запрос содержит другие сведения, включая каждое назначение, состоящее из несоответствующих номеров и сведений об определении для каждого назначения. Каждый объект политики в иерархии предоставляет более подробную queryResultsUri информацию на этом уровне.
Запрос ресурсов
В предыдущем примере value.policyAssignments.policyDefinitions.results.queryResultsUri предоставляет пример URI для всех несоответствующих ресурсов для определенного определения политики. В значении $filter Значение ComplianceState равно (eq) NonCompliantPolicyAssignmentId и указывается для определения политики, а затем сам PolicyDefinitionId. Причина включения PolicyAssignmentId в фильтр заключается в том, что может PolicyDefinitionId существовать в нескольких назначениях политик или инициатив с различными областями. Указав и те PolicyAssignmentIdPolicyDefinitionId, и другие, мы можем быть явными в результатах, которые мы ищем.
PolicyStates Ранее мы использовалиlatest, что автоматически задает from и to период времени за последние 24 часа.
queryResultsUri Пример значения:
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01&$from=2025-01-01 04:28:22Z&$to=2025-02-10 04:28:22Z&$filter=ComplianceState eq 'NonCompliant' and PolicyAssignmentId eq '/subscriptions/{subscriptionId}/resourcegroups/rg-tags/providers/microsoft.authorization/policyassignments/37ce239ae4304622914f0c77' and PolicyDefinitionId eq '/providers/microsoft.authorization/policydefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62'
Просмотреть события
При создании или обновлении ресурса создается результат оценки политики. Результаты называются событиями политики. Используйте следующий универсальный код ресурса (URI) для просмотра последних событий политики, связанных с подпиской.
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyEvents/default/queryResults?api-version=2019-10-01
Дополнительные сведения о запросах событий политики см. в разделе "События политики Azure".
Azure CLI
Группа команд Azure CLI для политики Azure охватывает большинство операций, доступных в REST или Azure PowerShell. Полный список доступных команд см. в az policy.
Получите сводку состояния для самой назначенной политики с наибольшим количеством несоответствуемых ресурсов.
az policy state summarize --top 1
Получите запись состояния для последнего вычисляемого ресурса, а выходные данные по умолчанию — по метке времени в порядке убывания.
az policy state list --top 1
Получите сведения обо всех несоответствуемых ресурсах виртуальной сети.
az policy state list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'"
Получение событий, связанных с несоответствующими ресурсами виртуальной сети, которые произошли после определенной даты.
from Используйте параметр с датой в формате ISO 8601.
az policy event list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'" --from '2025-02-10T00:00:00Z'
Azure PowerShell
Вы можете выполнить следующие команды из Azure Cloud Shell.
Получите сводку состояния для самой назначенной политики с наибольшим количеством несоответствуемых ресурсов.
Get-AzPolicyStateSummary -Top 1
Получите запись состояния для последнего вычисляемого ресурса. Выходные данные по умолчанию — по метке времени в порядке убывания.
Get-AzPolicyState -Top 1
Получите сведения обо всех несоответствуемых ресурсах виртуальной сети.
Get-AzPolicyState -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'"
Получение событий, связанных с несоответствующими ресурсами виртуальной сети, которые произошли после определенной даты.
From Используйте параметр с датой в формате ISO 8601.
Get-AzPolicyEvent -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'" -From '2025-02-10'
Выходные данные включают PrincipalOid свойство, которое можно использовать для получения конкретного пользователя с помощью командлета Get-AzADUserAzure PowerShell. Замените {principalOid} значением, полученным из предыдущей команды.
(Get-AzADUser -ObjectId {principalOid}).DisplayName
Логи Azure Monitor
Если у вас есть рабочая область Log Analytics с AzureActivityрешением Activity Log Analytics , привязанным к подписке, вы также можете просмотреть результаты несоответствия из оценки новых и обновленных ресурсов с помощью запросов Kusto и AzureActivity таблицы. С подробными сведениями в журналах Azure Monitor оповещения можно настроить для отслеживания несоответствия требованиям.
Azure Resource Graph
Записи соответствия хранятся в Azure Resource Graph (ARG). Данные можно экспортировать из запросов ARG для формирования настраиваемых панелей мониторинга на основе областей и политик, интересующих вас. Ознакомьтесь с нашими примерами запросов на экспорт данных соответствия с помощью ARG.
Дальнейшие шаги
- Изучите примеры на странице примеров Политики Azure.
- Изучите статью о структуре определения Политики Azure.
- Изучите понимание последствий политики.
- Узнайте о программном создании политик.
- Узнайте, как исправлять несоответствующие ресурсы.
- Дополнительные сведения о группе управления см. в статье Упорядочивание ресурсов с помощью групп управления Azure.