当企业或组织的规模越来越大时,维护某一项单独的应用可能会由特定的运维人员进行管理。考虑到安全风险的问题,一般特定的运维人员不会拥有域管理员权限。自 Windows Server 2012 开始,操作系统中内置了"Hyper-V Administrators"用户组,通过该用户组,管理员可以快速为特定人员赋予权限,此组的成员拥有对 Hyper-V 所有功能的完全且不受限制的访问权限。通过为将特定运维人员的用户名添加到该用户组,即可实现其远程对 Hyper-V 的管理。
除了"Hyper-V Administrators"用户组外,还可以将用户添加至"Administrators"用户组中,为用户赋予 Hyper-V 管理权限。和第一种方法相比,后者的权限更大,本地的 "Administrators"组权限和域管理员在目标主机上的权限是一致的,都拥有完全不受限的权限。
7.1 通过用户组为普通用户添加 Hyper-V 管理权限
通过Hyper-V主机的本地用户组,将普通用户添加至相应的用户组,即可为其添加Hyper-V 管理权限。以用户组的方式来添加和修改权限,操作非常简单。
第 1 步,以域管理员身份登录 Hyper-V 主机,在操作系统左下角右键点击,于弹出菜单中选择"本地用户和组",依次点击"计算机管理(本地)"→"本地用户和组"→"组",如图 7-1 所示。
图 7-1
打开"本地用户和组"界面或者可以直接在运行中输入"lusrmgr.msc",以打开"本地用户和组",如图 7-2 所示。
图 7-2 通过命令直接打开"本地用户和组"界面
第 2 步,双击"Hyper-V Administrators"用户组,在弹出的属性窗口中,点击"添加" 按钮,如图 7-3 所示。此处如将用户添加至"Administrators"用户组,则用户不仅获得 HyperV 的管理权限,同时还将获得整个服务器的管理权限,一般不建议为特殊用户配置如此高的权限。
图 7-3 找到"Hyper-V Administrators"用户组
第 3 步,在弹出的"选择用户、计算机、服务账户和组",输入提前创建的一个普通域用户"Hyper-V 管理员 1"进行添加并点击确认,如图 7-4 所示。
图 7-4 添加需要管理的用户
第 4 步,在"Hyper-V 管理员 1"所使用的计算机上(Windows Server 2012 R2/Windows 8.1)安装"Hyper-V 管理器",可通过服务器管理器的添加角色和功能向导,依次"展开远程服务器管理器"→"角色管理工具"→"Hyper-V 管理器"进行添加,如图 7-5 所示。如果认为图形界面操作容易出错和复杂,可以以管理员方式打开 PowerShell,输入以下命令,安装"Hyper-V 管理器"。
Install-WindowsFeature
-Restart
RSAT-Hyper-V-Tools
图 7-5 通过功能向导安装"Hyper-V 管理器"
第 5 步,以"Hyper-V 管理员 1"登录计算机,打开"Hyper-V 管理器",在左侧的列表中右键点击"Hyper-V 管理器",选择"连接至服务器",并在"选择计算机"对话框中输入服务器信息。此处可以输入 Hyper-V 主机的 Netbios 名、FQDN 或者 IP 地址,以上三种方式的任意一种即可。
图 7-6 连接"Hyper-V 管理器"
第 6 步,此时可以发现,用户能够对该 Hyper-V 主机进行完整无限制的操作,如图 7-7 所示。
图 7-7 检查"Hyper-V 管理器"下的可用权限
第 7 步,如使用该账号远程连接至该 Hyper-V 主机,则会发现无权限进行此操作,完整的管理权限仅限于 Hyper-V 这个单一角色,不会影响到 Hyper-V 主机上的其他应用,如图 7-8 所示。
图 7-8"Hyper-V Administrators"用户组权限仅对 Hyper-V 生效
第 8 步,如使用未经授权的域账号连接"Hyper-V 管理器"并连接 Hyper-V 主机,会出现错误提示,告知无操作权限,如图 7-9 所示。
图 7-9Hyper-V 管理权限则无法连接目标 Hyper-V 主机
7.2Hyper-V 基于角色的安全配置
授权管理是自 Windows Server 2008 的 Hyper-V 以来附带的功能,其旨在解决域管理员与 Hyper-V 管理员不是同一人,但又需要使用 Hyper-V 进行运维的问题。在 Windows Server 2012/2012 R2 中,由简化了的授权方式:"Hyper-V Administrators"用户组所替代。"Hyper-V Administrators"用户组可使特定用户仅对特定 Hyper-V 主机的 Hyper-V 角色拥有管理权限,但这种权限配置在某些情况下依然显得有些松散。真实的要求可能是:只希望为某些人提供查看虚拟机运行状态的权限,而不希望其修改基础架构,如虚拟交换机、默认虚拟机的保存路径等信息;或者仅希望其可以完成虚拟机的重启操作,而不希望其创建虚拟机。这些细粒度的需求无法通过"Hyper-V Administrators"用户组来实现。通过"授权管理器"就可以实现如上的细致需求。
7.2.1 授权存储的使用
通过授权管理器,可以为特定用户提供细粒度的 Hyper-V 权限的细分。例如可以允许某用户只能读取 Hyper-V 主机的配置,以及查看配置信息,但是不允许其创建、修改、删除虚拟机。也可以设定只允许用户能够开启关闭虚拟机,以及创建和删除虚拟机,但无法修改
Hyper-V 主机的配置。
实现授权管理器对 Hyper-V 的管理主要包含三个环节:
- 操作:操作是授权管理器中权限的最低级别,如"创建虚拟机"、"删除虚拟机"这种具体的动作都属于"操作"。
- 任务:任务是操作的一个集合,可以包含很多个操作。
- 角色:角色可以包含多个任务,如"Hyper-V 开停机管理员"可以包含"Hyper-V 开停机所需的许可操作"这个任务集合,而任务集合中则包含 "Start Virtual Machine"和"Stop Virtual Machine"两项具体的操作。
第 1 步,授权管理器默认在操作系统中没有直接访问的快捷方式,可以通过在运行中输入"azman.msc"打开授权管理器,如图 7-10。
授权管理器是一个功能强大的工具,其不仅仅可以对 Hyper-V 角色的权限进行分配,也可以处理其他任务、以及相关的操作、用户角色的权限设定,在拥有相应的授权存储的前提下,可以实现很多功能。
图 7-10 打开授权管理器
第 2 步,在授权管理器左侧列表中右键点击"授权管理器",选择"打开授权存储",如图 7-11 所示。
图 7-11 打开授权存储
第 3 步 , 使 用 默 认 的 xml 存 储 类 型 , 在 存 储 名 称 中 直 接 输 入 " \ProgramData\Microsoft\Windows\Hyper-V\InitialStore.xml",然后点击确认,打开 Hyper-V 的默认授权策略,如图 7-12 所示。此处不输入盘符表示直接访问 Windows 系统所在的磁盘下的相应目录。
图 7-12 打开授权存储
7.2.2 授权存储角色定义
为了完成最终的 Hyper-V 基于角色的安全配置,需要对三个选项进行配置,分别是角色定义、任务定义、角色分配,首先要做的是定义角色。
依次点击"Hyper-V services"→"定义"→"角色定义",在角色定义上右键点击,选择 "新角色定义",在弹出的"新角色定义"窗口中,在名称处输入"Hyper-V 开停机管理员",描述输入"此角色仅能完成虚拟机的开停机操作",点击确定完成配置,如图 7-13 所示。
图 7-13 授权存储角色定义
7.2.3 授权存储任务定义
配置完角色定义后,需要配置任务定义,任务定义包含该角色可以执行的任务(操作),任务定义是一个集合,一个角色可以包含多个任务。
第 1 步,依次点击"Hyper-V services"→"定义"→"任务定义",在"任务定义"上右键点击,选择"新任务定义",在弹出的"新任务定义"窗口中,于名称处输入"Hyper-V 开停机所需的许可操作",如图 7-14 所示。
图 7-14 授权存储任务定义 1
第 2 步,在"新建任务定义"窗口,点击"添加"按钮,于弹出的"添加定义"对话框中选中"操作"选项卡,勾选"Start Virtual Machine"和"Stop Virtual Machine",点击确定后完成配置,如图7-15所示。
图 7-15 授权存储任务定义 2
7.2.4 角色分配
单独创建完角色定义和任务定义后,可以将角色定义和任务定义关联起来,配置完角色定义后,需要配置任务定义,任务定义包含该角色可以执行的任务(操作),任务定义是一个集合,一个角色可以包含多个任务。
第 1 步,依次点击"Hyper-V services"→"角色分配","在角色分配"上右键点击,选择"添加角色",在弹出窗口中勾选"Hyper-V 开停机管理员",点击确定完成角色添加。如图 7-16 所示。
图 7-16 角色分配 1
第 2 步,依次点击"Hyper-V services"→"角色定义",在右侧"Hyper-V 开停机管理员" 上右键点击,选择"属性",如图 7-17 所示。
图 7-17 角色分配 2
第 3 步,在"定义属性"对话框,选中"定义"选项卡,单击添加"按钮"。在弹出的添加定义对话框,选中"任务"选项卡,勾选在 7.2.3 小节创建的"Hyper-V 开停机所需的许可操作"这个任务,点击确定完成设定,如图 7-18 所示。
图 7-18 角色分配 3
第 4 步,依次点击"Hyper-V services"→"角色分配",在右侧"Hyper-V 开停机管理员" 上右键点击,依次选择"分配用户和组"→"从 Windows 和 Active Directory"……,如图 7-19 所示。
图 7-19 角色分配 4
第 5 步,在弹出的选择用户、计算机和组对话框中,添加需要赋予权限的域用户账户,点击确定完成添加,如图 7-20 所示。
图 7-20 角色分配 5
第 6 步,完成添加后,可以对比"Hyper-V services"→"角色分配"下的配置选项。其中 Administrator 下包含了"Administrators"和"Hyper-V Administrators"两个用户组,而新增加的"Hyper-V 开停机管理员"角色也已更新,包含了刚才添加的用户,如图 7-21 所示。至此角色分配的任务结束。
图 7-21 角色分配 6
7.3 小节
本章对 Windows Server 2012 起新增的"Hyper-V Administrators"用户组的功能和配置进行了介绍,同时也对自 Windows Server 2008 起出现的授权管理器进行了对比。可以发现,通过授权管理器可以获得比"Hyper-V Administrators"用户组更细致的权限划分,但不可否认,授权管理器的运维操作还是稍显复杂,这不适合在有较多服务器需要运维的场景下使用。
同时 Windows Server 2012 使用"Hyper-V Administrators"用户组其实是简化了运维操作,这种简化授权的方式是一种符合现在运维趋势的改进,能够降低运维难度。
另一个问题是:授权管理器可以对 Hyper-V 主机进行精细控制,但无法对设置针对某一台虚拟机进行精细控制。同时由于设置的复杂性,其实用性并不高,所以在生产环境中,也不再建议用户使用这个工具。
微软在 Windows Server 2012 开始做出的简化授权并不是放弃对精细管控的追求,而是在微软私有云中,有相应的工具可以实现这种功能,并且比授权管理器做的更好。通过私有云的架构,不仅可以实现对单台虚拟机的精细权限控制,还可以实现跨物理机的统一权限控制。关于这部分内容,可以关注本书的后续章节。