如何管理Hyper-V的安全權限?
幾乎沒有人會為負責管理安全權限的工作感到興奮,但這些工作是系統管理員要完成的一個必要的職責。在本文中我將介紹如何對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需要很多步驟,至少在第一次使用的時候是這樣的。雖然缺少直觀上的吸引力,但是授權管理器在安全相關的靈活性上做出了彌補。使用這個工具可以定義用戶對操作和行為的權限,這是管理生產虛擬化宿主服務器的一個重要方面。要注意的是我從來沒有說過安全問題是令人興奮的,但這并不能夠意味著安全問題不重要。
【編輯推薦】