上一篇
我們介紹了OBS權限管理中統一身份認證和企業項目管理,本期我們繼續介紹OBS權限管理中的高級桶策略和ACL應用。
您是否也遇到過類似的問題或者困擾?
1、隔壁的主賬戶給了子用戶創建一個桶,但是沒有給他設置桶策略,子賬戶訪問報403,困惑了一整天。
2、樓下是另外一個子賬號,為了OBS 控制台報無權限訪問,百思不得其解。
3、對面一個子賬戶上傳了一個文件,抓破頭也無法分享給其他人。
這些問題或者困擾各不相同,下面將分別介紹高級桶策略和ACL應用來解答這些問題和困惑。
高級桶策略介紹:
桶策略是作用於配置桶策略的單個桶的。同時也提供代碼模式配置方法,高級桶策略代碼最多不能超過20KB。
桶策略參數:

(1)Effect,桶策略效果;指定本條策略描述的權限是允許請求還是拒絕請求。
(2)Action,桶策略動作;指定本條策略可以執行的操作。
(3)Condition,策略生效必須滿足的條件,詳情參考
(4)Resource,資源;資源指桶或對象。您可以指定一個對象或對象集,當指定給對象集時,使用通配符(*),例如:file*。如果不輸入,則表示指定資源為桶,且在動作處只能選擇與桶相關的。多個資源使用英文逗號分隔。
(5)Principal,桶策略被授權用戶。
“domain/賬號ID”(表示被授權用戶為xxx賬號)。
“domain/賬號ID:user/用戶ID”(表示被授權用戶為xxx賬號下的xxx用戶)

控制台:

對應代碼模式:

應用案例:
-
配置賬號B的一個桶,允許賬號A下的a租戶只有上傳權限,配置如下。其中xxx是需要需要注意的關鍵配置點。


2、匿名訪問

高級桶策略與IAM授權對比
-
IAM的OBS細粒度權限直接授權給IAM用戶組,而OBS桶的自身細粒度規則目標只能是一個或者多個IAM用戶,對於多用戶場景創建和維護的效率較低,如下圖所示。

-
IAM的OBS細粒度權限可以包含60個Bucket+Object動作規則,而OBS桶自身的細粒度策略中,支持的Bucket+Object動作規則只有34個,如下圖所示。這也就意味着IAM的OBS細粒度權限精細度更高。


-
IAM的OBS細粒度權限還可以支持“列舉所有桶”操作的權限控制,這樣的全局性操作控制在OBS桶的自身高級策略中是無法實現的。

-
OBS桶的自定義桶策略,設定的Bucket訪問權限只能針對該桶自己;而一條IAM的OBS細粒度權限則可以同時適配多個目標OBS桶。

-
OBS桶的自定義桶策略,只能控制IAM用戶的OBS訪問權限,而不能控制其他雲服務對OBS資源的訪問權限的。IAM的OBS細粒度權限則可以通過委托授權來控制其他雲服務對於OBS資源的訪問權限。
-
不論是IAM的OBS細粒度權限控制,還是OBS桶自定義的高級桶策略中,桶的訪問控制與對象的訪問控制是分開定義的,在華為雲的OBS服務中,桶的訪問控制規則 與 對象的訪問控制規則 是分開定義的,當前無法通過一條策略將桶本身和桶內對象都共享出去。
如下所示為OBS桶的自定義高級桶策略:


如下所示為IAM的OBS細粒度權限定義,也需要同時包含桶和對象兩條規則

ACL介紹:
基於賬號的訪問控制。有一個很恰當的比喻:桶owner相當於房東,房東將桶出租給房客(子賬戶),子賬戶可以將貴重物品放到自己的房間里,但是房東沒有權利去查看。房客可以給房東鑰匙(設置對象ACL)賦予房東權限,使其有訪問權限。
應用案例:
步驟1.賬號A上傳,主賬號無權限下載


步驟2.可通過SDK,配置指定主賬號具有對象下載權限;
上傳者使用Java SDK配置指定賬號權限。

這樣對象的上傳者,就可以將對象的權限賦予給桶owner。
OBS權限的四種方式隨心配,讓你輕松掌握權限配置管理。OBS權限管理在助力解決不同應用場景下的數據管理訴求下,為用戶帶來穩定、安全、高效的雲端存儲體驗。
