Я определяю настраиваемую политику Azure с помощью этот шаблон Azure (официальное репозиторий Azure на github). В качестве параметра я просто передаю имя рабочей области аналитики журнала в параметре. Для этой цели используется приведенный ниже код PowerShell (взятый из репозитория Azure), я только что добавил -AssignIdentity
ко второй команде, если это необходимо. В качестве определения роли я даю права владельцу подписки внутри шаблона.
$definition = New-AzPolicyDefinition -Name "deploy-oms-vm-extension-windows-vm" -DisplayName "Deploy default Log Analytics VM Extension for Windows VMs." -description "This policy deploys the Log Analytics VM Extensions on Windows VMs, and connects to the selected Log Analytics workspace." -Policy 'https://raw.githubusercontent.com/Azure/azure-policy/master/samples/Compute/deploy-oms-vm-extension-windows-vm/azurepolicy.rules.json' -Parameter 'https://raw.githubusercontent.com/Azure/azure-policy/master/samples/Compute/deploy-oms-vm-extension-windows-vm/azurepolicy.parameters.json' -Mode Indexed
$definition
$assignment = New-AzPolicyAssignment -Name <assignmentname> -Scope <scope> -logAnalytics <logAnalytics> -PolicyDefinition $definition -AssignIdentity
$assignment
Политика создана правильно. Но когда я пытаюсь создать задачу исправления, задача не выполняется, и я получаю следующую ошибку:
Подробности Сообщение об ошибке авторизации кода Клиент «xxxx-xxx-xxxx-xxxx-xxxx» с идентификатором объекта «xxxx-xxx-xxxx-xxxx-xxxx» не имеет авторизации для выполнения действия «Microsoft.Resources / deployments / validate / action» сверх scope '/subscriptions/xxxx-xxx-xxxx-xxxx-xxxx/resourcegroups/rg-test/providers/Microsoft.Resources/deployments/PolicyDeployment_17825756917269472742' или область недопустима. Если доступ был предоставлен недавно, обновите свои учетные данные.
На портале я вижу, что определение политики имеет права владельца, как я определил. Но я также вижу это на странице исправления политики:
Я не понимаю причину этой ошибки. Есть у кого-нибудь идеи?