概述
身份管理和訪問控制是Landing Zone的基礎模塊之一。在企業在上云之初,應該首先考慮如何設計和落地身份管理和訪問控制方案,而不是創建云資源。這樣做的好處是:
- 確保對云資源的任何訪問都使用適當的身份,且每個身份擁有“最小夠用”(既不過大,也不過小)的權限。
- 確保從不同網絡環境、設備、地理位置發起的對云資源的訪問都是安全的。
- 當身份、權限發生變化(如新增用戶,用戶職責發生變化,員工離職、轉崗等)時,可以做到持續管理,降低配置難度和管理成本,避免信息泄漏、誤操作等風險。
在阿里云,我們使用訪問控制(RAM)等產品和服務來實現身份管理與訪問控制的能力。RAM概覽
方案示例
在上云規劃過程中,X公司識別出有下列身份需要對云資源進行訪問。
身份類型 | 權限需求 |
---|---|
超級管理員 | 10人的云管理團隊,其成員需要擁有對云治理服務(如身份、權限、資源、合規、安全、網絡、監控、備份等)的管理權限,無需擁有對計算、存儲等業務所需資源的直接管理權限,但在需要時可以接管控制權。該團隊還可以細分為財務管理員、安全合規管理員、網絡管理員、數據庫管理員等角色,側重于云治理框架中某一方面的管理工作。 |
企業員工 | 各業務團隊成員,他們需要使用歸屬于本部門的云資源進行開發、測試、運維等工作,一般不允許訪問其他部門的資源,但如果出現跨部門合作,也應該可以被授權訪問其他部門的資源。 |
企業外部人員 | 部分業務團隊,需要合作伙伴獲取本部門少量資源的讀寫權限。 |
企業客戶 | 有些業務部門開發的應用提供代客戶保存數據的服務,其業務場景需要允許客戶直接訪問由客戶上傳,但保存在企業的云存儲中的數據。 |
為了滿足上述需求,X公司按照“最小夠用”原則,對所有身份進行精細化權限管理:
- 對于超級管理員、企業員工
使用RAM的“單點登錄”(Single Sign On, SSO)功能,將阿里云身份系統與企業自有身份系統打通,實現單點登錄,并要求所有訪問云資源的超級管理員、企業員工等使用SSO登錄阿里云。
- 對于企業外部人員
- 長期使用者,在企業身份系統中創建用戶,采用同樣的單點登錄措施。
- 臨時使用者,在需要訪問的云賬號中創建RAM角色并授予帶時間限制的有限資源訪問權限,允許其使用自己持有的云賬號進行角色切換登錄。
- 對于企業客戶
每次客戶需要訪問云資源時,由企業應用程序為其生成短時有效的安全訪問令牌(STS Token),供客戶在應用程序內使用。
我們用一個圖更直觀地說明上述精細化權限管理方案。
其中,身份集成部分的設計邏輯如下圖所示。
方案設計思路
下面我們詳細說明身份管理和訪問控制模塊的設計思路。
身份管理針對超級管理員、企業員工和需要長期使用企業云資源的外部人員,應使用企業自有的身份系統,以外部身份憑證登錄阿里云。與只使用由云平臺頒發的身份憑證相比,這樣做有著諸多優勢,包括:
- 企業員工可以使用同樣的用戶名和密碼登錄企業自身應用和云平臺。
- 根據用戶在企業身份系統中的指定屬性,例如:根據其所屬的組,來對應在云上不同賬號、不同資源的操作權限。
- 當員工轉崗、離職時,只需要在本地進行轉移組、刪除等操作,即可解除其在云上的權限,不會造成信息泄露。
在各類外部身份憑證中,最常用的是由企業自有的身份系統(Identity Provider, IdP)提供的基于SAML 2.0協議的身份憑證。阿里云提供基于SAML 2.0協議的SSO能力,以滿足企業使用外部身份憑證登錄阿里云的需求。根據登錄后轉換成的云平臺身份不同,SSO又可以分為用戶SSO和角色SSO兩種。詳細信息,請參考SSO概覽。
我們建議企業客戶使用角色SSO,并將企業IdP中的用戶組映射到阿里云RAM角色,從而實現對企業內外部員工的有效管理。
下面簡要介紹企業對使用云資源的人員進行身份集成管理的工作模式。
準備自有IdP企業需要首先準備自有IdP,才能完成SSO配置。企業應做如下考慮:
- 如果企業已經具有支持SAML 2.0協議的身份管理系統,如Azure AD,ADFS或企業自建IdP,可以直接用來與阿里云RAM進行SSO配置。
- 對跨國企業、除云資源外還有其他云上應用需要訪問的企業、需要與釘釘進行集成的企業等,可以考慮購買Okta、阿里云IDaaS服務等云上IdP服務。
- 對希望快速搭建IdP并開始使用的企業,可以考慮用開源軟件如KeyCloak、Shibboleth搭建IdP,也可以參考簡單的開源實現。
在上云初期,企業需要進行一次性的初始化身份集成配置,主要步驟包括:
- 在IdP配置一個與阿里云進行角色SSO的應用。
- 為該應用分配使用的用戶和用戶組。
- 根據阿里云角色SSO配置要求進行SAML屬性配置。
- 在每個阿里云賬號中配置身份提供商。
- 測試配置結果。
在企業新增或移除阿里云賬號時,需要相應進行SSO配置修改,包括如下:
- 根據IdP的SAML屬性配置方式不同,可能需要進行配置修改,或重新分配用戶與用戶組。
- 在新增賬號中配置身份提供商。
- 在移除賬號中刪除身份提供商。
當企業發生訪問云資源的人員配置(新增用戶,刪除用戶,變更用戶權限)時,通常不需要進行SSO配置修改,只需要對用戶和用戶組進行操作,包括如下:
- 新增用戶時,應在IdP中將其加入到已經配置了SSO訪問的用戶組。
- 刪除用戶時,可以直接刪除即可,IdP通常會自動移除其訪問權限。
- 用戶權限發生修改時,應修改其用戶組配置。
訪問控制
阿里云實現了基于屬性的訪問控制(Attribute Based Access Control, ABAC),這是一種權限描述能力強,可感知訪問上下文以進行精細權限管理的先進訪問控制機制。當客戶請求到達阿里云時,阿里云將評估當前訪問的請求特征、身份特征、資源特征,并與身份所配置的權限進行匹配,從而完成鑒權。每個云產品支持的身份和訪問控制粒度可以參見支持RAM的云服務和支持STS的云服務。
針對大部分人員用戶來說,可以根據其職責進行較粗粒度的權限劃分即可,一個企業通常針對如下幾種角色進行權限設計:
- 全局云管理員:擁有企業在阿里云上資源的全部權限。
- 網絡管理員:擁有對各類網絡產品的管理權限。
- 數據庫管理員:擁有對各類云上數據庫的管理權限。
- 監控管理員:擁有云監控、應用實時監控等服務的管理權限。
- 安全管理員:擁有全部安全產品的管理權限。
- 合規管理員:擁有合規相關產品的管理權限。
- 日志管理員:擁有日志服務的管理權限。
- 日志查看者:擁有讀取日志的權限。
- 應用管理員:只擁有某個應用所對應的資源權限。
- 普通用戶:不具備任何云上資源訪問權限,只在必要時進行單個權限點授權。
同時,還需要根據人員訪問條件進行限制:
- 所有人員必須在企業內網訪問云資源(使用IP限制策略)。
- 對于臨時身份,同一種應用場景可以只使用一個RAM角色,但針對每個會話授予單個資源、具有訪問時間限制的權限,以確保權限最小化。