Краткое руководство. Создание назначения политики для выявления несоответствующих ресурсов с помощью Azure CLI
Чтобы понять, соответствуют ли ресурсы требованиям в Azure, прежде всего нужно определить их состояние. В этом кратком руководстве описано, как создать назначение политики для выявления несоответствующих ресурсов с помощью Azure CLI. Политика назначается группе ресурсов и проверяет виртуальные машины, которые не используют управляемые диски. После создания назначения политики вы определите несоответствующие виртуальные машины.
Azure CLI используется для создания ресурсов Azure и управления ими из командной строки или с помощью сценариев. В этом руководстве используется Azure CLI для создания назначения политики для определения в среде Azure ресурсов, не соответствующих требованиям.
При назначении встроенной политики или определения инициативы необязательно ссылаться на версию. Назначения политик встроенных определений по умолчанию для последней версии и автоматически наследуют незначительные изменения версии, если иное не указано.
Необходимые компоненты
- Если у вас нет учетной записи Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
- Azure CLI.
- Visual Studio Code.
Microsoft.PolicyInsights
необходимо зарегистрировать в подписке Azure. Чтобы зарегистрировать поставщика ресурсов, необходимо иметь разрешение на регистрацию поставщиков ресурсов. Это разрешение включается в роли участника и владельца.- Группа ресурсов с хотя бы одной виртуальной машиной, которая не использует управляемые диски.
Подключение к Azure
Из сеанса терминала Visual Studio Code подключитесь к Azure. Если у вас несколько подписок, выполните команды, чтобы задать контекст для подписки. Замените <subscriptionID>
идентификатором своей подписки Azure.
az login
# Run these commands if you have multiple subscriptions
az account list --output table
az account set --subscription <subscriptionID>
Регистрация поставщика ресурсов
Когда поставщик ресурсов зарегистрирован, он доступен для использования в подписке Azure.
Чтобы проверить, зарегистрировано ли Microsoft.PolicyInsights
оно, выполните команду Get-AzResourceProvider
. Поставщик ресурсов содержит несколько типов ресурсов. Если результат выполняется NotRegistered
Register-AzResourceProvider
:
az provider show \
--namespace Microsoft.PolicyInsights \
--query "{Provider:namespace,State:registrationState}" \
--output table
az provider register --namespace Microsoft.PolicyInsights
Команды Azure CLI используют обратную косую черту (\
) для продолжения строки для улучшения удобочитаемости. Дополнительные сведения см. в az provider.
Создание назначения политики
Используйте следующие команды, чтобы создать новое назначение политики для группы ресурсов. В этом примере используется существующая группа ресурсов, содержащая виртуальную машину без управляемых дисков. Группа ресурсов — это область назначения политики. В этом примере используются встроенные виртуальные машины аудита политики, которые не используют управляемые диски.
Выполните следующие команды и замените <resourceGroupName>
именем группы ресурсов:
rgid=$(az group show --resource-group <resourceGroupName> --query id --output tsv)
definition=$(az policy definition list \
--query "[?displayName=='Audit VMs that do not use managed disks']".name \
--output tsv)
Переменная rgid
сохраняет идентификатор группы ресурсов. Переменная definition
сохраняет имя определения политики, которое является GUID.
Выполните следующую команду, чтобы создать назначение политики:
az policy assignment create \
--name 'audit-vm-managed-disks' \
--display-name 'Audit VM managed disks' \
--scope $rgid \
--policy $definition \
--description 'Azure CLI policy assignment to resource group'
name
создает имя назначения политики, используемое в назначенииResourceId
.display-name
— имя назначения политики и отображается в портал Azure.scope
$rgid
использует переменную для назначения политики группе ресурсов.policy
назначает определение политики, хранящееся в переменной$definition
.description
можно использовать для добавления контекста о назначении политики.
Результаты назначения политики похожи на следующий пример:
"description": "Azure CLI policy assignment to resource group",
"displayName": "Audit VM managed disks",
"enforcementMode": "Default",
"id": "/subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/audit-vm-managed-disks",
"identity": null,
"location": null,
"metadata": {
"createdBy": "11111111-1111-1111-1111-111111111111",
"createdOn": "2024-02-23T18:42:27.4780803Z",
"updatedBy": null,
"updatedOn": null
},
"name": "audit-vm-managed-disks",
Если вы хотите повторно воспроизвести сведения о назначении политики, выполните следующую команду:
az policy assignment show --name "audit-vm-managed-disks" --scope $rgid
Дополнительные сведения см. в az policy assignment.
Выявление несоответствующих ресурсов
Состояние соответствия для нового назначения политики занимает несколько минут, чтобы стать активным и предоставить результаты о состоянии политики.
Используйте следующую команду, чтобы определить ресурсы, которые не соответствуют созданному назначению политики:
policyid=$(az policy assignment show \
--name "audit-vm-managed-disks" \
--scope $rgid \
--query id \
--output tsv)
az policy state list --resource $policyid --filter "(isCompliant eq false)"
Переменная policyid
использует выражение для получения идентификатора назначения политики. Параметр filter
ограничивает выходные данные несоответствующим ресурсам.
Выходные данные подробные az policy state list
, но для этой статьи complianceState
показаны NonCompliant
:
"complianceState": "NonCompliant",
"components": null,
"effectiveParameters": "",
"isCompliant": false,
Дополнительные сведения см. в az policy state.
Очистка ресурсов
Чтобы удалить назначение политики, выполните следующую команду:
az policy assignment delete --name "audit-vm-managed-disks" --scope $rgid
Чтобы выйти из сеанса Azure CLI, выполните приведенные действия.
az logout
Следующие шаги
В этом кратком руководстве вы назначили определение политики для идентификации ресурсов, не соответствующих требованиям, в среде Azure.
Дополнительные сведения о назначении политик, проверяющих соответствие ресурсов, см. в этом руководстве.