Azure Policy
Создавайте и назначайте определения Azure Policy, чтобы автоматически обеспечивать соблюдение соглашений об именовании, разрешенных типов ресурсов и ограничений расположения на уровне подписки или группы ресурсов.
«Azure Policy» — бесплатный урок Cloud & IT Cert Prep на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cloud & IT Cert Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Что такое Azure Policy
Azure Policy — это служба управления, позволяющая определять, назначать и контролировать правила, называемые определениями политик, которые управляют конфигурацией ресурсов Azure или проверяют её. В отличие от RBAC, который определяет, кто может выполнять действия, Azure Policy определяет, какой должна быть допустимая итоговая конфигурация ресурса. С её помощью можно обеспечивать соблюдение организационных стандартов, таких как соглашения об именовании, одобренные типы ресурсов и обязательные параметры безопасности.
Определения политик
Определение политики — это документ JSON, в котором задаются условие для проверки ресурса и эффект, применяемый при выполнении условия. Azure предоставляет сотни встроенных определений политик для распространённых сценариев. Если встроенные политики не соответствуют вашему требованию, можно создать пользовательские определения политик. Определения политик являются повторно используемыми объектами и должны быть назначены определённой области, прежде чем начнут действовать.
// Example built-in policy: require a specific tag on all resources
// Policy definition logic (simplified):
{
'if': {
'field': 'tags[Environment]',
'exists': 'false'
},
'then': {
'effect': 'deny'
}
}Эффекты политик
Эффект в определении политики определяет, что происходит при срабатывании условия политики. Основные эффекты: Deny — блокирует создание или обновление ресурса, нарушающее политику; Audit — разрешает действие, но записывает предупреждение в отчёт о соответствии; Append — добавляет обязательные поля (например, теги) в ресурс до его создания; Modify — изменяет свойство существующего или нового ресурса; DeployIfNotExists — развёртывает связанный ресурс, если условие не выполнено (например, расширение диагностики для каждой VM).
Назначение политики
Назначение политики применяет определение политики к определённой области: группе управления, подписке или группе ресурсов. Все ресурсы в этой области и дочерних областях проверяются согласно назначенной политике. Назначения могут включать параметры. Например, политику, ограничивающую разрешённые регионы Azure, можно параметризовать и назначить одно и то же определение с разными списками регионов в разных группах управления.
# Assign a built-in policy to restrict allowed locations
az policy assignment create \
--name 'allowed-locations' \
--policy 'e56962a6-4747-49cd-b67b-bf8b01975c4c' \
--scope /subscriptions/<sub-id> \
--params '{"listOfAllowedLocations": {"value": ["eastus", "westeurope"]}}'
# List all policy assignments in a subscription
az policy assignment list \
--scope /subscriptions/<sub-id> \
--output tableОпределения инициатив (наборы политик)
Определение инициативы (также называемое набором политик) объединяет несколько связанных определений политик в один пакет, который можно назначить. Вместо назначения 20 отдельных политик вы назначаете одну инициативу. Azure предоставляет встроенные инициативы для таких стандартов соответствия, как ISO 27001, NIST SP 800-53, Azure Security Benchmark и PCI DSS. Например, назначение инициативы CIS Microsoft Azure Foundations Benchmark одновременно проверяет подписку более чем по 180 мерам безопасности.
# Assign the Azure Security Benchmark initiative
az policy assignment create \
--name 'azure-security-benchmark' \
--policy-set-definition '1f3afdf9-d0c9-4c3d-847f-89da613e70a8' \
--scope /subscriptions/<sub-id>Отчётность о соответствии
После назначения политики Azure проверяет все существующие ресурсы в области и создаёт отчёт о соответствии. В отчёте отображаются общий процент соответствия (соответствующие ресурсы / общее количество ресурсов), состояние соответствия каждого ресурса и конкретные условия политики, которые не были выполнены. Можно фильтровать данные по инициативе политики, области или типу ресурса. Для ресурсов, не соответствующих требованиям, указывается точное правило политики, которое они нарушили, что помогает устранить проблему.
# Get policy compliance summary
az policy state summarize \
--subscription <sub-id> \
--output json
# List all non-compliant resources
az policy state list \
--filter 'complianceState eq NonCompliant' \
--output tableЗадачи исправления
Для политик с эффектом DeployIfNotExists или Modify Azure может создавать задачи исправления, чтобы привести существующие ресурсы, не соответствующие требованиям, в соответствие. Например, для политики DeployIfNotExists, развёртывающей агент Log Analytics на каждой VM, можно запустить задачу исправления, которая установит агент на все существующие VM, где он отсутствует. Новые ресурсы автоматически исправляются при создании, а для существующих ресурсов требуется явная задача исправления.
# Create a remediation task for existing non-compliant resources
az policy remediation create \
--name 'remediate-vm-logs' \
--policy-assignment 'deploy-vm-log-analytics' \
--resource-group myRGИсключения из политик
Иногда определённые ресурсы обоснованно требуется исключить из действия политики — например, устаревший ресурс, который нельзя изменить, или одобренное исключение, зафиксированное в запросе на изменение. Исключения из политик позволяют исключить конкретный ресурс или группу ресурсов из назначения политики, не удаляя политику глобально. Для исключений можно указать срок действия и категорию (Waiver или Mitigated), чтобы документировать причину исключения.
# Create a policy exemption for a specific resource group
az policy exemption create \
--name 'legacy-rg-exemption' \
--policy-assignment 'allowed-locations' \
--scope /subscriptions/<sub-id>/resourceGroups/legacyRG \
--exemption-category Waiver \
--expires-on '2027-01-01T00:00:00Z' \
--description 'Legacy workload pending migration'DeployIfNotExists: настройка в масштабе
DeployIfNotExists — один из наиболее мощных эффектов политик. Если ресурс создаётся без обязательного связанного ресурса (например, VM без расширения диагностики), политика автоматически запускает развёртывание шаблона ARM для добавления отсутствующего компонента. Благодаря этому Azure Policy превращается в инструмент автоматического управления конфигурацией: каждая VM всегда имеет агентов мониторинга, каждая учётная запись хранения — расширенную защиту от угроз, а в каждой базе данных SQL всегда включён аудит.
Распространённые сценарии применения политик
Организации используют Azure Policy для множества сценариев управления. Ограничения расположения — разрешение ресурсов только в одобренных регионах Azure для обеспечения суверенитета данных. Разрешённые типы ресурсов — запрет развёртывания дорогостоящих или неодобренных служб. Обязательные теги — требование тегов CostCentre и Environment для всех ресурсов. Ограничения SKU — ограничение размеров VM уровнями, соответствующими затратам, в непроизводственных подписках. Базовые требования безопасности — обязательное использование TLS версии 1.2 или выше, отключение доступа к общедоступной сети для учётных записей хранения и требование частных конечных точек.
Azure Policy и RBAC
Важно понимать различия между RBAC и Azure Policy. RBAC определяет, кто может выполнять операции: он разрешает или запрещает действия на основе удостоверения. Azure Policy определяет, какой должна быть конфигурация ресурса: она проверяет и обеспечивает соблюдение свойств независимо от того, кто выполняет действие. В хорошо управляемой среде нужны оба механизма: RBAC гарантирует, что ресурсы развёртывают только авторизованные пользователи, а Azure Policy — что эти ресурсы соответствуют стандартам конфигурации.
Быстрая проверка
Проверьте своё понимание концепций Microsoft Azure Fundamentals (AZ-900), рассмотренных в этом уроке.
Итоги урока
В этом уроке вы узнали, что Azure Policy задаёт условия и эффекты для управления конфигурацией ресурсов в любой области, определения инициатив объединяют несколько политик в единый пакет соответствия, который можно назначить, а DeployIfNotExists обеспечивает автоматическое применение конфигурации к отсутствующим компонентам в масштабе. Далее мы рассмотрим теги ресурсов и блокировки ресурсов для защиты ресурсов Azure.
Часто задаваемые вопросы
Урок «Azure Policy» бесплатный?
Да — полный текст урока «Azure Policy» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cloud & IT Cert Prep, подпишись на CoddyKit PRO. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Чему я научусь в уроке «Azure Policy»?
Создавайте и назначайте определения Azure Policy, чтобы автоматически обеспечивать соблюдение соглашений об именовании, разрешенных типов ресурсов и ограничений расположения на уровне подписки или гр… Ты практикуешь Cloud & IT Cert Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cloud & IT Cert Prep?
Предыдущий опыт не требуется. Cloud & IT Cert Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Azure Policy»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cloud & IT Cert Prep?
Да. Каждый урок Cloud & IT Cert Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Группы управления и подписки
- Azure Policy
- Теги и блокировки ресурсов
- Azure Blueprints и соответствие требованиям