几乎没有人会为负责管理安全权限的工作感到兴奋,但这些工作是系统管理员要完成的一个必要的职责。在本文中我将介绍如何对Hyper-V主机服务器配置和进行配置和权限管理。
我们都是使用各种各样不同的安全方法来确保只有授权用户才可以访问数据中心资源。所有的安全问题所涉及具体内容的范围从物理访问限制到网络授权和权限管理。虚拟化技术的部署又带来了一些新的需求,即要求有对用户在宿主系统上的操作类型进行具体化的能力。
管理员不直接访问客体操作系统就可以管理虚拟机,这当然是有可能的。粒度化定义授权规则的能力对生产服务器来讲非常有必要。幸运的是,Hyper-V提供定义和维护这些权限的方法。但是,等下读者就会发现,这并不是一个完全直观的方法。
Hyper-V中的默认权限
Hyper-V在默认配置下,允许本地服务器管理员群组的所有成员拥有对Hyper-V主站的全部权限。在域工作环境中,默认配置是域管理组成员拥有在宿主服务器上创建和管理虚拟机的完全权限。
虽然这些缺省配置在较小的工作环境或者测试实验室中可能运转良好,但是通常情况下有必要给那些没有完全管理权限的用户分配额外的权限,如开启和停止虚拟机的能力。下面我将介绍这些工作如何完成:
授权管理器简介
如果在Hyper-V服务器上进行指定权限工作之前没有注意到本文提到的相关信息,则指定方式可能不会很明显。例如,就不能够像在文件系统文件夹下那样,在服务器或者虚拟机对象上通过右键点击并且在属性页上设置权限。授权管理器,即所谓的AzMan(注意不要和Seinfeld 中Cosmo Kramer臭名昭著的车牌混淆),是Hyper-V定义和管理权限最基本的方法。
授权设置可以保存在XML文件(新Hyper-V中心的缺省配置)中,也可以保存在Active Directory Domain数据库中。“%ProgramData%\Microsoft\Windows\Hyper-V\InitialStore.xml”是权限设置文件的默认保存位置,如果需要修改这个设置,最好先备份这个文件(复制原始配置文件,保存在其它位置)。
使用授权管理器
Windows Server 2008中没有访问授权管理器的管理工具快捷方式,因此需要手工添加。如果访问Windows Server 2008主站上的AzMan嵌入式管理单元,可以参考以下步骤:
“运行”,之后输入“MMC”,然后点击“回车”,启动一个新àClick开始默认的Microsoft管理控制台(MMC:Microsoft Management Console)shell程序;
添加授权管理器:在“File”菜单中选择“添加/移除嵌入式管理单元(Add/Remove Snap-In)”,选择“授权管理器(Authorization Manager)”,点击“添加(Add)”。注意该步骤也包括了其它嵌入式管理单元,如Hyper-V管理器、服务型小程序以及其它可能经常用到的工具或者程序;
默认情况下,AzMan没有连接到任何特定安全存储上。通过如下方式访问缺省的Hyper-V设置:右键点击“授权管理器对象(Authorization Manager Object)”,选择“打开授权存储(Open Authorization Store)”,选择“XML文件”选项,浏览“%ProgramData%\Microsoft\Windows\Hyper-V\InitialStore.xml”。需要注意的是同时也可以访问安全设置,这些信息保存在Active Directory中或者SQL服务器数据库中。
在“文件”菜单中选择“保存该选项(Save As Option)”保存新的MMC视图,然后就可以通过管理工具程序组(Administrative Tools Program Group)快速访问授权管理器。
完成上述步骤以后,就可以开始管理设置。
管理角色指定
授权管理器使用基于角色的权限模型,该模型对于管理Windows安全的用户来讲应该比较熟悉。在授权管理器的指导步骤中第一步就是单一的默认角色分配,即管理员(如图1所示)。
无论名字如何,重要的是不要混淆这个角色指定和内置的Windows或者Active Directory 用户或组。给Hyper-V上非管理员用户完全权限,右键点击管理员对象,选择“指定用户和组(Assign Users And Groups)”。另外还可以添加Windows安全管理者或者AzMan角色(本文后面会提到)。
创建角色定义
通常情况下,希望允许特定用户在Hyper-V上执行特定类型的操作。为了达到这个目的,首先需要创建新的角色定义对象。每一角色定义包括一套应用于该角色成员的权限集合。图2所示是Hyper-V中默认的操作选项。
从名字就可以很容易地看出这些操作的所代表的含义,并且这些操作可以满足绝大多数安全管理员的需求。 有一些选项是创建角色所必须的,这些创建的角色可以创建、开启和停止虚拟机,但是没有权限管理虚拟网络和其它服务器设置。
AzMan的其它特性
尽管从表面上看到的是基本的用户接口,但是授权管理器允许用户执行其它很多安全相关的特性。在本文中并不对其做深入探讨,下面只简单地列举一些选项:
创建任务:默认情况下,Hyper-V并不包括任何任务,但是用户能够创建自己的操作集合来定义可以执行的操作类型。也有内置的操作列表,这些列表上的操作可以满足绝大多数基本的安全需求。然而,任务方式提供了一个快速并且系统化的方法,该方法基于组织需求来定义设置的组;
管理范围:默认情况下,权限管理适用于整个Hyper-V服务器。但是如果希望特定的用户可以控制特定虚拟机,则该如何解决?“范围”可以定义权限适用的特定对象以达到该需求,例如,可以允许某个用户仅仅能够开启和停止用来作为测试或者开发的虚拟机;
应用程序组:如果经常给特定对象的组指定相同的权限,可以考虑使用AzMan定义应用程序组。使用这些组就没有必要在高效的管理权限分配时创建Windows组或者Active Directory组;
审计:激活对基于AzMan安全设置的修改审计,用来保持对权限修改的跟踪。当然也可以管理能够使用AzMan对安全设置进行权限修改的用户;
脚本支持和自动化:可以使用VBScript、Jscript或者Windows PowerShell自动创建和管理安全权限。如果需要对大量宿主服务器做出修改的话,该属性非常有帮助。
小结
管理Hyper-V权限的过程并不仅仅是偶然出现的一个问题,而是在一开始就需要谨慎注意的。使用AzMan需要很多步骤,至少在第一次使用的时候是这样的。虽然缺少直观上的吸引力,但是授权管理器在安全相关的灵活性上做出了弥补。使用这个工具可以定义用户对操作和行为的权限,这是管理生产虚拟化宿主服务器的一个重要方面。要注意的是我从来没有说过安全问题是令人兴奋的,但这并不能够意味着安全问题不重要。
【编辑推荐】