國內外雲平臺訪問控制(Access Control)機制對比分析

食肉大灰兔發表於2015-12-23

1. AWS

Amazon雲平臺的資料管理是通過 Amazon Simple Storage Service(S3)提供的可靠網路儲存服務,通過S3,個人使用者可以將自己的資料放到雲平臺上去,並進行訪問和管理。S3將每個資料物件(object)儲存在稱為桶(bucket)的容器中進行管理。Amazon不僅控制使用者對 object 的操作(讀、寫、刪),也會控制使用者對 bucket 的操作(羅列物件、增加、移除物件等)。Amazon 訪問控制方式有 4 種:

1) IAM(Identity and Access Management): 通過在 Amazon 賬戶之下建立多個使用者,分配相應的安全憑證給使用者以及管理他們的許可權。http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/access.html
2) ACL(Access Control List): 賬戶層次的訪問控制策略。即訪問許可權是基於資源的許可權。以物件和桶為中心,定義了哪些Amazon 賬戶能夠訪問物件和桶。
3) Bucket Policy: 兼具使用者層次和賬戶層次的控制策略。桶策略不僅可以控制訪問桶的使用者,還可以控制特定源 IP 地址的訪問。另外,Bucket Policy可以實現讓其他賬戶上載物件到桶中,以實現跨賬戶的許可權控制。
4) 查詢字串身份認證。該機制利用 URL 與其他使用者共享資料物件,通過在 URL中附加簽名和有效期來訪問共享資料。

2. Windows Azure

微軟雲Windows Azure定義了 3 種資料儲存方式:Blob,Table 和 Queue。其中,Blob 用來儲存大資料(如圖片、視訊等),Table 提供維護服務狀態的結構化儲存,Queue 提供非同步任務資料的分發。Windows Azure 的訪問控制管理主要有兩個方面:

1) 共享訪問簽名。在特定時間間隔內,對 3 種資料儲存方式進行受限訪問許可權,通過 URL 與其附加簽名和有效期來訪問共享資料.
2) Blob policy。使用 Blob 容器級別的訪問策略可從伺服器方面提供對共享訪問簽名的額外控制級別。容器級別的訪問策略可將共享訪問簽名分組,並進一步限制策略所約束的簽名。使用者可使用容器級別的訪問策略改變簽名的啟動時間、到期時間或許可證,或者在釋出簽名後予以撤回。
https://azure.microsoft.com/en-us/documentation/articles/active-directory-whatis/?rnd=1
http://blogs.msdn.com/b/azchina/archive/2014/03/14/roles-based-access-control-in-mobile-services-and-azure-active-directory.aspx

3. Google App Engine

Google 雲的訪問控制技術為每個使用者提供一個唯一的使用者 ID,此 ID 用來識別每個使用者在 Google 雲的活動記錄。通過使用者 ID,Google 雲平臺給分配相應的許可權。資料容器桶是 Google 雲端儲存中存放資料的最基本容器,所有資料都必須存放在桶中,Google 利用桶來組織資料。Google 儲存提供了兩種訪問控制機制:

1) ACL。在 Google 雲的訪問控制列表機制中,主要有讀、寫、完全控制 3 種級別的許可權,在桶和物件的擁有者未指定桶和物件的 ACL 時,系統會使用預設的 ACL 來控制使用者訪問 .所有桶預設其擁有者具有完全控制許可權,擁有者可以通過修改和更新 ACL 來控制其他使用者的不同許可權.
2) 簽名的 URL(查詢字串認證)。不需要 Google 賬號就能訪問資料,該機制類似於 Amazon 查詢字串認證,也是通過在 URL中附加簽名和有效期來訪問共享資料

4. Baidu

百度云云儲存(BCS)服務目前支援兩種方式對儲存資源進行訪問控制:

1) URL 簽名 :通過對 URL 進行簽名來識別訪問者的身份,從而實現使用者身份驗證.百度雲端儲存的開發者可根據 Access Key 和 Secure Key 對本次請求進行簽名 ,BCS 根據簽名來判斷當前發起請求的使用者的身份.
2) ACL: 通過 ACL 來管理 bucket 和 object 的訪問控制許可權,管理方式即設定 bucket policy 和 object policy.通過設定 policy,可允許雲端儲存使用者將資源(bucket 和 object)的訪問和控制許可權開放給其他使用者.

5. VMware

使用使用者、組、角色和許可權可控制哪些使用者可以訪問 vSphere 受管物件以及他們可以執行哪些操作。vCenter Server 和 ESX/ESXi 主機根據分配給使用者的許可權確定使用者的訪問級別。vCenter Server 和 ESX/ESXi 主機憑藉使用者名稱、密碼和許可權組合這一機制對使用者的訪問許可權進行驗證並授予其執行操作的許可權。伺服器和主機將維護授權使用者及分配給每個使用者的許可權的列表。
http://www.storageonline.com.cn/virtualtech/vmware/vmware-vcenter-access-control/

6. 對比分析

雲服務提供商訪問控制技術對比

Cloud Openstack CloudStack Eucalyptus
訪問控制元件 認證授權元件 Keystone: 提供了認證和管理使用者、帳號和角色資訊、授權服務。2. 網路元件 Neutron:管理安全組、虛擬機器和網路訪問 . 沒有專用訪問控制元件; 2. 資源域 (zone)管理使用者、安全組、虛擬 機和網路訪問,資源域之間可以實現完 全物理隔離的,硬體 資源、網路配置、虛擬機器都是獨立的. 沒有專用訪問控制元件; 2. 雲控制器(CLC)處理身份認證、使用者管理; 3. 集中控制器(CC)管理安全組、虛擬機器和網路訪問.
使用者級別區分 分為Use和 tenant (project),User通過 tenant 對雲平臺進行操作,每個 tenant都有admin 級別和普通級別, 兩者許可權不同,不同的tenant 資源隔離. 1.分為 Domain\Account\User,樹狀結構,Account 屬於Domain, User是 Account的別名 ,不同 Account的資源相互隔離. 分為 Account\User 兩級結構,User 分為 admin 級別和普通級別,兩者許可權不同 admin 級別可以進行Group編輯.不同 Account的資源相互隔離.
虛擬機器和網路訪問 對網路元件 Neutron 中的 port 設定進入規則和流 出規則來實施訪問控制,每個tenant預設一個安全組,允許 tenant的虛擬機器之間內部通訊; 2. 網路隔離主要通過VLAN,Flat或者 FlatDHCP模式實現. 對一組(個)IP或同一安全組的所有VM 設定進入規則和流出規則來實施訪問控制,每個User初始預設一個安全組,一個User可以建立多個安全組,可同時應用多個安全組在一個虛擬機器上; 2. 網路隔離主要通過 VLAN實現. 為虛擬機器提供 3 層網路的防火牆服務,對同一安全組的所有VM設定進入規則和流出規則來實施訪問控制 ,每個 User預設一個安全 組, 允許tenant 的虛擬機器之間內部通訊; 2. 網路隔離主要 通過V L A N或者ebtable實現.

相關文章