Делегирование прав на Hyper-V. Часть 2 — присвоение области виртуальным машинам

Мы уже обсуждали общие вопросы модели делегирования Authorization Management Framework и Authorization Manager, используемый в Hyper-V. Сейчас пришло время более детально рассмотреть некоторые наиболее насущные вопросы. Большинство заказчиков, которым я рассказываю про модель делегирования в Hyper-V первым делом спрашивают меня, возможно ли делегировать пользователю или группе некоторые права на конкретную виртуальную машину. В Virtual Server 2005 единственным способом предоставления доступа к ограниченному набору ВМ являлось использование NTFS ограничений на конфигурационные файлы, так чтобы пользователи могли работать лишь с теми виртуальными машинами, на которые у них достаточно NTFS прав. Модель, используемая в Hyper-V позволяет настраивать это более гибко.

Одним из фундаментальных терминов Authorization Management Framework является Область (Scope). Что это такое я уже рассказывал, - очевидно, что для задачи делегирования прав на конкретные виртуальные машины следует создать область, содержащую данные машины. Создается область в консоли Authorization Manager.

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

Следующим шагом станет помещение самих виртуальных машин в созданную область. Увы, этот шаг совсем не тривиален, по крайней мере пока у вас не установлен и настроен System Center Virtual Machine Manager 2008. Средств помещения виртуальной машины в заданную область в MMC консоли AzMan нет (в ней вообще не фигурируют сами ВМ), возможностей сделать это из командной строки в версии Hyper-V RC1 я не знаю. Однако, я знаю как это можно сделать через WMI запросы, а значит, это можно сделать и средствами PowerShell. Во вложении к статье вы найдете два скрипта, которые автоматизируют эту задачу. Первый скрипт - Getscope.vbs в качестве параметра требует имя виртуальной машины, а возвращает название области, которой она принадлежит. Если возвращенное значение пустое, значит виртуальная машина принадлежит к области по умолчанию (default scope). Второй скрипт Setscope.vbs в качестве параметров требует имя виртуальной машины и название созданной области, в которую вы хотите поместить виртуальную машину. В результате работы скрипта виртуальная машина переместится в указанную область.

Наиболее сложная часть на этом закончена. Далее потребуется лишь описать Задачи (Tasks) и Роли (Roles) в данной области, и связать роли с доменными пользователями или группами. Об этом я расскажу в следующий раз. Если знатоки PowerShell помогут переписать мои скрипты в виде cmdlet'ов, буду очень признателен.

VMsScopes.zip