由多賬号上雲模式說起
多賬号上雲模式的産生
我們的企業客戶上雲,一般都是從嘗試部署少量業務開始,然後逐漸将更多業務采用雲上架構。随着企業上雲的進一步深入,越來越多的企業業務被放在了雲端,這使得企業采購的雲資源迅速增多,資源、項目、人員、權限的管理變得極其複雜,僅僅使用一個賬号,使得問題被放大,很難得到有效解決。單賬号負載過重已無力支撐,許多企業開始建立更多賬号以分散業務壓力。于是,許多企業選擇使用了更多賬号,對應其不同的業務。是以,從賬号的使用方面看,企業使用的賬号數量逐漸增多,多賬号上雲模式逐漸成為多業務上雲的重要選項。
多賬号模式的優勢
諸多企業選擇采用多賬号模式上雲,也是由于多賬号相對單賬号而言,有着不可替代的優勢。
- 使用多賬号的邏輯強隔離,實作企業不同業務應用間的互相獨立
賬号與賬号之間預設是隔離的。這将避免不同業務間發生依賴項沖突或資源争用,甚至可以支援為每個業務設定明确的資源限制。
- 利用多賬号分散風險,最大程度提升資源安全邊界,盡可能将危害降到最低
消除安全“核按鈕”。當非法使用者竊取到一個高權限時,“爆炸半徑”被限定到單個賬号内,而不影響企業所有業務。
- 輕松應對大型企業多分公司關系,支援多種法律實體、多種結算模式共存
每個賬号都可對應唯一一個法律主體,多賬号環境天然支援集團企業的多分公司主體、以及不同業務的不同結算模式。
- 多賬号易于結構化管理,業務的拆分和融合變得簡單
業務過多導緻“臃腫”不利于管理,業務間也非扁平形态,存在業務關聯的“組織性”要求,單個賬号很難解決,多賬号卻易于實作;同時,借助賬号的獨立性,它們可輕松地拆分或融合于不同的管控域,與企業業務适配關聯。
多賬号架構的挑戰
多賬号的采用,如果不去有序的管理它,也會有很多麻煩。
比如,賬号散落沒有集中、沒有結構化,就無法做到組織化管理。再比如,上層管理者如何能夠一眼全局、如何能夠集中管控,都是影響企業業務效率的問題,需要解決。
無序管理的多賬号一盤散沙,有序管理是企業多賬号模式促進生産效率的第一要務。
從多賬号組織化問題看,阿裡雲的資源目錄産品,可以很好地解決多賬号有序管理問題。這是資源目錄的基礎能力之一。
資源目錄是阿裡雲面向企業客戶,提供的基于多賬号的管理與治理服務。
詳細了解資源目錄大家可以看到,上圖中,利用資源目錄的組織能力,企業可以很快的建構屬于自己的業務架構,将企業多賬号按照業務關系聚合,形成結構化易管理的形态,并提供閉環的企業雲資源管理服務,以此來适配業務的管理需要。
多賬号模式下的權限管控問題
阿裡雲諸多大客戶對于企業TopDown管控越來越重視。
随着客戶業務的大量上雲,員工(user)被密集且複雜的授予各種資源、服務的權限以運作這些業務,企業管理端很難非常細緻地考量每個業務的具體授權,但希望能夠從頂層做出企業的全局管控,即制定企業“大規範”以限定使用者權限邊界,以免超出公司的合規範圍。
如何能夠簡單高效的解決這個問題?以下是資源目錄管控政策産品設計的初衷。
管控政策産品定義與實作
管控政策(Control Policy,下文簡稱CP) 是一種基于資源結構(資源目錄中的組織單元或成員賬号)的通路控制政策,可以統一管理資源目錄各層級内資源通路的權限邊界,建立企業整體通路控制原則或局部專用原則。管控政策隻定義權限邊界,并不真正授予權限,您還需要在某個成員賬号中使用通路控制(RAM)設定權限後,相應身份才具備對資源的通路權限。
從企業上雲的角度看,管控政策的實施對象是企業使用者對所需雲資源的操作行為。從企業使用者訂購雲資源、配置和使用雲資源、最後到銷毀雲資源,管控政策可以對企業使用者操作雲資源的整個生命周期行為作出預設的前置校驗,阻止不符合預設規則的操作發生,最終達到規範企業使用者對雲資源使用行為的目的。
管控政策的實作機制
在鑒權引擎中增加管控政策校驗
管控政策(CP)是如何實作權限管控效果的呢?
上圖所示為使用者通路資源請求的鑒權流程。管控政策在鑒權引擎中增加前置校驗邏輯,在正式鑒權之前就對操作發生的邊界進行判定:對于Explicit Deny(顯式拒絕)或Implicit Deny(隐式拒絕),将直接做出「拒絕」結果,僅當管控政策的判定結果是Allow(允許)時,鑒權引擎才會進行下一步判定。您可以
詳細了解權限判定流程基于資源目錄實作從上至下的管控
當企業建立了一個資源目錄,并為每個部門建立了成員賬号後,如果對各成員賬号的行為不加以管控,就會破壞運維規則,帶來安全風險和成本浪費。利用資源目錄-管控政策功能,企業可以通過企業管理賬号集中制定管理規則,并将這些管理規則應用于資源目錄的各級組織結構(資源夾、成員賬号)上,管控各成員賬号内資源的通路規則,確定安全合規和成本可控。例如:禁止成員賬号申請域名,禁止成員賬号删除日志記錄等。
當成員賬号中的RAM使用者或角色通路阿裡雲服務時,阿裡雲将會先進行管控政策檢查,再進行賬号内的RAM權限檢查。具體如下:
- 管控政策鑒權從被通路資源所在賬号開始,沿着資源目錄層級逐級向上進行。
- 在任一層級進行管控政策鑒權時,命中拒絕(Deny)政策時都可以直接判定結果為拒絕(Explicit Deny),結束整個管控政策鑒權流程,并且不再進行賬号内基于RAM權限政策的鑒權,直接拒絕請求。
- 在任一層級進行管控政策鑒權時,如果既未命中拒絕(Deny)政策,也未命中允許(Allow)政策,同樣直接判定結果為拒絕(Explicit Deny),不再進入下一個層級鑒權,結束整個管控政策鑒權流程,并且不再進行賬号内基于RAM權限政策的鑒權,直接拒絕請求。
- 在某一層級鑒權中,如果未命中拒絕(Deny)政策,而命中了允許(Allow)政策,則本層級鑒權通過,繼續在父節點上進行管控政策鑒權,直至Root資源夾為止。如果Root資源夾鑒權結果也為通過,則整個管控政策鑒權通過,接下來進入賬号内基于RAM權限政策的鑒權,詳情請參見 權限政策判定流程 。
管控政策的用法說明
管控政策的語言
CP使用與RAM基本相同的文法結構。您可以
詳細了解權限政策文法和結構CP文法結構中包含版本号和授權語句清單,每條授權語句包括授權效力(Effect)、操作(Action)、資源(Resource)以及限制條件(Condition,可選項)。其中CP較RAM的Condition支援上,多了一種條件Key:acs:PrincipalARN,實作對執行者身份(目前支援Role)的條件檢查,主要應用場景為下文中提到的「避免指定雲服務通路被管控」。您可以
了解更多CP語言的使用方法管控政策的影響效果
您可以将自定義CP綁定到資源目錄的任意節點,包含任何一個資源夾或成員賬号。CP具備基于資源目錄樹形結構從上向下繼承的特點,例如:為父資源夾設定管控政策A,為子資源夾設定管控政策B,則管控政策A和管控政策B都會在子資源夾及其下的成員賬号中生效。
- CP僅影響資源目錄内的成員賬号下的資源通路。它對資源目錄企業管理賬号(MA)下的資源通路不會産生影響,因為MA并不屬于RD;
- CP僅影響成員賬号内的RAM使用者和角色通路,不能管控賬号的根使用者(Root user)通路。我們建議您在資源目錄内使用資源賬号類型成員,這一成員類型禁用了根使用者;關于 資源目錄成員類型 ,請參見文檔
- CP基于資源的通路生效。無論是資源目錄内的使用者,還是外部使用者,通路資源目錄内的資源時,都會受到CP的管控;例如,您對資源目錄内的A賬号綁定了一個CP,同樣适用于在資源目錄外部的B賬号内的使用者通路A賬号内的資源時的管控
- CP同樣影響基于資源的授權政策。例如,在資源目錄内的A賬号中OSS bucket上授予資源目錄外部的B賬号内的使用者通路,此通路行為同樣受到綁定在A賬号的CP影響
- CP對服務關聯角色(Service Linked Role)不生效。關于服務關聯角色的詳情,請參見 服務關聯角色
避免指定雲服務通路被管控
管控政策将對被管控成員賬号中的資源通路權限限定邊界,邊界之外的權限将不允許生效,此限定同樣影響阿裡雲服務對該成員賬号通路的有效性。
阿裡雲服務可能使用服務角色(Service Role)通路您賬号中的資源,以實作雲服務的某些功能。當一個服務角色的權限超過管控政策的邊界時,此權限會受到管控政策的限制,這可能導緻雲服務的某些功能不能正常使用。如果這正是您配置管控政策期望的結果,則無需進行其他額外操作,但是,如果您不希望這些雲服務被管控,您可以采用以下方法進行處理:
- 确認您不希望被管控的雲服務所使用的服務角色名稱。您可以登入 RAM控制台 ,檢視賬号下的所有服務角色。
- 在造成管控效果的管控政策中增加Condition key: "acs:PrincipalArn"的條件,将受影響的雲服務所使用的服務角色名稱寫入到PrincipalArn字段,以避免該服務角色被誤管控。示例如下:
{
"Statement": [
{
"Action": [
"ram:UpdateUser"
],
"Resource": "*",
"Effect": "Deny",
"Condition": {
"StringNotLike": {
"acs:PrincipalARN":"acs:ram:*:*:role/<服務角色名稱>"
}
}
}
],
"Version": "1"
}
管控政策使用限制與參考
阿裡雲資源目錄-管控政策目前已支援對152款雲産品,您可以檢視
支援管控政策的雲服務管控政策的使用限制如下:
- 資源目錄内最多允許建立自定義管控政策的數量為1500個;
- 每個節點(資源夾、成員賬号)最多允許綁定自定義管控政策的數量為10個;
- 每個自定義政策的最大長度2048個字元。
我們建議您先進行局部小範圍測試,確定政策的有效性與預期一緻,然後再綁定到全部目标節點(資源夾、成員賬号)。
您在編寫自定義管控政策時,可參考
自定義管控政策示例