ACL
更新時間 2024-03-29 13:23:41
最近更新時間: 2024-03-29 13:23:41
分享文章
本章節介紹媒體存儲-對象存儲的ACL。
訪問控制列表(AccessControlList,ACL)可以作用于桶和對象。每個桶和對象都有一個默認的ACL,ACL定義了用戶或用戶組對資源具有何種類型的訪問權限。
使用ACL進行訪問控制有如下限制:
- 桶和對象的所有者默認具有對該資源的完整權限,且無法刪除和修改。
- 匿名用戶無法成為資源的所有者,此時對象資源的所有者為存儲空間的所有者。
- 每個資源的ACL最多可以設置100條授權信息。
ACL使用場景
桶ACL使用場景
- 當其他賬號需要對桶進行讀寫時,可以使用桶ACL,將讀寫權限開放給該用戶,該用戶就可以通過XstorBrowser、API&SDK等方式訪問到該桶。
對象ACL使用場景
- 當其他賬號需要訪問某個單獨的對象時,桶策略就無法適用了,而對象ACL可以將該對象的權限授權給其他用戶。
- 當需要使用對象鏈接直接訪問對象時。一般使用對象ACL,通過對象鏈接的方式開放給所有用戶進行讀取操作。需要注意的是,修改對象權限后,需刪除歷史鏈接或重新獲取鏈接地址,否則過期的鏈接會導致無法正常訪問資源。
ACL權限類型
媒體存儲支持的ACL權限類型如下表:
| 權限類型 | 作用于桶 | 作用于對象 |
|---|---|---|
| READ | 允許列出存儲桶中的對象 | 允許讀取對象數據和元數據 |
| WRITE | 允許創建、覆蓋、刪除存儲桶中的對象 | 無作用 |
| READ_ACP | 允許獲取存儲桶的ACL信息 | 允許獲取對象的ACL信息 |
| WRITE_ACP | 允許修改存儲桶的ACL | 允許修改對象的ACL |
| FULL_CONTROL | 獲得READ、WRITE、READ_ACP、WRITE_ACP權限 | 獲得READ、READ_ACP、WRITE_ACP權限 |
桶ACL權限
| 權限 | 選項 | 描述 |
|---|---|---|
| 公共權限 | 私有 | 只有主賬號或被授權者可以訪問該桶,其他用戶沒有權限訪問該桶 |
| 公共權限 | 公共讀 | 其他用戶(包括匿名訪問者)都可以對桶進行訪問 |
| 公共權限 | 公共讀寫 | 其他用戶(包括匿名訪問者)都可以對桶進行讀取、對象寫入和對象刪除操作 |
| 用戶權限 | 數據讀取 | 授權用戶可以讀取該桶 |
| 用戶權限 | 數據寫入 | 授權用戶可以對該桶進行對象寫入和對象刪除操作 |
| 用戶權限 | 權限讀取 | 授權用戶可以讀取該桶的ACL權限配置信息 |
| 用戶權限 | 權限寫入 | 授權用戶可以修改該桶的ACL權限配置策略 |
| 用戶權限 | 完全控制 | 授權用戶擁有該桶的全部權限 |
對象ACL權限
| 權限 | 選項 | 描述 |
|---|---|---|
| 公共權限 | 私有 | 只有主賬號或被授權者擁有該對象的讀寫權限,其他用戶沒有權限操作該對象 |
| 公共權限 | 公共讀 | 其他用戶(包括匿名訪問者)都可以對對象進行訪問 |
| 用戶權限 | 數據讀取 | 授權用戶可以讀取該對象 |
| 用戶權限 | 數據寫入 | 無作用 |
| 用戶權限 | 權限讀取 | 授權用戶可以讀取該對象的ACL權限配置信息 |
| 用戶權限 | 權限寫入 | 授權用戶可以修改該對象的ACL權限配置信息 |
| 用戶權限 | 完全控制 | 授權用戶擁有該對象的全部權限 |
預設ACL
用戶通過接口對天翼云媒體存儲進行操作的時候,可以通過預設ACL來快捷地進行權限管理。
例如,在創建桶和上傳對象的時候,在請求頭部中的X-Amz-Acl字段中描述預設的ACL。預設ACL可參考下表。
| 預設ACL | 作用資源 | 描述 |
|---|---|---|
| private | 桶、對象 | 資源的默認權限,資源的所有者擁有FULL_CONTROL權限,其他用戶對該資源不具有任何權限。 |
| public-read | 桶、對象 | 資源的所有者擁有FULL_CONTROL權限,AllUsers用戶組的用戶(匿名用戶)具有READ權限。 |
| public-read-write | 桶、對象 | 資源的所有者擁有FULL_CONTROL權限,AllUsers用戶組的用戶(匿名用戶)具有READ和WRITE權限。 |
| bucket-owner-full-control | 桶、對象 | 資源的所有者和存儲桶的所有者擁有FULL_CONTROL權限。 |
| authenticated-read | 桶、對象 | 資源的所有者擁有FULL_CONTROL權限,同一資源池的用戶具有READ權限。 |
| bucket-owner-read | 桶、對象 | 資源的所有者擁有FULL_CONTROL權限,存儲桶的所有者具有READ權限。 |
ACL參數說明
ACL使用XML格式的數據管理。參數包括:
| 參數 | 是否必填 | 參數類型 | 說明 | 示例 | 下級對象 |
|---|---|---|---|---|---|
| AccessControlPolicy | 是 | Container | 配置權限策略的容器 | AccessControlList,Owner | |
| AccessControlList | 是 | Container | 包含ACL 信息的容器 | Grant | |
| Owner | 是 | Container | 包含存儲桶擁有者ID 和顯示名的容器 | ID,DisplayName | |
| ID | 是 | String | 存儲桶擁有者的ID | testuser1 | |
| DisplayName | 是 | String | testuser1 | ||
| Grant | 否 | Container | 一個關于被授予許可的用戶的容器 | Grantee,Permission | |
| Grantee | 有條件,如果Grant項存在,那么該項也需要存在 | Container | 一個關于被授予許可的用戶的ID 和顯示名的容器 | ID,DisplayName,URI | |
| URI | 否 | String | 授權組的URI | ||
| Permission | 有條件,如果Grant項存在,那么該項也需要存在 | String | 存儲桶被授予的權限 | FULL_CONTROL |
ACL設置方式
設置桶ACL的設置方式如下:
| 操作途徑 | 使用方式 |
|---|---|
| 控制臺 | 可參考:權限管理-存儲桶ACL權限。 |
| XstorBrowser | 可參考:配置桶ACL權限。 |
| SDK | 請從SDK概覽頁面選擇進入對應的開發指南查閱。 |
設置對象ACL的設置方式如下:
| 操作途徑 | 使用方式 |
|---|---|
| 控制臺 | 上傳對象是設置對象訪問權限可參考:上傳對象。 更改對象訪問權限可參考:管理對象。 |
| XstorBrowser | 可參考:編輯對象ACL。 |
| SDK | 請從SDK概覽頁面選擇進入對應的開發指南查閱。 |