雲端運算(Cloud Computing)是屬於網路的一種運作模式,有學者認為雲端運 算的前身是網格運算(Grid Computing)。在雲端運算中,客戶能將自己的程式運 算、資料儲存均交由雲端運算處理,而不是在客戶電腦內執行。雲的概念就像是 隨手可得,卻又不知其運作的原理。在客戶隨時需要雲端上的資訊時,只需要接 上網路即能取得。
雲端運算也是一種利用虛擬化技術(Virtualization)達到資源充分利用的運作 模式。當客戶有龐大運算需求時,只須交由雲端做運算,雲端即會將運算的份量 交由眾多虛擬機器執行分散式運算(Distributed Computing),高效率並快速的運算 出客戶所需的結果,中小企業並能使用雲端凝聚化(Consolidation)達到降低所需
雲端運算依其提供服務的方式又可大致分為三種,軟體即服務(Software
‧
(Infrastructure as a Service, IaaS)。以下將介紹此三種服務的運作及應用例子:(1). 軟體即服務(SaaS)
SaaS 提供服務的方式就好像軟體一樣,服務提供商(Service Provider)提供的 服務就有如軟體一般,能提供使用者軟體應用的服務。例如:Google Docs、
Salesforce.com。
(2). 平台即服務(PaaS)
PaaS 提供的服務方式就好像平台一樣,使用者能藉著服務提供商所提供的 平台,將自己寫好的軟體佈署上去。而服務提供商也提供管理軟體的儲存空間佔 有率、CPU 使用度……等等介面供使用者管理。例如:Google App Engine、
Windows Azure、Hadoop 建置出的私有雲環境亦屬之。
(3). 基礎設施即服務(IaaS)
IaaS 提供服務的方式比較特別,對使用者就有如一個龐大的機房在雲端上,
當使用者需要機器運作時,即可向服務提供商申請,就好像立即獲得了一台機器 可以運作。IaaS 實作的方式是利用虛擬化的技術,使用者可利用供應商提供的介 面管理機器,而當機器運作超過特定的程度時,也能達到即時擴充的效果。例如:
Amazon EC2、S3。
2-1.2 雲端運算種類
雲端運算依照所擁有的種類大致可以分成三種,分別是公有雲(Public Cloud)、私有雲(Private Cloud)及混合雲(Hybrid Cloud)。以下分別對此三種雲端 運算種類做介紹:
(1). 公有雲(Public Cloud)
由雲端服務提供商提供服務給大眾使用稱之為公有雲,公有雲上的服務在一
‧
受,也因此,公有雲為最常見普遍的雲端種類。例如:Google Docs、Google App Engine。企業也可將自己的機房、資料中心佈署上公有雲,以減少企業內的機器管理、
營運成本,並將所有的管理成本交由公有雲的供應商來承擔,增加更高度的服務 可靠度。例如:Google Apps、Windows Azure、Amazon EC2、Amazon S3 均屬於 此類。 (Data Backup)、系統備援(System Redundancy)的效果,亦能提高服務的效率以及 可靠程度。例如:利用 Apache Hadoop 能建構出私有雲的系統。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
8
圖 2:雲端種類的示意圖
2-1.3 雲端運算之認證安全、授權控制與檔案同步等相關安全 議題
本 章 節 將 探 討 雲 端 運 算 的 認 證 安 全 (Authentication) 、 存 取 控 制 (Authorization)與檔案同步(File Synchronization)等企業在使用雲端時可能遇到資 訊安全的問題。
(1). 認證安全(Authentication)
在使用雲端平台時,常常會運用到跨網站登入的方式,一般跨網站 的單一登入認證又可分為最普遍的兩種: UID (Unique Identify)以及 CA(Centralized Authentication) (謝乙誠、尤淑芬, 2009)。
CA 的認證方式較單純,簡單來說就是系統本身不做身分驗證工作,而將身 分驗證工作均轉移到驗證伺服器上,詳細流程如下圖 3 所示:
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
9
圖 3:CA 驗證流程,引用自謝乙誠、尤淑芬, 2009
UID 的認證方式較複雜但也較安全,利用一次性的 token 來達到身分驗證。
並在 token 加入時戳變數,避免此 token 遭人盜用,詳細流程圖如下圖 4:
圖 4:UID 驗證流程,引用自謝乙誠、尤淑芬, 2009
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
10
在 使 用 公 有 雲 的 雲 端 系 統 中 , 雲 端 供 應 商 通 常 都 會 提 供 單 一 登 入 (Single-Sign-On, SSO)認證方式,而此種驗證身分的方式與上述類似。這代表著 使用者必須透過雲端供應商所提供的登入介面登入至雲端平台後,才能繼續使用 相關的服務(如圖 3 上圖)。而當雲端上的服務需要帳號認證時,使用者透過雲端 平台的認證,雲端平台就會產生一個 Token 送至服務認證伺服器,進而達到單一 登入的效果(如圖 3 下圖)。(Harry Katzan & Jr., 2010)
圖 5:雲端認證方式,引用於 Harry Katzan & Jr., 2010
私有雲的運作皆在企業網路內,因此遇到的認證問題通常較單純,例如:忘 記密碼、同時登入……等較單純的狀況。混合雲在運作時可能遇到較嚴重的問題,
當企業內部員工需要登入混合雲整個系統時,將會面臨無法單一登入(SSO)的狀 況。因此,結合公有雲及私有雲的混合雲登入認證即是一個重要的安全議題。
‧
(2). 授權控制(Authorization)
在公有雲的存取控制中,通常伴隨著認證安全。使用者或企業在登入雲端平
在實作上,授權控制往往利用 ACL(Access Control List),Google App、檔案 系統以及 vShield 等均是透過 ACL 來達到授權控制。透過每個檔案的 ACL 來紀 錄使用者的權限。
(3). 檔案同步(File Synchronization)
在企業或個人使用公有雲時,檔案不同步是通常的狀況。在使用者使用公有 以及 Hadoop Replication 均有實作此檔案同步之方法,另外在 Linux 及 Unix 作業 系統上的套件 rsync 也利用類似的方法來達到檔案同步。本研究在實作系統時則 透過檔案的取代來達到檔案同步,並且為了儲存的效率,不另外實作檔案版本控 管。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
12
2-2 Hadoop Distribute File Systems (HDFS)
Hadoop 為 Apache 軟體基金會 旗下的一個計畫,是為了開發一套提供可靠性 (reliable), 延 展 性 (scalable) 以 及 分 散 式 計 算 (distributed computing) 的 公 開 軟 體 (Open Source), 目前包括下列子計畫:
Hadoop Common: 用來支援其他 Hadoop 計畫的最基本的原件。
HDFS: 支援應用程式高效率存取的分散式檔案系統
MapReduce: 能夠運作在大型叢集上且平行處理大型資料的軟體運作方 式。
HDFS 為實現類似 Google File System(GFS)的子計畫,目的為對大量資料進 行分析且易於擴充的分散式檔案系統,能運作於廉價的普通硬體上,又可容錯,
提供客戶總體性能較高的服務,下圖為 HDFS 運作圖。
圖 6:HDFS 架構圖,引用自 Hadoop 官網
HDFS 利用 master/slave 機制分為 Namenode 與 Datanode 管理資料,Namenode 儲存主要的 Metadata,Datanode 則儲存大小不一檔案 Blocks,當使用者需要對檔
‧
Blocks 在哪個 Datanode,在藉由訪問 Datanode 已取得完整的檔案。HDFS 亦提供一些機制達到可靠性、檔案一致性、效能控制,讓儲存資料更
(Heartbeat)
Datanode 失效或網 路問題
Datanode 定 期 向 Namenode 送 heartbeat
Metadata Namenode 錯誤 提供 FSImage、Editlog 為備份的核心 印象檔及日誌檔 每個 Block 均勻分散在各個 Datanode 以分散讀取流量
2-3 VMware vShield
VMware 為虛擬機器常用平台之一,而使用者能利用 VMware vShield 解決 方案保護虛擬機器上的資料安全。並利用所提供支援虛擬化技術的虛擬資料中心 與雲端環境保護,提升整個組織的可視性和控管並加速符合 IT 規範。其中,
VMware vShield 包含:
VMware vShield App:針對網路威脅提供應用程式保護
VMware vShield Edge:全面網路安全
VMware vShield Endpoint:卸載和簡化防毒
VMware vShield Zones:網路威脅的基礎保護
VMware vShield Manager:完整的安全性管理
‧
因此在此章節下依序對公有雲(Google Docs)、私有雲(Hadoop)以及本地端(Linux) 的帳號以及檔案資源、控管權限方式介紹,並將在最後討論權限同步的相關安全 問題。
2-4.1 Google Docs 帳號與檔案權限控管
企業希望使用 Google 所提供的公有雲環境時,可利用企業所擁有的網域名 稱(Domain name)向 Google 申請使用 Google Apps,之後使用 Google Apps 後均以 此網域名稱為帳號使用相關的應用服務。例如:企業向 Google 申請使用公有雲
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
15
服務,並利用域名 www.nccu.edu.tw 申請,便可使用 Google Apps。若經 Google 驗 制 後 為 域 名 的 管 理 者 , 則 可 以 新 增 使 用 者 。 新 增 後 的 使 用 者 就 能 利 用 [email protected] 帳號使用 Google Apps。關於 Google Docs 的檔案管理方 式,與一般作業系統類似。使用者上傳的檔案,上傳者均擁有最大權限且是擁有 者。擁有者可將檔案分享給其他使用者,分享類型包含給予讀取檔案(read)的權 限以及存取檔案(write)的權限。若上傳的檔案不為文件,則讀取檔案權限亦為可 下載檔案的權限。而分享讀取檔案權限的方式如下圖:
圖 7:Google Docs 分享讀取檔案的方式(擷取至 Google Docs 共用文件 畫面)
(1). 公開在網路上:所有人均可以搜尋到且可觀看文件內容或下載檔案。
(2). 擁有連結的使用者:擁有者可藉著 Google Docs 將此文件/檔案的連結網 址,分享給所欲分享的他人,擁有者也可改變文件/檔案的連結,缺點 就是擁有此連結的使用者可馬上分享此連結給其他人觀看。
(3). 在企業內部分享此文件/檔案:只要是在企業內部的使用者,均可以搜
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
16
尋到此份文件/檔案。
(4). 在企業內部且擁有連結的使用者:與上述(2)類似,不過使用者必須是 企業內部的使用者才可以讀取文件/檔案。同樣的,擁有者一樣可以改 變文件/檔案連結。
(5). 私人:只有擁有者設定可存取的使用者才能存取此文件/檔案,擁有者 設定企業外部使用者可以存取也是被允許的,不過被設定的使用者至少 必須要有 Google 帳號。
另外擁有者可以設定編寫(write)文件的權限,設定的方式包含三種:所有人、
企業內部及指定使用者,對文件/檔案能存取的使用者必然也能讀取,亦可設定 編寫者是否有權利改變文件/檔案的權限。
Google Docs 利用網址以及企業網域的方式,有效的控管 Google Docs 內的 文件與檔案,並利用存取檔案權限大於讀取檔案權限的方式,讓擁有者可將文件 /檔案分享給其他使用者,且利用可更改的檔案連結分享方式,達到有效的授權 控管。
2-4.2 Linux 與 Hadoop 的檔案權限表達方式
Linux 與 Hadoop 的檔案權限管理方式相同,均分為擁有者(Owner)、群組 (Group)與其他(Others)三種管理方式。Linux 與 Hadoop 列出的檔案權限如下圖:
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
17
圖 8:Linux 的檔案權限列表
當使用者在 Console 下了"ls -l"指令後,即能看見所在資料夾下的完整內 容,以下將分別介紹上圖標號所代表的意義。
檔案的權限與類別:首要英文字代表為何種檔案類型,例如首要英文字為"
d"代表為資料夾。之後的英文數字每三個一組,分別代表著擁有者、群組以及 其他使用者的權限,以上圖為例,drwxr-xr-x 即代表著該檔案為資料夾,擁有者 擁有讀取、寫入的權限,群組及其他的使用者擁有讀取的權限,”x”代表著執行
d"代表為資料夾。之後的英文數字每三個一組,分別代表著擁有者、群組以及 其他使用者的權限,以上圖為例,drwxr-xr-x 即代表著該檔案為資料夾,擁有者 擁有讀取、寫入的權限,群組及其他的使用者擁有讀取的權限,”x”代表著執行