Windows Azure安全概述
公告 :本博客為微軟云計(jì)算中文博客 的鏡像博客。 部分文章因?yàn)椴┛图嫒菪詥栴} ,會(huì)影響閱讀體驗(yàn) 。如遇此情況,請(qǐng)?jiān)L問 原博客 。
摘要
Windows Azure ,作為一個(gè)應(yīng)用程序宿主平臺(tái)必須提供私密性,完整性和用戶數(shù)據(jù)的可用性。它也必須提供透明的可靠性來允許用戶和他們的代理商通過自己和Microsoft追蹤服務(wù)管理。
本文檔描述了大量在Windows Azure中實(shí)現(xiàn)的控制器,用戶可以決定是否這些能力和控制器適合他們的唯一需求。該概述以從用戶和微軟業(yè)務(wù)觀點(diǎn)對(duì)安全功能的技術(shù)測(cè)試開始 - 包括以Windows Live ID驅(qū)動(dòng)并使用雙向SSL認(rèn)證進(jìn)行擴(kuò)展的身份和訪問管理;分層環(huán)境和組件的隔離,虛擬機(jī)的狀態(tài)維護(hù)和配置完整性,為盡量減少硬件故障的影響而提供的三重冗余存儲(chǔ)。 在技術(shù)討論的額外部分還提到了在用戶的云環(huán)境中,通過Windows Azure的支持的可靠性如何監(jiān)視,記錄和報(bào)告。
緊接著技術(shù)的討論,本文也提到了人員和流程來幫助使Windows Azure更安全。其中包括微軟被全球公認(rèn)的在Windows Azure的開發(fā)過程中的SDL原則,控制操作人員和管理機(jī)制,物理安全特性,例如用戶選擇地域,資料設(shè)備 訪問,電力冗余。
本文以簡(jiǎn)短的對(duì)規(guī)范的討論作為結(jié)束。規(guī)范在IT企業(yè)中始終有著持續(xù)影響力。 雖然對(duì)法律,法規(guī)和行業(yè)需求遵守的責(zé)任在Windows Azure的用戶身上,微軟對(duì)于提供基礎(chǔ)安全設(shè)施的承諾,以及為適應(yīng)用戶特殊挑戰(zhàn)而提供的不斷擴(kuò)大的工具選擇范圍對(duì)微軟自身的成功是極其重要的。并且這些也是我們用戶使用Windows Azure平臺(tái)獲得成功的關(guān)鍵所在。
目錄
1.引言
1.讀者和范圍
1. 引言
Windows Azure是云端服務(wù)操作系統(tǒng),包括了Windows Azure平臺(tái)上的開發(fā),服務(wù)寄宿和服務(wù)管理。Windows Azure通過微軟數(shù)據(jù)中心提供開發(fā)人員按需計(jì)算和存儲(chǔ),讓他們能夠寄宿,拓展,管理互聯(lián)網(wǎng)上的Web應(yīng)用程序。通過使用Windows Azure,微軟寄宿屬于用戶的數(shù)據(jù)和程序。也正因?yàn)檫@樣,Windows Azure必須解決超出傳統(tǒng)IT方案意義上的信息安全挑戰(zhàn)。本文檔介紹了Windows Azure的用戶可以使用的控制器,以實(shí)現(xiàn)其所需的安全級(jí)別,并確定是否這些能力和控制器能夠適應(yīng)他們的獨(dú)特需求。
讀者和范圍
這本白皮書的目標(biāo)讀者包括:
- 對(duì)創(chuàng)建在Windows Azure 上的運(yùn)行的應(yīng)用程序感興趣的開發(fā)者。
- 正在考慮用Windows Azure 支持新的或者現(xiàn)存服務(wù)的技術(shù)決策者。
這份白皮書中的的重點(diǎn)是作為在線服務(wù)平臺(tái)組件的Windows Azure 操作系統(tǒng),并未涉及任何關(guān)于Windows Azure 平臺(tái)組件的詳細(xì)說明,如Microsoft SQL Azure , AppFabric,或Microsoft Codename "Dallas"。討論集中在Windows Azure的安全特性和功能性上。
盡管本文提供了最低限度的一般性介紹信息,讀者依然需要熟悉Windows Azure的基本概念(參考Microsoft提供的其他參考資料)。 在文檔的最后,你能發(fā)現(xiàn)更多其他參考資料的鏈接來做進(jìn)一步閱讀。
文檔的最后也包含了術(shù)語(yǔ)表,專業(yè)詞匯在本文中用粗體加下劃線標(biāo)注。
安全模式基礎(chǔ)
在專研更深的Windows Azure 安全特性技術(shù)之前,這一部分為它的安全模式提供了一個(gè)簡(jiǎn)單的概述,之后,這個(gè)概述假設(shè)了讀者熟悉Windows Azure 基礎(chǔ)概念,主要集中討論安全相關(guān)的特性。
<!-- -->
用戶視野:計(jì)算,存儲(chǔ),和服務(wù)管理
Windows Azure 被設(shè)計(jì)成對(duì)典型基礎(chǔ)運(yùn)用下的大量基礎(chǔ)設(shè)施的抽象(服務(wù)器,操作系統(tǒng),Web數(shù)據(jù)庫(kù)軟件等)因此開發(fā)者可以集中精力創(chuàng)建應(yīng)用程序,本節(jié)對(duì)一個(gè)典型用戶訪問Windows Azure時(shí)看到的東西進(jìn)行了簡(jiǎn)要概述。
圖1:Windows Azure關(guān)鍵組件的簡(jiǎn)要概述。
如圖1所示,Windows Azure 提供了兩個(gè)主要的功能:基于云的計(jì)算和存儲(chǔ)。在這上面,用戶可以建立和管理應(yīng)用程序和關(guān)聯(lián)配置。用戶通過訂閱來管理應(yīng)用程序和存儲(chǔ)。典型訂閱可以通過用信用卡在訂閱網(wǎng)頁(yè)上關(guān)聯(lián)新的或者現(xiàn)存的身份憑證來創(chuàng)建。隨后對(duì)訂閱系統(tǒng)的訪問可以通過一個(gè)Windows Live ID(https://login.live.com)來進(jìn)行控制。Windows Live ID 是現(xiàn)存的運(yùn)行時(shí)間最長(zhǎng)的互聯(lián)網(wǎng)身份驗(yàn)證服務(wù)之一,為Windows Azure提供了一個(gè)已被嚴(yán)格測(cè)試的門衛(wèi)系統(tǒng)。
訂閱可以包括零個(gè)或多個(gè)托管服務(wù)和零個(gè)活多個(gè)存儲(chǔ)賬戶。一個(gè) 托管服務(wù)包含了一個(gè)或多個(gè)的部署。一個(gè)調(diào)度包含了一個(gè)或多個(gè)角色。一個(gè)角色包含了一個(gè)或多個(gè)實(shí)例。存儲(chǔ)帳號(hào)包含二進(jìn)制數(shù)據(jù)塊,表格,和隊(duì)列。Windows Azure 驅(qū)動(dòng)是一個(gè)特殊的二進(jìn)制數(shù)據(jù)塊類型。 托管服務(wù)的訪問控制和存儲(chǔ)賬戶由訂閱管理。對(duì)關(guān)聯(lián)到訂閱的Windows Live ID 進(jìn)行身份驗(yàn)證的功能提供了對(duì)在該訂閱下的所有托管服務(wù)和存儲(chǔ)賬戶的完全控制權(quán)。
用戶上傳開發(fā)完成了的應(yīng)用程序并通過Windows Azure Portal 網(wǎng)站,或編程通過服務(wù)管理API(SMAPI) 來管理他們的主機(jī)服務(wù)和存儲(chǔ)帳號(hào)。用戶通過瀏覽器進(jìn)入Windows Azure Portal 或通過命令行工具(可編程或用Visual Studio)訪問SMAPI,
SMAPI的身份驗(yàn)證是基于用戶創(chuàng)建的共有/私有密鑰對(duì)和通過Windows Azure Portal 注冊(cè)的自簽名證書的。這個(gè)證書會(huì)在后續(xù)的SMAPI訪問中用到。SMAPI在Windows Azure Fabric中將請(qǐng)求進(jìn)行排隊(duì),然后Windows Azure Fabric接管請(qǐng)求,初始化,管理所需要的應(yīng)用。用戶可以通過Portal或者使用相同認(rèn)證機(jī)制的可編程SMAPI監(jiān)視和管理他們的應(yīng)用程序。
對(duì)Windows Azure 存儲(chǔ)的訪問時(shí)由存儲(chǔ)賬戶密鑰來管理的。該密鑰關(guān)聯(lián)到了每個(gè)存儲(chǔ)賬戶上。存儲(chǔ)賬戶密鑰可以被Windows Azure Portal或者SMAPI所重置。
計(jì)算和存儲(chǔ)能力進(jìn)一步組成了Windows Azure的基礎(chǔ)功能單元。圖2 提供了更顆粒化的視圖,暴露出了這些基礎(chǔ)單元并說明了它們與之前描述的組件之間的聯(lián)系。所有到目前為止討論過的組件的描述歸納如下:
- 主機(jī)服務(wù)包含部署,角色和角色實(shí)例。
- 存儲(chǔ)賬戶包含二進(jìn)制數(shù)據(jù)塊,表格,隊(duì)列和驅(qū)動(dòng)。
這些在術(shù)語(yǔ)表里定義都有定義,關(guān)于它們的詳細(xì)說明在Windows Azure 的一般資料中就可以找到。在這里簡(jiǎn)單介紹來對(duì)本文余下部分的對(duì)Windows Azure 的安全功能更深入的討論做準(zhǔn)備。
主要的Windows Azure 主題,對(duì)象,和身份驗(yàn)證機(jī)制在表1中歸納如下:
表1Windows Azure 授權(quán)機(jī)制的總結(jié):
| 主題 | 對(duì)象 | 身份驗(yàn)證機(jī)制 |
| 用戶 | 訂閱 | Windows Live ID |
| 開發(fā)者操作者 | Windows Azure Portal/API | Live ID (Windows Azure Portal) 或者自簽名證書 (SMAPI) |
| 角色實(shí)例 | 存儲(chǔ) | 存儲(chǔ)賬戶密鑰 |
| 擴(kuò)展應(yīng)用程序 | 存儲(chǔ) | 存儲(chǔ)賬戶密鑰 |
| 擴(kuò)展應(yīng)用程序 | 應(yīng)用程序 | 用戶定義 |
圖2:Windows Azure 組件和關(guān)系的顆粒化說明。
Windows Azure 的視角 :Fabric
我們已經(jīng)從一個(gè)上層的角度描述了可以被用戶管理的Windows Azure組件,接下來我們將進(jìn)一步探究在Windows Azure 基礎(chǔ)計(jì)算和存儲(chǔ)底下的Fabric。盡管我們已經(jīng)說過用戶可以通過定義的管理接口控制Fabric,Windows Azure主要目的依然是抽象虛擬基礎(chǔ)設(shè)施的管理,使得它能為用戶簡(jiǎn)單的呈現(xiàn)一致性的,可擴(kuò)展性的資源集。簡(jiǎn)而言之,開發(fā)者不需要管理這些虛擬的基礎(chǔ)設(shè)施,這些都是微軟代做了。這一節(jié)將介紹由微軟直接管理的Windows Azure Fabric中的一些基礎(chǔ)組件。
基于被用戶指定的角色實(shí)例的數(shù)目,Windows Azure 為每個(gè)角色實(shí)例提供了一個(gè)虛擬機(jī)(VM),然后在這些虛擬機(jī)上運(yùn)行這些角色。這些虛擬機(jī)運(yùn)行在為使用云技術(shù)特別設(shè)計(jì)的 管理程序上(Windows Azure 管理程序)。一個(gè)虛擬機(jī)是一個(gè)專門應(yīng)用:它運(yùn)行在一個(gè)托管了Fabric Agent(FA)的被叫做Root OS 的操作系統(tǒng)上。FAs管理guest agents (GA),(托管在用戶虛擬機(jī)上的guest OSes中) 。FAs也管理存儲(chǔ)節(jié)點(diǎn)。Windows Azure 管理程序,Root OS/FA,和用戶VMs/GAs組成了一個(gè)計(jì)算節(jié)點(diǎn)。
FAs被Fabric Controller (FC)管理,FC存在于計(jì)算和存儲(chǔ)節(jié)點(diǎn)的外邊(計(jì)算和存儲(chǔ)集群通過獨(dú)立的FCs管理)。如果有用戶在系統(tǒng)運(yùn)行時(shí)更新了他的應(yīng)用程序的配置文件,FC會(huì)與 FA通信,FA然后聯(lián)系GA,GA通知應(yīng)用程序來報(bào)告配置的改變。在硬件故障的情況下,FC將自動(dòng)找到可用硬件然后在新硬件上重啟虛擬機(jī)。
2. 云安全設(shè)計(jì)
從根本上說/基本上,正如其它任何應(yīng)用托管平臺(tái),Windows Azure 必須提供私密性、完整性和用戶數(shù)據(jù)可用性。它也必須提供透明的可靠性來允許用戶和他們的代理商通過自己和Microsoft追蹤服務(wù)管理。在描述了基礎(chǔ)組件和相互關(guān)系之后,這一節(jié)會(huì)說明Windows Azure是怎樣提供這些信息安全的經(jīng)典特征。
私密性
- 私密性確保用戶的數(shù)據(jù)只能被授權(quán)實(shí)體訪問。Windows Azure 通過以下機(jī)制提供私密性:
- 身份和訪問控制 - 確保只有適當(dāng)?shù)谋或?yàn)證過的實(shí)體可以被允許訪問。
- 隔離 - 通過保證適當(dāng)?shù)娜萜髟谶壿嬌虾臀锢砩系姆蛛x來實(shí)現(xiàn)最小化數(shù)據(jù)交互
- 加密 - 在Windows Azure內(nèi)部使用,來保護(hù)控制渠道并且可提供給需要嚴(yán)格數(shù)據(jù)保護(hù)機(jī)制的用戶
更多的關(guān)于這些數(shù)據(jù)保護(hù)機(jī)制在Windows Azure中試如何實(shí)現(xiàn)的內(nèi)容如下:
身份和訪問管理
現(xiàn)有的最健壯的安全控制機(jī)制也不能防止那些獲得未經(jīng)授權(quán)的身份信息和密鑰的攻擊者。因此,身份信息和密鑰管理在安全設(shè)計(jì)和Windows Azure的實(shí)現(xiàn)中都是關(guān)鍵的組件。
所有的主要身份和驗(yàn)證機(jī)制已經(jīng)在之前介紹過了,它們歸納在表1中,這部分提供了更為深層的描述,包括APIs,應(yīng)用程序優(yōu)先級(jí),密鑰分配和對(duì)可信子系統(tǒng)(如Fabric 控制器)的身份驗(yàn)證。
SMAPI身份驗(yàn)證
SMAPI通過REST協(xié)議提供Web服務(wù),它是通過Windows Azure 工具提供給用戶開發(fā)者使用的。這個(gè)協(xié)議運(yùn)行在SSL上 ,通過一個(gè)證書和用戶創(chuàng)建的私鑰來進(jìn)行身份驗(yàn)證。這個(gè)證書不需要一個(gè)可信任的檢查證書頒發(fā)者(CA)。只需要一個(gè)自簽名證書并且將該證書的指紋通過Windows Azure Portal關(guān)聯(lián)到訂閱即可。只要用戶擁有對(duì)密鑰以及用來創(chuàng)建賬戶的Live ID的控制,這個(gè)方法提供了高度安全保證,確保只有用戶授權(quán)的實(shí)體才能訪問服務(wù)的特定部分。
最少特權(quán)用戶軟件
用最少的特權(quán)運(yùn)行應(yīng)用程序被廣泛當(dāng)作信息安全的最佳實(shí)踐。為了與最少特權(quán)原理保持一致,用戶沒有被授予對(duì)虛擬機(jī)的管理員權(quán)限。默認(rèn)情況下,用戶軟件在Windows Azure中使用低特權(quán)賬戶運(yùn)行(將來版本中,用戶可以根據(jù)需要選擇不同特權(quán)模型)。這減少了潛在的影響,增加了任何除了獲得漏洞外還需要提升特權(quán)才實(shí)施攻擊的攻擊復(fù)雜性。這也保護(hù)用戶的服務(wù)不受自己終端用戶的攻擊。
內(nèi)部控制通信量的SSL雙向認(rèn)證
所有Windows Azure內(nèi)部組件的通信被SSL保護(hù)。在大多數(shù)情況下,SSL證書是自簽名的。例外是可能被Windows Azure網(wǎng)絡(luò)外部訪問的連接所使用的證書(包括存儲(chǔ)服務(wù))以及FC。
FC擁有微軟CA頒發(fā)的證書,是擁有可信任根CA的。FC的公鑰可以被微軟開發(fā)工具使用。這樣當(dāng)開發(fā)人員遞交了新的應(yīng)用程序印象后,它們可以被FC公鑰加密來保護(hù)任何里面的秘密資料。
證書和私有密鑰管理
為了降低暴露證書和私鑰給開發(fā)者和管理者的風(fēng)險(xiǎn),它們是通過一個(gè)不同于使用它們的代碼的獨(dú)立機(jī)制安裝的。證書和私鑰是通過SMAPI或者Windows Azure Portal以PKCS12 (PFX)文件格式上傳的。上傳過程受到SSL的保護(hù)。這些PKCS12文件可以被密碼保護(hù),但是如果這樣,密碼必須在同一個(gè)消息中包含。SMAPI提供了密碼保護(hù)機(jī)制(如果需要的話),使用了SMAPI的公鑰加密了整個(gè)PKCS12數(shù)據(jù)塊,在一個(gè)私密的FC上的數(shù)據(jù)存儲(chǔ)點(diǎn)進(jìn)行存儲(chǔ),并附帶存儲(chǔ)了簡(jiǎn)短的證書名和公鑰來作為元數(shù)據(jù)。
在同一訂閱中的角色所關(guān)聯(lián)的配置數(shù)據(jù)指定了角色所需的證書。當(dāng)一個(gè)角色在一臺(tái)虛擬機(jī)上初始化時(shí),FC得到了相應(yīng)的證書,解密PKCS12數(shù)據(jù)塊,重新使用FA的公共傳輸密鑰對(duì)其加密,并且把它發(fā)送到節(jié)點(diǎn)上的FA處。節(jié)點(diǎn)上的FA把它發(fā)送到初始化角色的虛擬機(jī)上的GA處,然后GA解密它并且在操作系統(tǒng)的數(shù)據(jù)存儲(chǔ)點(diǎn)上進(jìn)行安裝,并標(biāo)記私鑰可以被使用但是沒有被導(dǎo)出。在安裝后,所有臨時(shí)證書拷貝和密鑰被銷毀。如果需要重新安裝,證書必須被FC重新打包。
FC使用的硬件證書
除了應(yīng)用程序密鑰,FC必須維護(hù)一組證書(密鑰和/或密碼)在向不同在它控制下的硬件設(shè)備驗(yàn)證自身時(shí)使用。傳輸,維持,使用這些證書的系統(tǒng)使得Windows Azure開發(fā)人員,管理者,服務(wù)備份員不必需要了解秘密信息。對(duì)FC的主身份公鑰的加密在FC安裝和重配置時(shí)使用,來傳輸訪問網(wǎng)絡(luò)硬件設(shè)備,遠(yuǎn)程電力轉(zhuǎn)換器和其他系統(tǒng)所需的身份信息。FC在它的內(nèi)部被復(fù)制的數(shù)據(jù)存儲(chǔ)點(diǎn)(同樣被FC的主身份證書加密)中維護(hù)這些秘密信息。
Windows Azure Storage的訪問控制
前面已經(jīng)討論過,Windows Azure Storage擁有一個(gè)簡(jiǎn)單的訪問控制模型。每個(gè)Windows Azure 訂閱可以被創(chuàng)建一個(gè)或多個(gè)存儲(chǔ)賬戶。每個(gè)存儲(chǔ)賬戶有一個(gè)密鑰用于在存儲(chǔ)賬戶中控制訪問所有數(shù)據(jù)。這支持這樣的一個(gè)場(chǎng)景,存儲(chǔ)關(guān)聯(lián)應(yīng)用程序并且這些應(yīng)用程序完全控制他們的關(guān)聯(lián)數(shù)據(jù)。通過在存儲(chǔ)前端創(chuàng)建用戶應(yīng)用程序,給予應(yīng)用程序存儲(chǔ)密鑰,讓用戶程序驗(yàn)證遠(yuǎn)程用戶,甚至對(duì)單個(gè)的請(qǐng)求進(jìn)行授權(quán)我們可以獲得一個(gè)更為成熟的訪問控制模型。
兩種機(jī)制支持了一般性的訪問控制場(chǎng)景。部分在數(shù)據(jù)存儲(chǔ)的賬戶中的數(shù)據(jù)可以被標(biāo)記為公開可讀的,在這種情況下,讀數(shù)據(jù)可以不需要共享密鑰簽名。這主要用于訪問非敏感數(shù)據(jù),例如網(wǎng)頁(yè)圖片。
另一種機(jī)制被叫做共享訪問簽名(SAS)。一個(gè)進(jìn)程,知道給定存儲(chǔ)賬戶密鑰(SAK),可以創(chuàng)建一個(gè)請(qǐng)求模板并且用SAK來簽名。這個(gè)簽完名后的URL可以給另一個(gè)進(jìn)程,另一個(gè)進(jìn)程之后可以用它來填充請(qǐng)求細(xì)節(jié)并向存儲(chǔ)服務(wù)發(fā)送該請(qǐng)求。身份驗(yàn)證依然是基于一個(gè)用SAK創(chuàng)建的簽名。但是該簽名是由第三方發(fā)送給存儲(chǔ)服務(wù)的。這樣的代理機(jī)制可以對(duì)有效時(shí)間,許可集和存儲(chǔ)賬戶中哪一部分可以被訪問進(jìn)行限制。
一個(gè)共享訪問簽名也被稱為一個(gè)容器級(jí)別的訪問策略,該策略代替了用一定數(shù)量參數(shù)(例如有效時(shí)間或者許可集)在URL中直接表示的方法。這些參數(shù)實(shí)際上由存儲(chǔ)在Windows Azure存儲(chǔ)服務(wù)中的訪問策略指定。因?yàn)橐粋€(gè)容器級(jí)別的訪問策略可以在任何時(shí)候被修改或者撤銷,它提供了更大的靈活性和對(duì)所授權(quán)限的控制力。
為了支持周期性的SAK的變化而不造成服務(wù)的中斷,同一時(shí)間一個(gè)存儲(chǔ)賬戶可以有兩個(gè)關(guān)聯(lián)到自身的密鑰(任一密鑰均有對(duì)數(shù)據(jù)的完全訪問權(quán))。改變密鑰的順序是先添加新的密鑰到存儲(chǔ)服務(wù),然后改變所有訪問該服務(wù)的應(yīng)用程序使用的密鑰。最后移除舊的密鑰。改變被授權(quán)的存儲(chǔ)密鑰是通過SMAPI或者Windows Azure Portal來完成的。
隔離
除了對(duì)數(shù)據(jù)訪問進(jìn)行身份驗(yàn)證,簡(jiǎn)單地把不同的數(shù)據(jù)適當(dāng)?shù)剡M(jìn)行隔離也是一種被廣泛認(rèn)同的保護(hù)方式。Windows Azure 提供了不同級(jí)別的隔離,如下討論:
管理程序,Root OS 和Guest VMs的隔離
一個(gè)關(guān)鍵的邊界是Root虛擬機(jī)與guest虛擬機(jī)的隔離,guest虛擬機(jī)與另一個(gè)guest虛擬機(jī)的隔離,這是通過管理程序和Root OS來管理的。管理程序/Root OS利用微軟的數(shù)十年的操作系統(tǒng)安全的經(jīng)驗(yàn),以及最新微軟Hyper-V經(jīng)驗(yàn),提供了一個(gè)健壯的guest VMs隔離。
Fabric Controllers的隔離
作為Windows Azure Fabric的核心部分,許多重要的控制器被應(yīng)用以減少對(duì)Fabric控制器的可能危害,特別是防止哪些來自潛在的被在用戶程序中所攻破的FAs的威脅。從FC到FA的通信是單向的 - FA實(shí)現(xiàn)了一個(gè)被SSL保護(hù)的服務(wù),該服務(wù)被FC訪問并只對(duì)請(qǐng)求作出反應(yīng)。它不能發(fā)起與FC或者其他高特權(quán)內(nèi)部節(jié)點(diǎn)的連接
FC以返回消息來自不受信任節(jié)點(diǎn)的標(biāo)磚嚴(yán)格分析所有收到的返回消息。
此外,FCs和無(wú)法實(shí)現(xiàn)SSL的設(shè)備在獨(dú)立的VLANs上,這限制了他們的身份驗(yàn)證接口暴露在被攻破的虛擬機(jī)的主機(jī)節(jié)點(diǎn)的可能性。
包過濾
管理程序和Root OS提供網(wǎng)絡(luò)數(shù)據(jù)包過濾器保證不受信任的虛擬機(jī)不能產(chǎn)生偽造流量,不能接收非以它們?yōu)榻邮軐?duì)象的數(shù)據(jù),不能指揮數(shù)據(jù)流向以保障基礎(chǔ)設(shè)施端點(diǎn),此外,它們不能發(fā)送或接收不適當(dāng)?shù)膹V播數(shù)據(jù)。
存儲(chǔ)節(jié)點(diǎn)只運(yùn)行Windows Azure的提供的代碼和配置,因此訪問和控制的范圍僅允許合法用戶,應(yīng)用程序及管理者。
用戶訪問VM(虛擬機(jī))被包過濾限制在邊緣有限的負(fù)載平衡器及Root OS。特別是遠(yuǎn)程調(diào)試,遠(yuǎn)程終端服務(wù)或遠(yuǎn)程訪問虛擬機(jī)文件在默認(rèn)情況下是不準(zhǔn)許的;微軟正計(jì)劃允許用戶能夠明確選擇這些協(xié)議。微軟允許用戶指定在上述情況下是否允許互聯(lián)網(wǎng)及遠(yuǎn)程鏈接。
不同的應(yīng)用程序之間的連接作用都被認(rèn)為是互聯(lián)網(wǎng)的連接。連接規(guī)則是累積的,例如,如果任務(wù)實(shí)例A和B屬于不同的應(yīng)用程序,A只有在A本身可以打開與互聯(lián)網(wǎng)的連接且B可接受來自互聯(lián)網(wǎng)的連接的情況下才可以打開與B的連接。
fabric控制器將目錄上的角色轉(zhuǎn)換為一個(gè)任務(wù)實(shí)例列表,并得到一個(gè)IP地址的列表清單。這個(gè)IP地址列表被FA用于數(shù)據(jù)包過濾器,只允許內(nèi)部應(yīng)用程序間的通信訪問這些IP地址。角色被允許啟動(dòng)與互聯(lián)網(wǎng)的連接。這使得他們能夠通過網(wǎng)絡(luò)連接并將信息通過他們的VIP送至任何網(wǎng)絡(luò)可見任務(wù)中。
VLAN隔離
VLANs在隔離FCs和其他設(shè)備時(shí)被使用。 VLANs對(duì)網(wǎng)絡(luò)進(jìn)行隔離,這樣VLANs之間的通信不可能不經(jīng)過路由器,這防止了一個(gè)被攻破的節(jié)點(diǎn)偽造來自它自身VLAN外部的數(shù)據(jù)通信(除了對(duì)自身VLANs其他節(jié)點(diǎn)的通信外),并且它也不能非來自或發(fā)到自身VLANs的通信。
每個(gè)群集中有三個(gè)VLANs:
?主VLAN - 連接不受信任的用戶節(jié)點(diǎn)
?FC VLAN - 包括受信任的FCs和支持系統(tǒng)
?設(shè)備VLAN - 包括受信任網(wǎng)絡(luò)和其他基礎(chǔ)設(shè)施設(shè)備
從FC到主VLAN的通信是允許的,但通信不能從主VLAN到FC VLAN。從主VLAN到設(shè)備VLAN的鏈接也是被封鎖的。這保證了即使一個(gè)運(yùn)行用戶代碼的節(jié)點(diǎn)被攻破,也它不能攻擊FC或設(shè)備VLAN的節(jié)點(diǎn)。)。
用戶訪問的隔離
管理用戶環(huán)境訪問的系統(tǒng)(即Windows Azure Portal,SMAPI,等等)是在一個(gè)由微軟運(yùn)作的Windows Azure應(yīng)用程序中被隔離的。這在邏輯上將用戶訪問基礎(chǔ)設(shè)施與用戶應(yīng)用程序和儲(chǔ)存隔離。
加密
在存儲(chǔ)和傳輸中的數(shù)據(jù)加密可令用戶在Windows Azure使用中,確保數(shù)據(jù)的保密性和完整性。如前所述,關(guān)鍵的內(nèi)部通信使用SSL加密進(jìn)行保護(hù)。作為用戶的選擇之一,Windows Azure SDK擴(kuò)展了核心.NET類庫(kù)以允許開發(fā)人員在Windows Azure中整合.NET加密服務(wù)提供商(CSPs)。熟悉.NET CSPs的開發(fā)人員可以容易地實(shí)現(xiàn)加密,哈希以及密鑰管理功能來存儲(chǔ)和傳輸數(shù)據(jù)。舉例來說,使用.NET CSPs,Windows Azure開發(fā)人員可以容易地訪問:
?如ASE之類有多年現(xiàn)實(shí)世界測(cè)試使用經(jīng)驗(yàn)的加密算法,從而避免 "roll your own crypto"的錯(cuò)誤
?包括MD5和SHA - 2在內(nèi)的一系列哈希功能來驗(yàn)證數(shù)據(jù)的正確性,創(chuàng)建和驗(yàn)證數(shù)字簽名,以及創(chuàng)建非可辨認(rèn)憑證來替代敏感數(shù)據(jù)。
?RNGCryptoServiceProvider類產(chǎn)生足以為強(qiáng)壯的密碼系統(tǒng)所需的高級(jí)熵提供種子的隨機(jī)數(shù)。
?簡(jiǎn)單易懂的密鑰管理方法,使Windows Azure存儲(chǔ)中自定義的加密密鑰能夠簡(jiǎn)單地被管理。
有關(guān)如何利用Windows Azure提供的加密功能,請(qǐng)參考本文件結(jié)尾處的參考資料。
數(shù)據(jù)刪除
在適當(dāng)情況下,私密性應(yīng)當(dāng)超出數(shù)據(jù)的生命周期。Windows Azure的存儲(chǔ)子系統(tǒng)使用戶數(shù)據(jù)在一次刪除操作被調(diào)用后無(wú)法再被得到。所有的存儲(chǔ)操作,包括刪除操作被設(shè)計(jì)成即時(shí)一致的。一個(gè)成功執(zhí)行的刪除操作將刪除所有相關(guān)數(shù)據(jù)項(xiàng)的引用使得它無(wú)法再通過存儲(chǔ)API訪問。所有被刪除的數(shù)據(jù)項(xiàng)在之后被垃圾回收。正如一般的計(jì)算機(jī)物理設(shè)備一樣,物理二進(jìn)制數(shù)據(jù)當(dāng)相應(yīng)的存儲(chǔ)數(shù)據(jù)塊為了存儲(chǔ)其他數(shù)據(jù)而被重用的時(shí)候會(huì)被覆蓋掉。4.4.3節(jié)描述了物理媒介的清除。
完整性
希望把自己的數(shù)據(jù)計(jì)算和存儲(chǔ)工作放到Windows Azure上的用戶顯然希望數(shù)據(jù)被保護(hù)起來不被未經(jīng)授權(quán)地改變。微軟的云操作系統(tǒng)以多種方式來提供這一保證。
對(duì)客戶數(shù)據(jù)的完整性保護(hù)的首要機(jī)制是通過Fabric VM設(shè)計(jì)本身提供的。每個(gè)VM被連接到三個(gè)本地虛擬硬盤驅(qū)動(dòng)(VHDs):
?D:驅(qū)動(dòng)器包含了多個(gè)版本的Guest OS中的一個(gè),保證了最新的相關(guān)補(bǔ)丁,并能由用戶自己選擇。
?E:驅(qū)動(dòng)器包含了一個(gè)被FC創(chuàng)建的映像,該映像是基于用戶提供的程序包的。
?C:驅(qū)動(dòng)器包含了配置信息,paging文件和其他存儲(chǔ)。
D:和E:虛擬驅(qū)動(dòng)器是只讀的,因?yàn)樗鼈兊腁CLs被設(shè)置為禁止來自用戶進(jìn)程的寫操作。因?yàn)椴僮飨到y(tǒng)可能需要更新這些只讀卷,它們用支持增量文件的VHD來實(shí)現(xiàn)。最初在一個(gè)應(yīng)用程序內(nèi)所有角色實(shí)例的VHDs完全相同地啟動(dòng)。D:驅(qū)動(dòng)器的增量驅(qū)動(dòng)器當(dāng)Windows Azure要給含有操作系統(tǒng)的VHD打補(bǔ)丁時(shí)被移除掉。E:驅(qū)動(dòng)器的增量驅(qū)動(dòng)器當(dāng)一個(gè)新應(yīng)用程序映像被上傳的時(shí)候被移除掉。這個(gè)設(shè)計(jì)嚴(yán)格保證了在下方的操作系統(tǒng)的用戶應(yīng)用程序的完整性。
另一個(gè)主要的完整性控制器當(dāng)然是存儲(chǔ)在讀/寫C:驅(qū)動(dòng)中的配置文件。用戶提供了一個(gè)單個(gè)的配置文件來指定在應(yīng)用程序中所有角色的連接需求。FC為每個(gè)角色接管了該配置文件的子集,對(duì)每個(gè)角色都把它放在C:驅(qū)動(dòng)器中。如果用戶在角色實(shí)例正在運(yùn)行時(shí)更新了配置文件,FC-通過FA-聯(lián)系在虛擬機(jī)的Guest OS中運(yùn)行的GA并通知它更新在C:驅(qū)動(dòng)器中的配置文件。之后它通知用戶應(yīng)用程序來重讀配置文件。C:驅(qū)動(dòng)器的內(nèi)容在此時(shí)未被移除,也就是說C:驅(qū)動(dòng)器對(duì)于用戶的應(yīng)用程序來說是穩(wěn)定的存儲(chǔ)器。只有被授權(quán)的用戶,通過Windows Azure Portal或者SMAPI來訪問他們托管的服務(wù)才能夠更改配置文件。因此,通過Windows Azure的固有設(shè)計(jì),用戶配置的完整性在應(yīng)用程序的生命周期內(nèi)得以保障。
至于Windows Azure存儲(chǔ),完整性是通過使用簡(jiǎn)單的訪問控制模型(如前所述)來實(shí)現(xiàn)的。每個(gè)存儲(chǔ)賬戶有兩個(gè)存儲(chǔ)賬戶密鑰來控制所有對(duì)在存儲(chǔ)賬戶中數(shù)據(jù)的訪問,因此對(duì)存儲(chǔ)密鑰的訪問提供了完全的對(duì)相應(yīng)數(shù)據(jù)的控制。
最后,Fabric自身的完整性在從引導(dǎo)程序到操作中都被精心管理。正如之前說過的,在VM上運(yùn)行的并托管Fabric內(nèi)部節(jié)點(diǎn)的Root OS是一個(gè)非常富有經(jīng)驗(yàn)的操作系統(tǒng)。在一些節(jié)點(diǎn)啟動(dòng)后,它啟動(dòng)FA并等待連接以及來自FC的命令。FC使用雙向SSL驗(yàn)證連接到新啟動(dòng)的節(jié)點(diǎn)。FC向FAs的通信是通過單向推送的,這樣攻擊在命令鏈中的高層組件就很困難,因?yàn)榈讓咏M件不可能直接發(fā)送命令給高層組件。與上面提到的許多機(jī)制組合在一起,這些特征幫助用戶讓Fabric處在不受損的狀態(tài)。
可用性
云計(jì)算平臺(tái)的主要優(yōu)勢(shì)之一是基于通過虛擬化技術(shù)來實(shí)現(xiàn)的大規(guī)模冗余的強(qiáng)健的可用性。Windows Azure提供了大量的冗余級(jí)別來提東最大化的用戶數(shù)據(jù)可用性。
數(shù)據(jù)在Windows Azure中被復(fù)制備份到Fabric中的三個(gè)不同的節(jié)點(diǎn)來最小化硬件故障帶來的影響。
用戶可以通過創(chuàng)建第二個(gè)存儲(chǔ)賬戶來利用Windows Azure基礎(chǔ)設(shè)施的地理分布特性達(dá)到熱失效備援功能。這種情況下,用戶可以創(chuàng)建自定義角色從而在微軟設(shè)施內(nèi)復(fù)制備份和同步數(shù)據(jù)。用戶也可以寫自定義角色來為離線私有備份而從存儲(chǔ)中拿出數(shù)據(jù)。
在每個(gè)虛擬機(jī)上的GAs監(jiān)視虛擬機(jī)的狀態(tài)。如果GA響應(yīng)失敗,FC會(huì)重啟虛擬機(jī)。將來,用戶可以選擇適應(yīng)更為自定義化的持續(xù)/恢復(fù)策略的更為老道的檢測(cè)流程。當(dāng)硬件遇到問題時(shí),FC會(huì)將角色實(shí)例移動(dòng)到一個(gè)新的硬件節(jié)點(diǎn)并為這些服務(wù)角色實(shí)例重啟網(wǎng)絡(luò)配置來恢復(fù)服務(wù)的功能性。
如前所述,每個(gè)虛擬機(jī)有一個(gè)D:驅(qū)動(dòng)器,包含了可供用戶選擇的Guest OS版本。用戶可以手動(dòng)從一個(gè)Guest OS移動(dòng)到另一個(gè),也可以選擇讓微軟在有新的版本發(fā)布后幫助移動(dòng)他們的應(yīng)用程序。這個(gè)系統(tǒng)使得用戶可以用最少的交互最大化定期維護(hù)的工作。
FCs為用戶服務(wù)使用類似的高可用性原理和自動(dòng)失效備援,從而讓FC的管理功能始終可得。在Windows Azure平臺(tái)或者用戶服務(wù)軟件更新時(shí),FCs利用一個(gè)稱為更新域的邏輯部分在給定時(shí)間中改變一個(gè)服務(wù)角色的實(shí)例中的一部分而讓剩余的實(shí)例繼續(xù)對(duì)請(qǐng)求進(jìn)行服務(wù)。FCs也能夠通過故障域知道潛在的硬件和網(wǎng)絡(luò)點(diǎn)的故障。對(duì)任何擁有大于一個(gè)角色實(shí)例的服務(wù)來說,Windows Azure保證這些實(shí)例在多個(gè)更新和故障域中被部署(除非由用戶特別指定)來保證在更新和獨(dú)立網(wǎng)絡(luò)硬件故障時(shí)服務(wù)的可用性。
可靠性
因?yàn)樵朴?jì)算平臺(tái)實(shí)際上是外包計(jì)算環(huán)境,它們必須能夠經(jīng)常向用戶和其指定的代理商證明其運(yùn)行的安全性。 Windows Azure的實(shí)現(xiàn)了多層次的監(jiān)測(cè),記錄和報(bào)告來讓用戶了解這一點(diǎn)。最主要的,監(jiān)視代理(MA)從包括FC和Root OS在內(nèi)的許多地方獲取監(jiān)視和診斷日志信息并寫到日志文件中。它最終將這些信息的子集推送到一個(gè)預(yù)先配置好的Windows Azure存儲(chǔ)賬戶中。此外,監(jiān)視數(shù)據(jù)分析服務(wù)(MDS)是一個(gè)獨(dú)立的服務(wù),能夠讀取多種監(jiān)視和診斷日志數(shù)據(jù)并總結(jié)信息,將其寫到集成化日志中。
3.開發(fā)生命周期安全
微軟采用廣泛公認(rèn)的技術(shù)和工具在Windows Azure的開發(fā)過程,自身服務(wù)的設(shè)計(jì)和實(shí)現(xiàn)方面提供安全保證。
Windows Azure完全集成了微軟安全開發(fā)生命周期(SDL)的方針,這個(gè)方針在軟件安全保證程序方面是世界公認(rèn)的模型(關(guān)于更多的信息可以再進(jìn)一步閱讀參考資料中找到)。
特別地,微軟會(huì)仔細(xì)審查哪些低信任度組件被高信任度組件分析的地方,例如:
-
當(dāng)Windows Azure管理程序和Root OS進(jìn)程處理來自用戶控制的虛擬機(jī)的硬盤讀寫和網(wǎng)絡(luò)讀寫請(qǐng)求時(shí)。
-
當(dāng)Windows Azure portal和SMAPI處理來自被用戶控制的網(wǎng)絡(luò)來源的請(qǐng)求時(shí)。
-
當(dāng)FC分析通過SMAPI傳輸過來的額用戶配置數(shù)據(jù)時(shí)。
除了仔細(xì)設(shè)計(jì)和實(shí)現(xiàn)外,這些組件使用托管程序(如C#)來開發(fā)以減少著名的內(nèi)存處理漏洞的可能性,并在Fabric在進(jìn)入生產(chǎn)模式前進(jìn)行大規(guī)模的接口測(cè)試。微軟在升級(jí)或者修改處理外部請(qǐng)求的代碼前都會(huì)繼續(xù)使用這些方式。
微軟的SDL方針也廣泛地被推薦給Windows Azure的用戶,因?yàn)橥泄茉赪indows Azure上應(yīng)用程序的安全很大程度上依賴于用戶的開發(fā)過程。 作為本文的指南手冊(cè),開發(fā)Windows Azure應(yīng)用程序的安全最佳實(shí)踐,也能夠在microsoft.com上找到(參考進(jìn)一步閱讀參考資料)。
即便微軟和用戶都按照SDL來做,在開發(fā)和部署到Windows Azure中間過程中依然會(huì)有極小的可能性遭受攻擊。正如之前所述,用戶是通過SMAPI來提供自己的應(yīng)用程序的,SMAPI使用了證書身份驗(yàn)證和被HTTPS保護(hù)的信道以及其他控制器來傳輸代碼。
服務(wù)的運(yùn)營(yíng)方式
操作Windows Azure的人員和流程大概是這個(gè)平臺(tái)最重要的安全特性了。這一節(jié)描述了微軟數(shù)據(jù)中心基礎(chǔ)設(shè)施的特性。這些特性幫助提高和維護(hù)安全性,持續(xù)性和私密性。
微軟操作人員
Windows Azure的開發(fā)人員和管理人員,按照我們的設(shè)計(jì),被給予足夠的權(quán)限來操作和提升服務(wù)以完成他們各自的職責(zé)。正如在本文中所述,微軟實(shí)現(xiàn)了預(yù)防,檢測(cè)和反應(yīng)控制器,包括如下機(jī)制來幫助防止未經(jīng)授權(quán)的開發(fā)者和/或管理活動(dòng):
-
對(duì)敏感數(shù)據(jù)的嚴(yán)格訪問控制
-
控制器組合以極大提升對(duì)惡意行為的非依賴性檢測(cè)
-
多級(jí)監(jiān)視,記錄和報(bào)告
除此之外,微軟還對(duì)相關(guān)操作人員進(jìn)行背景認(rèn)證,并根據(jù)背景認(rèn)證級(jí)別對(duì)生產(chǎn)環(huán)境中的應(yīng)用程序,系統(tǒng)和網(wǎng)絡(luò)基礎(chǔ)設(shè)施實(shí)行有限訪問。
微軟的操作人員只有在顧客要求下才能進(jìn)入顧客的賬戶或者查看相關(guān)信息。這一切必須遵守相關(guān)程序并且只能在顧客需要的情況下完成。
安全響應(yīng)
關(guān)于微軟安全的漏洞可以通過向微軟安全響應(yīng)中心(http://www.microsoft.com/security/msrc/default.aspx)報(bào)告,或者通過郵件(secure@microsoft.com)。微軟始終堅(jiān)持對(duì)通過正規(guī)渠道反映的漏洞進(jìn)行評(píng)估和回復(fù)。
網(wǎng)絡(luò)管理
連接Windows Azure 用戶的網(wǎng)絡(luò)硬件是這一平臺(tái)的關(guān)鍵部分。以下這一部分將介紹一些服務(wù)在這一層上提供的安全措施。
正如前面所提到的,Windows Azure 的內(nèi)部網(wǎng)絡(luò)被強(qiáng)大的過濾系統(tǒng)從其他網(wǎng)絡(luò)系統(tǒng)中隔離開。在通常情況下能夠?yàn)閮?nèi)部網(wǎng)絡(luò)的高速度和低風(fēng)險(xiǎn)提供堅(jiān)實(shí)的基礎(chǔ)。
諸如交換器,路由器,負(fù)載均衡器等網(wǎng)絡(luò)配置和管理工具只能由微軟運(yùn)營(yíng)部進(jìn)行操作,而且通常只有在重大變化的情況下才能進(jìn)行操作(比如數(shù)據(jù)中心自己重置了)。這些由Windows Azuret提供的虛擬技術(shù)使得這些變化對(duì)于顧客來說幾乎是看不見的。
此外,任何不能提供充分通信安全特性的硬件(比如SSL)都由一個(gè)獨(dú)立的LAN管理,該LAN與其他暴露給互聯(lián)網(wǎng)或者客戶訪問的節(jié)點(diǎn)是隔離的。
FC遠(yuǎn)程管理
Fabric控制器擁有一個(gè)可以接收來自SMAPI和Windows Azure 管理者的命令的應(yīng)用程序接口。策略級(jí)別的決定是由SMAPI在應(yīng)用程序級(jí)別上實(shí)施的,只會(huì)基于用戶已經(jīng)被驗(yàn)證的身份來生成關(guān)于用戶自身資源的請(qǐng)求。作為低級(jí)別的,核心的供給和管理設(shè)施,FCs提供了細(xì)顆粒度的訪問控制決策來適應(yīng)他們的角色。
物理安全
一個(gè)系統(tǒng)不可能比它自身運(yùn)行的物理平臺(tái)更安全。Windows Azure在世界各地的微軟設(shè)施中運(yùn)行,并與其他微軟在線服務(wù)分享空間和功用。每個(gè)設(shè)施被設(shè)計(jì)成24*7運(yùn)行并且提供了多種方法來幫助免受停電,物理干擾,網(wǎng)絡(luò)故障帶來的影響。這些數(shù)據(jù)中心符合物理安全和可靠性的行業(yè)標(biāo)準(zhǔn),并且他們是由微軟操作人員管理,監(jiān)視和維護(hù)的。進(jìn)行一步關(guān)于Windows Azure物理安全的詳細(xì)信息如下所述。
設(shè)施訪問
微軟使用行業(yè)標(biāo)準(zhǔn)訪問機(jī)制,以保護(hù)Windows Azure的物理基礎(chǔ)設(shè)施和數(shù)據(jù)中心設(shè)施。僅限于一小部分必須定期改變自己管理訪問憑證的操作人員訪問。數(shù)據(jù)中心的訪問,以及審批數(shù)據(jù)中心的訪問的機(jī)構(gòu),是被微軟操作人員按照本地?cái)?shù)據(jù)中心安全實(shí)踐來控制的。
電力冗余和故障
每個(gè)數(shù)據(jù)中心設(shè)施至少含有兩個(gè)電力的來源,包括一個(gè)泳衣保證離網(wǎng)操作的發(fā)電裝置。環(huán)境控制器是自包含的并且當(dāng)設(shè)備及其包含的系統(tǒng)重新在線時(shí)依然正常工作。
物理安全控制器被設(shè)計(jì)成在停電或其他環(huán)境事故中不會(huì)被關(guān)閉的。至于火災(zāi)或者可能威脅到生命安全的情形,這些設(shè)施被設(shè)計(jì)成允許被搬出以免遭威脅。
媒介清除
當(dāng)系統(tǒng)生命結(jié)束時(shí),微軟操作人員會(huì)按照嚴(yán)格的數(shù)據(jù)處理步驟和硬件清除流程來處理。
5. 合規(guī)
隨著全球標(biāo)準(zhǔn)包括ISO 27001、Safe Harbor和其他標(biāo)準(zhǔn)的擴(kuò)散,使得商業(yè)和管理規(guī)范的重要性增長(zhǎng)的很快。在很多的情況下,不遵從這些標(biāo)準(zhǔn)會(huì)對(duì)組織機(jī)構(gòu)有明顯的影響,包括災(zāi)難性的經(jīng)濟(jì)懲罰和聲譽(yù)的損壞。任何一個(gè)之前討論過的威脅都會(huì)對(duì)規(guī)范產(chǎn)生影響,但是也存在著其他一些威脅直接關(guān)系到未能按照廣泛認(rèn)同的實(shí)踐來操作,提供規(guī)范的表現(xiàn)形式給獨(dú)立的審計(jì)師,支持電子搜索,并且在其他方面促進(jìn)用戶的合理努力去核實(shí)校準(zhǔn)是否符合規(guī)律法規(guī)和合同的需要。微軟為用戶提供了他們需要的信息去決定是否可能服從他們?cè)赪indows Azure下需要服從的法律和規(guī)范,并在可能的情況下提供示范該規(guī)范的工具。Windows Azure 中的一些幫助用戶的方法討論如下。
用戶可選擇的地理位置
Windows Azure 的一個(gè)內(nèi)在的重要挑戰(zhàn)是平衡服從規(guī)范需求和重要的在云服務(wù)后的經(jīng)濟(jì)驅(qū)動(dòng)因子之一:分段用戶數(shù)據(jù)和跨系統(tǒng)、地理和行政管理的多系統(tǒng)處理。Windows Azure用了一個(gè)很簡(jiǎn)單的方法 處理這個(gè)挑戰(zhàn):用戶去選擇他們的數(shù)據(jù)存儲(chǔ)地。Windows Azure 中的數(shù)據(jù)被存儲(chǔ)在微軟的世界各地的數(shù)據(jù)中心,基于用戶的地理位置的屬性規(guī)定來決定用Windows Azure的 哪個(gè)入口。通過用戶主動(dòng)的選擇數(shù)據(jù)存儲(chǔ)的地理位置這樣就提供了一個(gè)方便的方法去最小化服從規(guī)范的風(fēng)險(xiǎn)。
合規(guī)控制
在不同的控制器級(jí)別,本文從多維度說明了Windows Azure符合的已被認(rèn)同的合規(guī)實(shí)踐。下面是一些啟用合規(guī)的關(guān)鍵安全特性:
表2:啟用合規(guī)的特性
| 域名 | 相關(guān)章節(jié) | 概述 |
| 訪問控制 | 1.2 | Windows Azure提供了多種訪問控制功能 來保護(hù)不被未授權(quán)的管理或終端用戶訪問。 |
| 加密 | 2.1.3 | 對(duì)存儲(chǔ)和傳送的數(shù)據(jù)加密可以被用戶在Windows Azure中定義,與最好的實(shí)踐一起保證數(shù)據(jù)的保密性和完整性。 |
| 可用性 | 2.3, 4.4 | 用戶可以寫自定義的角色去提供備份,Windows Azure的物理基礎(chǔ)設(shè)施坐落在地理冗余的設(shè)施上。 |
| 隱私 | 2.1.4 | WWindows Azure的存儲(chǔ)被設(shè)計(jì)用來確保用戶數(shù)據(jù)刪除的如實(shí)性和一致性。 |
ISO 27001 證書
可信任的第三方證書已經(jīng)提供了一個(gè)不用通過提供由獨(dú)立審計(jì)員組成的小組(他們可能損害整個(gè)平臺(tái)的完整性)過多的訪問權(quán)限來保護(hù)用戶數(shù)據(jù)的機(jī)制。Windows Azure
在 Microsoft Global Foundation Services (GFS)的基礎(chǔ)設(shè)施上運(yùn)作,部分GFS由ISO27001認(rèn)證。ISO27001是世界范圍內(nèi)公認(rèn)的首要國(guó)際性信息安全管理標(biāo)準(zhǔn)之一。Windows Azure正在獲得更多行業(yè)認(rèn)證評(píng)估的過程中。
除了國(guó)際認(rèn)證標(biāo)準(zhǔn) ISO27001,微軟公司是Safe Harbor的簽署者并許諾完成所有在Safe Harbor框架下自身的義務(wù)。
盡管符合法律,規(guī)范,行業(yè)需求的責(zé)任在Windows Azure用戶身上,微軟依然保證幫助用戶通過上面所述的特性完成合規(guī)。
6.進(jìn)一步閱讀 參考文獻(xiàn)
- 以下資源提供更多的關(guān)于Windows Azure 以及相關(guān)微軟服務(wù)的信息,以及在本文中引用到的關(guān)鍵項(xiàng):
- Windows Azure Home 常規(guī)信息和進(jìn)一步關(guān)于Windows Azure資源的鏈接:http://www.microsoft.com/windowsazure/
- Windows Azure開發(fā)中心主要知識(shí)庫(kù),用于開發(fā)指導(dǎo)和參考:http://msdn.microsoft.com/en-us/windowsazure/default.asp
- 開發(fā)Windows Azure應(yīng)用程序的安全最佳實(shí)踐: http://download.microsoft.com/download/7/3/E/73E4EE93-559F-4D0F-A6FC-7FEC5F1542D1/SecurityBestPracticesWindowsAzureApps.docx
- Windows Azure中的加密服務(wù)和數(shù)據(jù)安全:http://msdn.microsoft.com/en-us/magazine/ee291586.aspx
- 微軟的安全開發(fā)生命周期--SDL 是微軟在Windows Azure開發(fā)期間的安全保障: www.microsoft.com/security/sdl/
- 微軟的全球基礎(chǔ)服務(wù)安全:http://www.globalfoundationservices.com/security/
- 微軟GFS' ISO 27001證書-http://www.bsigroup.com/en/Assessment-and-certification-services/Client-directory/CertificateClient-Directory-Search-Results/?pg=1&licencenumber=IS+533913&searchkey=companyXeqXMicrosoft
- 微軟安全響應(yīng)中心--微軟安全漏洞,包括Windows Azure問題,可以報(bào)告給http://www.microsoft.com/security/msrc/default.aspx 或通過郵件發(fā)送給secure@microsoft.com.。
免責(zé)聲明
這個(gè)文件是根據(jù)目前狀況提供的。本文的信息和觀點(diǎn)表述包括URL和其他互聯(lián)網(wǎng)站參考可能會(huì)沒有提示而產(chǎn)生變動(dòng),您使用時(shí)可能有風(fēng)險(xiǎn)。其中的一些例子描述只是為了描述而提供,且都是虛構(gòu)的。沒有現(xiàn)實(shí)的聯(lián)系或者推斷。本文不提供你任何的微軟產(chǎn)品過渡屬性的法律權(quán)限,你可以復(fù)制使用本文作為內(nèi)部參考目的。
<!-- -->7. 術(shù)語(yǔ)
術(shù)語(yǔ) | 定義 |
| 應(yīng)用程序 | 是一個(gè)角色的集合,當(dāng)在VMs上啟動(dòng)時(shí),提供一個(gè)托管服務(wù)。 |
| 集群 | 是硬件模塊的集合被單個(gè)FC控制。 |
| 計(jì)算節(jié)點(diǎn) | 管理程序的集合,Root OS/FA和用戶VMs/GAs組成一個(gè)計(jì)算節(jié)點(diǎn)。 |
| 配置文件 | 用戶提供了一個(gè)單個(gè)的配置文件來指定所有在應(yīng)用程序中角色的連接需求。FC接收部分配置并放到每個(gè)角色實(shí)例的C:驅(qū)動(dòng)器中。如果用戶在橘色實(shí)例正在運(yùn)行時(shí)更新了配置文件,Fabric通知所有虛擬機(jī)更新它們的配置文件,并之后通知用戶應(yīng)用程序重新讀取配置文件。 |
| 用戶 | 本文中,用戶是為了運(yùn)行應(yīng)用程序從微軟購(gòu)買Windows Azure資源的當(dāng)事人。這個(gè)術(shù)語(yǔ)“用戶”包括內(nèi)在Windows Azure上部署的微軟內(nèi)部小組。 |
| 終端用戶 | 最終用戶是訪問在Windows Azure Fabric部署的服務(wù)的人。他們可以是雇員或用戶的用戶(定義見上文)。 他們一般通過互聯(lián)網(wǎng)訪問這些服務(wù)(除非終端用戶是另一個(gè)Windows Azure用戶,這種情況下請(qǐng)求可能來自Windows Azure Fabric內(nèi)部但是依然被當(dāng)做來自互聯(lián)網(wǎng)對(duì)待)。終端用戶是不被Windows Azure基礎(chǔ)設(shè)施或者我們默認(rèn)的用戶配置信任的,也因?yàn)槿绱嘶A(chǔ)設(shè)施提供對(duì)于終端用戶的保護(hù)機(jī)制。 |
| FA (fabric agent) | Root OS的一個(gè)組件,打開了一個(gè)SSL端口,這個(gè)端口用來接受外來的連接和請(qǐng)求,這些連接和請(qǐng)求來自控制器和執(zhí)行本地配置行為,這些行為包括VMS的新建和刪除,以及本地存儲(chǔ)系統(tǒng)的更新。 |
| FC (fabric controller) | 軟件,執(zhí)行算法來管理和提供物理硬件,分配磁盤資源,CPU資源,內(nèi)存和虛擬機(jī)給用戶,部署應(yīng)用程序和操作系統(tǒng)映像的節(jié)點(diǎn)和程序包過濾器來控制在Fabric中的連接。它還參與通過英特爾的預(yù)啟動(dòng)執(zhí)行環(huán)境(PXE)的框架進(jìn)行遠(yuǎn)程網(wǎng)絡(luò)啟動(dòng)操作系統(tǒng)映像節(jié)點(diǎn)的初始化過程。 |
| 托管服務(wù) | 一個(gè)用戶定義的,基于云的服務(wù),Windows Azure 為微軟用戶托管這些服務(wù)。 |
| GA (guest agent) | Windows Azure提供的運(yùn)行在用戶虛擬機(jī)上的代理器,提供角色健康檢測(cè),證書以及密鑰的安裝之類的服務(wù)。這個(gè)代理在根分區(qū)通過私有的與FA的鏈接去與外界通信。當(dāng)Windows Azure提供GAs時(shí),它們運(yùn)行在一個(gè)應(yīng)用程序的安全上下文中,因此它們被認(rèn)為是Windows Azure安全模式下的程序代碼。 |
| guest OS | 一個(gè)經(jīng)過測(cè)試的在虛擬機(jī)上運(yùn)行的操作系統(tǒng)來為用戶提供Windows Azure的兼容性。每個(gè)Guest OS被設(shè)計(jì)成與特定的Windows Server版本兼容。 |
| 管理程序 | 該軟件組件用于隔離所有用戶的代碼,在Windows Azure上運(yùn)行。它直接運(yùn)行在硬件并劃分成一個(gè)虛擬機(jī)的可變數(shù)目的節(jié)點(diǎn)。連同Root OS,它強(qiáng)制對(duì)外部約束和分配資源的通信。 |
| load balancer | 一種硬件網(wǎng)絡(luò)設(shè)備,接受進(jìn)入Windows Azure的互聯(lián)網(wǎng)流量,并將其轉(zhuǎn)發(fā)到一個(gè)適當(dāng)?shù)腎P地址和端口。 在一般情況下那里有幾個(gè)不同的機(jī)器或虛擬機(jī),可處理給定的請(qǐng)求,負(fù)載均衡器用在它們中平衡負(fù)載的方式分配連接。負(fù)載平衡器的路由表必須在虛擬機(jī)的創(chuàng)建,刪除,從一個(gè)移動(dòng)到另一個(gè)硬件時(shí)更新。 |
| MA (monitoring agent) | 一個(gè)運(yùn)行在多個(gè)地方的代理,包括了FC和一些根系統(tǒng)以及一些監(jiān)視器和診斷程序日志信息,這個(gè)代理將它們寫進(jìn)日志文件。它最終將這些信息的一個(gè)轉(zhuǎn)換過的后繼文件放進(jìn)一個(gè)預(yù)先配置的Windows Azure的存儲(chǔ)賬戶里。 |
| MDS (monitoring data analysis service) | 一個(gè)自由存在的服務(wù),它讀取多種監(jiān)視器和診斷日志數(shù)據(jù)和總結(jié)/消化這些信息,并將信息寫進(jìn)一個(gè)集成日志。 |
| 包過濾器 | 由節(jié)點(diǎn)的跟分區(qū)實(shí)現(xiàn)的一個(gè)網(wǎng)絡(luò)策略強(qiáng)制機(jī)制,在Windows Azure fabric中強(qiáng)制IP連接限制。 |
| PKCS12 | 一個(gè)被RSA實(shí)驗(yàn)室發(fā)布的PKCS,它使用對(duì)應(yīng)的公鑰定義一個(gè)用來存儲(chǔ)X.509密鑰的文件普通格式,它被一個(gè)基于密碼的鍵值所保護(hù)。 |
| REST (representational state transfer) | 一個(gè)運(yùn)行在SOAP上的協(xié)議,被應(yīng)用在許多Windows Azure fabric交互中以及Windows Azure用戶開發(fā)環(huán)境中。 |
| 角色 | 一個(gè)程序的進(jìn)程,它由二個(gè)或者更多的相同的交錯(cuò)分布在多節(jié)點(diǎn)中的角色實(shí)例組成,提供可升級(jí)性和容錯(cuò)性。每一個(gè)主機(jī)服務(wù)有至少一個(gè)角色,大多數(shù)都有兩個(gè)或三個(gè)。每著服務(wù)器可能有很多角色。“角色”這個(gè)術(shù)語(yǔ)有時(shí)也被用于描述定義角色行為的代碼和配置的集合,并被用于實(shí)例化單結(jié)點(diǎn)角色實(shí)例。 |
| 角色實(shí)例 | 一個(gè)運(yùn)行在虛擬機(jī)上的進(jìn)程,執(zhí)行了一個(gè)角色的部分托管服務(wù)的一個(gè)單一實(shí)例,對(duì)可擴(kuò)展性和可用性而言,對(duì)于給定的一個(gè)角色幾個(gè)實(shí)例只運(yùn)行一次,如果一個(gè)特殊的托管服務(wù)在一定時(shí)間內(nèi)沒有運(yùn)行,那么它的任何角色將不會(huì)再有任何角色實(shí)例。 術(shù)語(yǔ)“角色實(shí)例” 有時(shí)候也被用來表示托管單個(gè)角色實(shí)例的整個(gè)虛擬機(jī)。角色實(shí)例通常跟內(nèi)部/NAT的Windows Azure IP地址是一一對(duì)應(yīng)的。 |
| Root OS | 一個(gè)運(yùn)行在電腦結(jié)點(diǎn)上的第一個(gè)虛擬機(jī)上的老練的操作系統(tǒng),并且掌控組織代理。這個(gè)精簡(jiǎn)版操作系統(tǒng)僅僅包括了那些必須的運(yùn)行虛擬機(jī)的組件。這是為了提高運(yùn)行效率并且減少攻擊接口。 |
| SMAPI (service management API) 服務(wù)管理API | 托管服務(wù)。為Windows Azure用戶開發(fā)者實(shí)現(xiàn)了程序化的可訪問的API。Windows Azure開發(fā)人員使用Windows Azure Portal提供的證書來進(jìn)行SSL身份驗(yàn)證,繼而通過REST協(xié)議調(diào)用SMAPI。 |
| 訂閱 | 被一個(gè)用戶設(shè)置的Windows Azure賬戶。可以用來統(tǒng)計(jì)托管服務(wù)和存儲(chǔ)賬戶的收費(fèi)信息。 |
| VHD (virtual hard disk) | 存儲(chǔ)的映像文件格式,反映一臺(tái)計(jì)算機(jī)的硬盤系統(tǒng),用戶軟件以及用單一格式反應(yīng)單個(gè)計(jì)算機(jī)硬盤的鏡像的臨時(shí)狀態(tài)。 |
| VIP (virtual IP address) | 一個(gè)外部可見的IP地址,用戶端通過該通信服務(wù)托管在Windows Azure。虛擬地址由負(fù)載平衡器實(shí)現(xiàn),負(fù)載平衡器分配通信給具體的端點(diǎn)(主要為角色)。 |
| VM (virtual machine) | 一個(gè)純軟件的在虛擬內(nèi)存管理器(VMM,或者h(yuǎn)ypervisor)中運(yùn)行的計(jì)算機(jī)模擬器。模擬一個(gè)物理計(jì)算機(jī)。 |
| Windows Azure管理程序 | (見管理程序 ) |
| Windows Azure Portal | 用戶管理通過Windows Azure門戶網(wǎng)站托管服務(wù)和存儲(chǔ)帳戶。 |
| Windows Azure驅(qū)動(dòng) | Windows Azure驅(qū)動(dòng)提供了一個(gè)可持久的NTFS卷,提供給Windows Azure虛擬機(jī)實(shí)例去安裝和使用。 Windows Azure驅(qū)動(dòng)實(shí)際上是一個(gè)數(shù)據(jù)塊,所有在驅(qū)動(dòng)器上的寫操作都能在存儲(chǔ)賬戶的數(shù)據(jù)塊中持久化。如果安裝驅(qū)動(dòng)的虛擬機(jī)失效,驅(qū)動(dòng)仍然以數(shù)據(jù)塊形式存在,而且它可以在不丟失數(shù)據(jù)的情況下重新安裝在其它地方。在一個(gè)Windows Azure驅(qū)動(dòng)中的字節(jié)被典型性的格式化,像一個(gè)在物理磁盤上的NTFS映像一樣。而且Windows Azure 虛擬機(jī)可以像光盤一樣的安裝,并且像訪問文件系統(tǒng)一樣訪問它們。Windows Azure代碼將來自于Windows Azure 驅(qū)動(dòng)的數(shù)據(jù)在本地光盤上進(jìn)行緩存,用來避免大量的讀操作帶來的性能損失。盡管存儲(chǔ)數(shù)據(jù)塊、表和隊(duì)列被設(shè)計(jì)成可以被多個(gè)獨(dú)立的虛擬機(jī)打開和更新,一個(gè)Windows Azure驅(qū)動(dòng)只能夠被一個(gè)虛擬機(jī)進(jìn)行讀寫裝載。但是驅(qū)動(dòng)器的快照可以被任何數(shù)量的虛擬機(jī)以只讀方式裝載,這樣在分布的相同的進(jìn)程中更新數(shù)據(jù)就很困難了。Windows Azure驅(qū)動(dòng)主要是為了那些已經(jīng)設(shè)計(jì)為支持NTFS卷的應(yīng)用程序的兼容性以及簡(jiǎn)化單-主角色的持久的狀態(tài)遷移而存在的。 |
本文翻譯自:http://www.microsoft.com/windowsazure/whitepapers/papers/default.aspx
總結(jié)
以上是生活随笔為你收集整理的Windows Azure安全概述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html怎么从左到右设置颜色,使用CSS
- 下一篇: java交通灯英文文献_java 交通灯