Проблемы с назначением политики Azure и нескольких подписок

У меня возникли проблемы с назначением одной из встроенных политик с параметром logAnalytics, если задействовано несколько подписок. Мне нужно сделать это с помощью кода. Вот как я пытаюсь этого добиться.

Получите ссылку на определение встроенной политики для назначения

$definition = Get-AzPolicyDefinition | Where-Object { $_.Properties.DisplayName -eq 'Deploy Log Analytics agent for Windows VMs' }

$parameter = @{
    logAnalytics = '<resourceId to my logAnalytics workspace>'
}

Создайте назначение политики со встроенным определением для вашей группы ресурсов.

New-AzPolicyAssignment -Name 'Deploy LA Agent Windows VMs' -DisplayName 'Deploy LA Agent Windows VMs' -Scope "/subscriptions/<my subscriptionId" -PolicyDefinition $definition -AssignIdentity -Location 'norwayeast' -PolicyParameterObject $parameter

Этот код работает нормально, если я назначаю политику той же подписке, где расположена рабочая область logAnalytics, но если я ограничиваю назначение политики другой подпиской и затем проверяю назначение на портале, параметр Log Analytics Workspace будет пустым. Субъект-служба, выполняющая эти команды, является владельцем обеих подписок.


person Daniel    schedule 04.12.2020    source источник


Ответы (1)


Самый простой способ применить политики к нескольким подпискам - сделать их частью группы управления. Вы можете применить политику к группе управления, и каждая подписка, являющаяся ее членом, унаследует ее.

Дополнительную информацию о группах управления можно найти здесь: https://docs.microsoft.com/en-us/azure/governance/management-groups/overview

Измененный код с использованием групп управления:

New-AzPolicyAssignment -Name 'Deploy LA Agent Windows VMs' -DisplayName 'Deploy LA Agent Windows VMs' -Scope "/providers/Microsoft.Management/managementGroups/managementGroup001" -PolicyDefinition $definition -AssignIdentity -Location 'norwayeast' -PolicyParameterObject $parameter

Примечания

  • Вам нужно будет создать группу управления и добавить к ней подписку (-ы) перед запуском любых команд.
  • Назначение подписок существующей группе управления может иметь неблагоприятные последствия, проверьте, нет ли конфликтов.
  • Вероятно, возникнет ошибка в отношении длины используемых имен, поскольку они ограничены 24 символами. Вам следует сократить или сократить их.
  • Я не тестировал этот код, поэтому, пожалуйста, еще раз проверьте документацию на сайте Microsoft перед запуском в своей среде.
person George    schedule 04.12.2020