雲計算

使用管控策略,設定多賬號組織全局訪問邊界

由多賬號上雲模式說起

多賬號上雲模式的產生

我們的企業客戶上雲,一般都是從嘗試部署少量業務開始,然後逐步將更多業務採用雲上架構。隨著企業上雲的進一步深入,越來越多的企業業務被放在了雲端,這使得企業採購的雲資源迅速增多,資源、項目、人員、權限的管理變得極其複雜,僅僅使用一個賬號,使得問題被放大,很難得到有效解決。單賬號負載過重已無力支撐,許多企業開始創建更多賬號以分散業務壓力。於是,許多企業選擇使用了更多賬號,對應其不同的業務。因此,從賬號的使用方面看,企業使用的賬號數量逐步增多,多賬號上雲模式逐漸成為多業務上雲的重要選項。

image

多賬號模式的優勢

諸多企業選擇採用多賬號模式上雲,也是由於多賬號相對單賬號而言,有著不可替代的優勢。

image

  • 使用多賬號的邏輯強隔離,實現企業不同業務應用間的相互獨立

賬號與賬號之間默認是隔離的。這將避免不同業務間發生依賴項衝突或資源爭用,甚至可以支持為每個業務設置明確的資源限制。

  • 利用多賬號分散風險,最大程度提升資源安全邊界,儘可能將危害降到最低

消除安全“核按鈕”。當非法用戶竊取到一個高權限時,“爆炸半徑”被限定到單個賬號內,而不影響企業所有業務。

  • 輕鬆應對大型企業多分公司關係,支持多種法律實體、多種結算模式共存

每個賬號都可對應唯一一個法律主體,多賬號環境天然支持集團企業的多分公司主體、以及不同業務的不同結算模式。

  • 多賬號易於結構化管理,業務的拆分和融合變得簡單

業務過多導致“臃腫”不利於管理,業務間也非扁平形態,存在業務關聯的“組織性”要求,單個賬號很難解決,多賬號卻易於實現;同時,藉助賬號的獨立性,它們可輕鬆地拆分或融合於不同的管控域,與企業業務適配聯動。

多賬號架構的挑戰

多賬號的採用,如果不去有序的管理它,也會有很多麻煩。

比如,賬號散落沒有集中、沒有結構化,就無法做到組織化管理。再比如,上層管理者如何能夠一眼全局、如何能夠集中管控,都是影響企業業務效率的問題,需要解決。

image

無序管理的多賬號一盤散沙,有序管理是企業多賬號模式促進生產效率的第一要務。

從多賬號組織化問題看,阿里雲的資源目錄產品,可以很好地解決多賬號有序管理問題。這是資源目錄的基礎能力之一。

資源目錄是阿里雲面向企業客戶,提供的基於多賬號的管理與治理服務。詳細瞭解資源目錄

image

大家可以看到,上圖中,利用資源目錄的組織能力,企業可以很快的構建屬於自己的業務架構,將企業多賬號按照業務關係聚合,形成結構化易管理的形態,並提供閉環的企業雲資源管理服務,以此來適配業務的管理需要。

多賬號模式下的權限管控問題

image

阿里雲諸多大客戶對於企業TopDown管控越來越重視。

隨著客戶業務的大量上雲,員工(user)被密集且複雜的授予各種資源、服務的權限以運作這些業務,企業管理端很難非常細緻地考量每個業務的具體授權,但希望能夠從頂層做出企業的全局管控,即制定企業“大規範”以限定用戶權限邊界,以免超出公司的合規範圍。

如何能夠簡單高效的解決這個問題?以下是資源目錄管控策略產品設計的初衷。

管控策略產品定義與實現

管控策略(Control Policy,下文簡稱CP) 是一種基於資源結構(資源目錄中的組織單元或成員賬號)的訪問控制策略,可以統一管理資源目錄各層級內資源訪問的權限邊界,建立企業整體訪問控制原則或局部專用原則。管控策略只定義權限邊界,並不真正授予權限,您還需要在某個成員賬號中使用訪問控制(RAM)設置權限後,相應身份才具備對資源的訪問權限。

從企業上雲的角度看,管控策略的實施對象是企業用戶對所需雲資源的操作行為。從企業用戶訂購雲資源、配置和使用雲資源、最後到銷燬雲資源,管控策略可以對企業用戶操作雲資源的整個生命週期行為作出預設的前置校驗,阻止不符合預設規則的操作發生,最終達到規範企業用戶對雲資源使用行為的目的。

管控策略的實現機制

在鑑權引擎中增加管控策略校驗

imageimage

管控策略(CP)是如何實現權限管控效果的呢?

上圖所示為用戶訪問資源請求的鑑權流程。管控策略在鑑權引擎中增加前置校驗邏輯,在正式鑑權之前就對操作發生的邊界進行判定:對於Explicit Deny(顯式拒絕)或Implicit Deny(隱式拒絕),將直接做出「拒絕」結果,僅當管控策略的判定結果是Allow(允許)時,鑑權引擎才會進行下一步判定。您可以詳細瞭解權限判定流程

基於資源目錄實現從上至下的管控

image

當企業創建了一個資源目錄,併為每個部門創建了成員賬號後,如果對各成員賬號的行為不加以管控,就會破壞運維規則,帶來安全風險和成本浪費。利用資源目錄-管控策略功能,企業可以通過企業管理賬號集中制定管理規則,並將這些管理規則應用於資源目錄的各級組織結構(資源夾、成員賬號)上,管控各成員賬號內資源的訪問規則,確保安全合規和成本可控。例如:禁止成員賬號申請域名,禁止成員賬號刪除日誌記錄等。

當成員賬號中的RAM用戶或角色訪問阿里雲服務時,阿里雲將會先進行管控策略檢查,再進行賬號內的RAM權限檢查。具體如下:

  • 管控策略鑑權從被訪問資源所在賬號開始,沿著資源目錄層級逐級向上進行。
  • 在任一層級進行管控策略鑑權時,命中拒絕(Deny)策略時都可以直接判定結果為拒絕(Explicit Deny),結束整個管控策略鑑權流程,並且不再進行賬號內基於RAM權限策略的鑑權,直接拒絕請求。
  • 在任一層級進行管控策略鑑權時,如果既未命中拒絕(Deny)策略,也未命中允許(Allow)策略,同樣直接判定結果為拒絕(Explicit Deny),不再進入下一個層級鑑權,結束整個管控策略鑑權流程,並且不再進行賬號內基於RAM權限策略的鑑權,直接拒絕請求。
  • 在某一層級鑑權中,如果未命中拒絕(Deny)策略,而命中了允許(Allow)策略,則本層級鑑權通過,繼續在父節點上進行管控策略鑑權,直至Root資源夾為止。如果Root資源夾鑑權結果也為通過,則整個管控策略鑑權通過,接下來進入賬號內基於RAM權限策略的鑑權,詳情請參見權限策略判定流程

管控策略的用法說明

管控策略的語言

CP使用與RAM基本相同的語法結構。您可以詳細瞭解權限策略語法和結構

image

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)訪問您賬號中的資源,以實現雲服務的某些功能。當一個服務角色的權限超過管控策略的邊界時,此權限會受到管控策略的約束,這可能導致雲服務的某些功能不能正常使用。如果這正是您配置管控策略期望的結果,則無需進行其他額外操作,但是,如果您不希望這些雲服務被管控,您可以採用以下方法進行處理:

  1. 確認您不希望被管控的雲服務所使用的服務角色名稱。您可以登錄RAM控制檯,查看賬號下的所有服務角色。
  2. 在造成管控效果的管控策略中增加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個字符。

我們建議您先進行局部小範圍測試,確保策略的有效性與預期一致,然後再綁定到全部目標節點(資源夾、成員賬號)。

您在編寫自定義管控策略時,可參考自定義管控策略示例

Leave a Reply

Your email address will not be published. Required fields are marked *