Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы понять, соответствуют ли ресурсы требованиям в 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.
Дополнительные сведения о назначении политик, проверяющих соответствие ресурсов, см. в этом руководстве.