概述
更新時間 2023-12-07 21:27:30
最近更新時間: 2023-12-07 21:27:30
分享文章
本章節介紹媒體存儲訪問權限概述。
天翼云媒體存儲的訪問控制可以管理訪問權限,訪問權限描述的是網絡用戶(包括天翼云用戶和匿名用戶)對存儲資源可以進行哪些具體操作,因此一個訪問權限可以表示成三個必要的組成元素:身份、資源、操作。
訪問權限的元素
構成訪問權限的三個元素,包括:身份、資源、操作。
訪問權限的元素說明如下:
| 元素 | 說明 |
|---|---|
| 身份 | 用戶注冊天翼云賬號的時候,系統會創建一個用于登陸天翼云服務的賬號身份。而沒有賬號的互聯網用戶,我們稱之為匿名用戶。 |
| 資源 | 天翼云對象存儲的基本資源包括存儲桶(Bucket)和對象(Object),它們有與之相關的子資源。 存儲桶的子資源包括:生命周期配置信息、靜態網站托管配置信息、版本控制配置信息、訪問控制信息、桶標簽信息、跨域資源共享配置信息。 對象的子資源包括:對象的訪問控制信息。 |
| 操作 | 天翼云媒體存儲的操作分為存儲桶操作和對象操作。 |
訪問控制的類型
天翼云媒體存儲中的各種資源的權限默認為私有,即只有資源的所有者可以訪問。資源所有者可以通過桶策略、桶ACL和對象ACL等方式授予其他用戶資源的訪問權限。

各個訪問控制方式說明如下:
| 方式 | 說明 | 應用場景 |
|---|---|---|
| 桶策略 | 作用于桶及桶內對象。通過設置桶策略,可以授權給不同類型或不同標識的用戶操作桶及桶內對象的訪問權限。 | 當需要允許其他天翼云用戶(或匿名用戶)對該桶進行訪問控制時,可以使用桶策略的方式授權相應的讀寫權限。 當不同的用戶需要對桶有不同的訪問控制需求時,可以使用桶策略,分別授權給用戶不同的訪問權限。 |
| 桶ACL | 作用于桶,通過桶ACL可為用戶授權桶及桶內對象的基本讀寫權限。 | 當其他賬號需要對桶進行讀寫時,可以使用桶ACL,將讀寫權限開放給該用戶,該用戶就可以通過XstorBrowser、API&SDK等方式訪問到該桶。 |
| 對象ACL | 作用于具體對象,通過對象ACL可為用戶授權具體對象的基本讀寫權限。 | 當其他天翼云用戶(或匿名用戶)需要訪問某個單獨的對象時,桶策略就無法適用了,而對象ACL可以將該對象的權限授權給其他用戶。 當需要使用網絡鏈接直接訪問對象時。一般使用對象ACL,通過鏈接的方式開放給所有用戶進行讀取操作。 需要注意的是,修改對象ACL后,需刪除歷史鏈接或重新獲取鏈接地址,否則過期的鏈接會導致無法正常訪問資源。 |
基于策略的訪問控制
訪問策略僅作用于存儲桶,桶策略(Bucket Policy)使用JSON格式的數據管理指定用戶對天翼云媒體存儲資源可執行的操作。
訪問控制策略的元素
一條訪問控制策略包含的基本元素說明如下表:
| 元素 | 說明 |
|---|---|
| 版本(Version) | 描述訪問控制策略的版本信息,當前版本只能是"2012-10-17"。 |
| 語句(Statement) | 描述一項或多項賦權的詳細信息。 |
| 效力(Effect) | 描述語句中權限產生的結果是允許還是禁止,只能是"allow"或"deny"兩種情況。效力屬于必填項。 |
| 操作(Action) | 描述語句中賦予的權限,必填項。 |
| 委托人(Principal) | 描述策略賦權的實體,例如用戶、用戶組等。 |
| 資源(Resource) | 描述策略授權的具體資源。資源屬于必填項。 資源采用六段式描述,段與段之間使用冒號分隔。 |
| 條件(Condition) | 描述策略生效的約束條件,非必填項。 |
更多關于桶策略的介紹可參考桶策略。
基于ACL的訪問控制
訪問控制列表(AccessControlList,ACL)可以作用于存儲桶和對象,桶ACL(Bucket ACL)和對象ACL(Object ACL)使用XML語言描述。
作為存儲桶的和對象的子資源,每個存儲桶和對象都有一個默認的ACL,ACL定義了用戶或用戶組對資源具有何種類型的訪問權限。
使用ACL進行訪問控制有如下限制:
- 桶和對象的所有者默認具有對該資源的完整權限,且無法刪除和修改。
- 匿名用戶無法成為資源的所有者,此時對象資源的所有者為存儲桶的所有者。
- 每個資源的ACL最多可以設置100條授權信息。
更多關于ACL的介紹可參考:ACL。
桶策略和ACL的關系
桶ACL可以授權用戶對桶及桶內對象進行讀寫和權限控制操作,而桶策略可以授權用戶操作桶的更多高級設置。
對象ACL則是授權用戶對桶內對象進行具體的讀寫操作。
如何選擇?
- 以下情況推薦使用桶策略:
- 不同的用戶需要使用不同的權限時。
- 用戶需要使用桶的高級配置功能時。
- 以下情況推薦使用ACL:
- 需要對單獨對象進行額外的授權時。
- 需要開放某個對象給所有匿名用戶訪問時。
- 僅對桶或對象需要基礎的讀寫權限時。
映射關系
桶ACL用于桶基本的讀寫權限設置,而桶策略用于授權更精細化的訪問權限,包括資源與動作。桶ACL是基本的桶策略,可以被桶策略替代管理桶的訪問權限。
桶策略動作的映射關系如下表:
| ACL權限 | 選項 | 對應桶策略高級設置中的動作 |
|---|---|---|
| 桶訪問權限 | 讀取權限 | HeadBucket ListBucket ListBucketVersions ListBucketMultipartUploads |
| 桶訪問權限 | 寫入權限 | PutObject DeleteObject DeleteObjectVersion |
| ACL訪問權限 | 讀取權限 | GetBucketAcl |
| ACL訪問權限 | 寫入權限 | PutBucketAcl |
對象ACL和桶策略的映射關系如下表:
| 對象ACL權限 | 選項 | 對應桶策略高級設置中的動作 |
|---|---|---|
| 對象訪問權限 | 讀取權限 | GetObject GetObjectVersion |
| ACL訪問權限 | 讀取權限 | GetObjectAcl GetObjectVersionAcl |
| ACL訪問權限 | 寫入權限 | PutObjectAcl PutObjectVersionAcl |
相關概念
- 賬號/天翼云用戶:指開通了天翼云的用戶,該用戶擁有對其資源的完全控制權限。
- 匿名用戶:指未開通天翼云的用戶或來自互聯網的所有訪客。