Windows Azure:了解 Windows Azure 中的安全性帳戶管理

雖然雲端運算能夠減輕部分的安全性負擔,但是您仍需積極管理存取、保護通訊安全以及確保資料防護。

Joshua Hoffman

雲端運算是 IT 產業自網際網路發明以來最重大的一次架構轉型。更快速的頻寬、更低廉的儲存空間,以及更穩健的虛擬化技術,使得「軟體即服務」的願景得以成真。雲端提供可調整、靈活的隨用隨付 (Pay-as-you-go) 系統,滿足了「以少成多」這一代的需要。

雖說雲端運算減輕了許多基礎結構管理方面的責任,安全性仍然是重要的考量,還是需要像對待實體資料中心的安全性一樣深思酌量。隨著應用程式和服務移轉至像是 Windows Azure 的雲端運算平台,您必須繼續積極管理存取、保護通訊安全以及確保重要商業資料的防護。

對於裝載在 Windows Azure 上的應用程式和服務,有幾種建議的安全性管理方法。而建立和管理系統管理帳戶、使用憑證進行驗證,以及處理新進或離職員工交接也有一些最佳作法。

帳戶擁有權

Microsoft Online Services 客戶入口網站 (MOCP) 會處理所有 Windows Azure 帳戶管理和帳單。您可以透過 MOCP 註冊 Windows Azure 服務,新增其他像是 SQL Azure 的服務,以及建立現有服務的新執行個體 (稱為訂閱)。

訂閱其實是 Windows Azure 各項服務的計費邊界。對於各個需要不同計費結構的應用程式 (或應用程式集合),您應該各自維護不同的訂閱。例如,如果您有不同的部門全都在 Windows Azure 上裝載應用程式,但是需要分開計費,可以建立含個別帳單明細的不同訂閱。

您需要為每個訂閱指定「帳戶擁有者」帳戶和「服務管理員」帳戶。每個帳戶都與 Windows Live ID 相關聯。帳戶擁有者負責透過 MOCP 管理訂閱和帳單。帳戶管理必須透過 Windows Azure 管理入口網站管理訂閱的技術層面,包括建立裝載服務。

強烈建議您為每個角色建立唯一的帳戶。這些帳戶應該獨立存在於個別的帳戶。也就是說,不要在組織或團隊環境下使用您個人的 Windows Live ID 作為帳戶擁有者或服務管理員帳戶。而是集中建立唯一的帳戶 (或許是對帳戶擁有者使用 AO[unique ID]@live.com,對帳戶管理員使用 AA[unique ID]@live.com 的命名法),加上可以管理的密碼,並且在必要時重設。

建立好訂閱之後,您的帳戶管理員就可以透過 Windows Azure 管理入口網站管理裝載服務。他們可以使用服務管理員帳戶認證來存取此網站。登入後就可以開始建立新的裝載服務 (請參閱 [圖 1])。

Figure 1 Creating a new Hosted Service in Windows Azure

[圖 1] 在 Windows Azure 中建立新裝載服務

當建立新裝載服務時,系統會提示您指定服務名稱。您也必須提供 URL 前置詞和部署選項。您也可以從像是 Visual Studio 等開發環境 (如果已經有封裝應用程式的話) 選擇現有套件 (.cspkg) 和設定檔 (.cscfg)。

從入口網站左側的 [裝載服務 (Hosted Services)) 索引標籤,選取 [User Management (使用者管理)]。您可以從此處新增其他聯合管理員到訂閱中 (請參閱 [圖 2])。這在提供裝載應用程式管理的存取方面提供您多一些彈性。

Figure 2 Adding new administrators to the subscription

[圖 2] 加入新管理員到訂閱中

憑證管理

憑證是 Windows Azure 安全性的要件。有兩種憑證與保障您的應用程式或服務安全息息相關:服務憑證和管理憑證。

服務憑證是用於保護端點通訊安全的傳統 SSL 憑證。例如,若是您曾經為裝載在 IIS 上的網站設定過 SSL 安全性,對這類憑證就不陌生。您需要有受信任的根憑證授權單位 (CA) 所核發的服務憑證,方能進行生產部署。因此,您將需要向 VeriSign 或 DigiCert 等協力廠商購買服務憑證。

這裡 (適用於 Microsoft Windows) 和這裡 (適用於 Microsoft Windows Phone 7) 有受信任的根 CA 清單。您的 SSL 憑證名稱必須與您網站的網域名稱相符。所以您需要有 DNS CNAME 項目將 yourapp.cloudapp.net (Windows Azure 為您的應用程式提供的網域名稱) 對應到 www.yourcompany.com。基於安全理由,您無法購買對應到 yourapp.cloudapp.net 的憑證。只有 Microsoft 可以核發 cloudapp.net 的憑證,不過您可以建立您自己的自我簽署憑證作為開發用途。

自我簽署憑證應該僅作為測試用途,因為使用者的網頁瀏覽器並不信任它們。您在測試期間會注意到您自己的瀏覽器指出非信任的憑證,或是使用 Windows Communications Foundation (WCF) 進行的 API 呼叫會失敗。這並不是憑證不能用,而是不受到根 CA 的信任。在瀏覽器內,這通常在測試時是可接受的干擾,但您肯定不希望使用者有這樣的體驗。

為了利用 API 呼叫執行測試,您必須加入程式碼來略過認證驗證,或是使用 [憑證管理] MMC 的批次命令或透過程式碼的方式,將自我簽署服務憑證的根 CA 憑證新增到受信任的根憑證授權單位憑證存放區。Microsoft 的 David Hardin 在他的部落格有提供在這方面更詳細的資訊。

您必須以個人資訊交換 (.pfx) 的格式提供 Windows Azure 服務憑證。若要建立您自己的自我簽署服務憑證並使用「password」作為預留密碼 (您可以在最後的命令中變更此值以配合您的喜好),開啟 Visual Studio 命令提示,然後執行下列命令:

makecert -r -pe -n "CN=yourapp.cloudapp.net" -b 01/01/2000 -e 01/01/2036 -eku 1.3.6.1.5.5.7.3.1 -ss my -sky exchange 
-sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -sv SSLDevCert.pvk SSLDevCert.cer

del SSLDevCert.pfx

pvk2pfx -pvk SSLDevCert.pvk -spc SSLDevCert.cer -pfx SSLDevCert.pfx -po password

您可以從 Windows Azure 管理入口網站的 [裝載服務 (Hosted Services)] 索引標籤上載 SSL 服務憑證,方法是按一下 [新增憑證 (Add Certificate)],然後指定密碼 (請參閱 [圖 3])。

Figure 3 Adding a service certificate in Windows Azure

[圖 3] 在 Windows Azure 中新增服務憑證

管理憑證是 Windows Azure 所用的另一種憑證類型。Windows Azure Tools for Microsoft Visual Studio 使用管理憑證為您的 Windows Azure 部署驗證開發人員。CSUpload 命令列工具也使用管理憑證來部署虛擬機器角色映像,以及執行 Windows Azure 服務管理 REST API 要求。

Windows Azure 服務管理 Cmdlet 使用管理憑證來存取 Windows PowerShell。您可以使用 Windows Azure PowerShell Cmdlet 輕鬆地執行和自動化 Windows Azure 架構的系統部署、設定和管理作業。

您必須以 X.509 (.cer) 格式提供 Windows Azure 管理憑證。若要建立您自己的自我簽署管理憑證,開啟 Visual Studio 命令提示,然後執行下列命令:

makecert -r -pe -a sha1 -n "CN=Windows Azure Authentication Certificate" -ss my -len 2048 -sp "Microsoft Enhanced RSA and AES Cryptographic Provider" -sy 24 ManagementApiCert.cer

請使用 Windows Azure 管理平台來上載管理憑證,方法是從左側面板選取 [管理憑證 (Management Certificates)],然後選擇 [新增憑證 (Add Certificate)] (請參閱 [圖 4])。有關建立您自己的憑證用於 Windows Azure 的詳細資訊,請參閱 MSDN Library<如何為角色建立憑證>一文。

Figure 4 Adding a management certificate in Windows Azure

[圖 4] 在 Windows Azure 中新增管理憑證

員工交接

雲端運算解決方案的主要優點之一是,它是由公司外部的第三方代管。這立刻就能從您自己的位置提供一層實體備援。不過,這也表示當有員工離職時 — 無論是否出於自願 — 比較難限制對您的資源的存取。

因此,每當發生會影響對您雲端運算資源的存取許可的變更時,遵循一些重要的步驟就變得特別重要。第一個步驟是重設前員工可以存取的任何服務管理員帳戶的密碼。如果您已設立唯一且獨立的帳戶擁有者和服務管理員識別碼,並且可集中管理,將可簡化此程序。

如果您無法重設服務管理員的密碼,可以以帳戶擁有者的身分登入 MOCP。更新列為服務管理員的帳戶。您也應該透過 Windows Azure 管理入口網站移除任何列為聯合帳戶管理員的帳戶。

第二步是重新核發任何相關的管理憑證。這些憑證提供您的裝載服務透過 Visual Studio 和 Windows Azure API 驗證的管道。因此,員工一旦離職,您就不能再信任這些憑證。即使員工沒有帶走工作機器,他們還是有可能透過其他方法取得憑證副本。

若要重新核發管理憑證,只要重新執行前文指定的命令,然後從 Windows Azure 管理入口網站移除舊管理憑證就行了。上載新管理憑證並將它們散發給所有已授權的員工。您只須對管理憑證進行這些步驟,無須重新核發服務憑證,因為它們只提供加密,而不驗證。

儘管應用程式是裝載在雲端內,您還是需要徹底了解它們的安全性架構 (如需更多有關此主題的資源,請務必查看 MSDN Library 的 Windows Azure 的安全性資源網頁)。針對帳戶和憑證管理憑證遵循這些最佳作法,將有助於確保貴組織能夠在不犧牲重要商務資訊的安全性下從雲端運算充分獲益。

感謝 Microsoft IT 的 David Hardin 和 Microsoft 開發人員與平台推廣小組的 Daniel Odievich,以及《安全性演講 (Security Talk )》系列的合作,在撰寫本文期間提供協助。

Joshua Hoffman

Joshua Hoffman是《TechNet Magazine》的前任主編。他現在是一名獨立的作者和顧問,為客戶提供技術與觀眾導向市場行銷的建議。Hoffman 同時也擔任 ResearchAccess.com 的主編,這個網站旨在培養和豐富市調社群。他現居美國的紐約市。

 

相關內容