桶(tong)策(ce)(ce)略(lve)是一種用(yong)于控制桶(tong)訪問權(quan)限的策(ce)(ce)略(lve),允許桶(tong)的所有者授予其他用(yong)戶特定權(quan)限。通過桶(tong)策(ce)(ce)略(lve),所有者可以靈(ling)活地(di)定義和管理桶(tong)的訪問權(quan)限。
約束與限制
桶策略(基礎版)和桶策略(進階版)支持的區域請參見產品能力地圖,可(ke)根據需要選擇其中(zhong)一種,通過(guo)提工單(dan)申請(qing)權限(xian)。
桶策略(基礎版)操作步驟
- 點擊天翼云門戶首頁的“控制中心”,輸入登錄的用戶名和密碼,進入控制中心頁面。
- 在控制臺上方點擊

,選擇地域,以下操作選擇華東-華東1。 - 在控制臺首頁,選擇“存儲>對象存儲”。
- 在ZOS控制臺,單擊Bucket名稱進入“概覽”頁面。
- 選擇“權限管理”頁面,找到“桶策略”,點擊“設置”按鈕。


- 在“桶策略”設置頁面,點擊“創建策略”,根據提示完成參數設置。

| 參數 | 說明 |
|---|---|
| 授權賬號類型 | 默認為用戶郵箱。 |
| 授權賬號 | 僅能輸入一個賬戶。支持通配符( * ),表示對所有注冊用戶和匿名用戶生效,為必選項。 |
| 授權策略 | 只讀權限/讀寫權限/完全控制/拒絕對象訪問/自定義權限,此項為單選且必選,默認只讀權限。選擇“自定義權限”時,需輸入“授權范圍”、“效果”、“授權操作”、“條件”四個內容。 |
| 授權資源 | 輸入桶策略生效的對象或對象集,支持通配符( * )。僅輸入通配符( * )時,表示桶策略對整個桶生效。 |
| 授權范圍 | 選擇“自定義權限”時,需輸入“授權范圍”內容。授權范圍可選擇桶內指定對象或配置到整個桶,為必選項。 |
| 效果 | 選擇“自定義權限”時,需選擇“效果”內容。可選允許或拒絕,為必選項。 |
| 授權操作 | 選擇“自定義權限”時,需選擇“授權操作”內容,為必選項且可多選。 |
| 條件 | 選擇“自定義權限”時,需配置“條件”內容,為非必選項,最多可添加20條。 |
- 配置完成后,點擊“確定”,桶策略創建成功。
桶策略(進階版)操作步驟
1.? 點擊天(tian)翼(yi)云(yun)門戶首頁的“控制中心”,輸(shu)入登錄的用戶名和(he)密碼(ma),進入控制中心頁面。
2.? 在控制臺上方點擊,選擇(ze)地域,以下操作選擇(ze)華東-華東1。
3.? 在控制臺首頁,選擇“存儲(chu)>對象存儲(chu)”。
4.? 在ZOS控(kong)制臺,單擊Bucket名稱進入“概覽”頁面。
5.? 選擇“權限管理”頁面,找到(dao)“桶策(ce)略”,點擊“設置”按鈕
6.? 選擇(ze)可視化視圖配(pei)置(zhi),在“可視化視圖”頁簽(qian)下,點(dian)擊“創建策(ce)略”按鈕,根據提示完成(cheng)參數設置(zhi)。
| 參數 | 說明 |
|---|---|
| 策略名稱 | 支持中英文、特殊字符、空格等。 |
| 效果 | 允許、拒絕,二選一。 允許:指定本條桶策略的權限為接受請求。 拒絕:指定本條桶策略的權限為拒絕請求。 |
| 授權用戶 | 所有賬號:所有賬號包括當前主賬號在內的任何用戶,請謹慎選擇。 子賬號:當前主賬號下的子賬號,可多選。 其他賬號:需要輸入主賬號ID或子賬號ID,可授權給多個賬號,需要分行輸入。 |
| 授權范圍 | 整個桶(包括桶內對象):授權資源為 bucketName、bucketName/,表示整個桶及桶內所有對象。 當前桶:授權資源為bucketName,表示當前桶。 桶內對象:表示桶內指定對象,授權資源為授權資源為bucketName/xxx,根據需要輸入目錄/對象名,例如“folderName/”,*表示所有對象。 |
| 授權策略 | 方式一:模版配置,根據已有策略模板配置,可以快速完成桶策略的配置。 方式二:自定義配置,不使用策略模板,自定義選擇桶策略。 |
| 條件 | 條件是可選參數,用戶可以根據業務需要選擇是否使用。 當條件設置的表達式與訪問請求中的值匹配時,桶策略才生效。 |
說明
授權用戶選擇子賬號,下拉列表默認展示郵箱,若無郵箱展示用戶名。展示的優先順序如下:數字、字母、特殊字符、中文漢字。
主賬(zhang)號(hao)ID和子賬(zhang)號(hao)ID為(wei)用戶ID,可進入(ru)IAM控制(zhi)臺,在“用戶”界面獲取。
方式一:使用模板創建桶策略
ZOS控制臺預置(zhi)了五種(zhong)常用典型場(chang)景的桶策(ce)略模板(ban),授權(quan)策(ce)略時選擇(ze)已有策(ce)略模板(ban)配置(zhi),可以快速完成桶策(ce)略的配置(zhi)。
| 授權范圍 | 授權策略模版 |
|---|---|
| 整個桶(包括桶內對象) | 桶只讀:s3:GetObject,s3:GetObjectAcl,s3:GetObjectVersion,s3:GetObjectVersionAcl,s3:ListBucket,s3:RestoreObject 桶讀寫:s3:GetObject,s3:PutObject,s3:GetObjectAcl,s3:PutObjectAcl,s3:AbortMultipartUpload,s3:ListMultipartUploadParts,s3:GetObjectVersion,s3:GetObjectVersionAcl,s3:ListBucket,s3:RestoreObject 完全控制:s3:* |
| 桶內對象 | 對象只讀:s3:GetObject,s3:GetObjectAcl,s3:GetObjectVersion,s3:GetObjectVersionAcl,s3:RestoreObject 對象讀寫:s3:GetObject,s3:PutObject,s3:GetObjectAcl,s3:PutObjectAcl,s3:AbortMultipartUpload,s3:ListMultipartUploadParts,s3:GetObjectVersion,s3:GetObjectVersionAcl,s3:RestoreObject |
方式二:使用自定義配置創建桶策略
若(ruo)實際業務(wu)場(chang)景(jing)存在(zai)定制化策略配(pei)(pei)置(zhi)需求,可(ke)不選擇(ze)已有的策略模板,在(zai)授權(quan)策略時通(tong)過自定義配(pei)(pei)置(zhi)來選擇(ze)策略。
通(tong)過(guo)點(dian)擊“添加(jia)策(ce)(ce)略”,進(jin)入選擇(ze)策(ce)(ce)略彈窗中選擇(ze)具體的策(ce)(ce)略。
說明
如(ru)果“授(shou)權(quan)資源”僅選擇“整個(ge)桶(包括桶內對象(xiang))”,可選擇配置“通用操作”、“桶操作”和(he)“對象(xiang)操作”。
如果“授(shou)權(quan)資(zi)源(yuan)”僅選擇“當(dang)前桶”,可(ke)選擇配置“通用操作(zuo)”和“桶操作(zuo)”。
如果(guo)“授權資源”僅選(xuan)擇(ze)“桶(tong)內(nei)對(dui)象(xiang)”,可選(xuan)擇(ze)配置“通用操作(zuo)(zuo)”和“對(dui)象(xiang)操作(zuo)(zuo)”。
如果(guo)“授權資源”同時選(xuan)擇(ze)“當前桶”和“桶內(nei)對象(xiang)”,可選(xuan)擇(ze)配置“通用操作(zuo)(zuo)”、“桶操作(zuo)(zuo)”和“對象(xiang)操作(zuo)(zuo)。
7.??點擊“確定”,完成可視(shi)化(hua)視(shi)圖策(ce)略(lve)的創建。
方式三:使用JSON視圖創建桶策略
熟悉JSON以及桶策略語法結構的用戶,可以直(zhi)接使(shi)用JSON視圖編(bian)輯桶策略。在“JSON視圖”頁簽下(xia),點擊(ji)“編(bian)輯”按鈕進行設置。
桶策略JSON格式(shi)如下:
{
"Statement": [
{
"Sid": "policyNamexxxx",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::buckename",
"arn:aws:s3:::bucketname/*"
],
"Action": [
"s3:GetObject",
"s3:GetObjectAcl",
"s3:GetObjectVersion",
"s3:GetObjectVersionAcl",
"s3:ListBucket",
"s3:RestoreObject"
],
"Condition": {
"StringEquals": {
"aws:SourceVpce": [
"endpoint-r20l0nb8d8"
]
}
},
"Principal": {
"AWS": [
"arn:aws:iam:::user/c1117249994640a59eb3f2dfd47896a6"
]
}
}
]
}
參數說明如下:
| 參數 | 是否必填 | 說明 |
|---|---|---|
| Sid | 是 | string類型,策略名稱標識。 |
| Effect | 是 | string類型,只能填Allow或Deny。 |
| Principal | 是 | map類型,Principal格式: "Principal": {"AWS": ["arn:aws:iam:::user/uid"]} 若授權用戶為所有賬號: "Principal":{"AWS": ["arn:aws:iam:::user/*"]} |
| Action | 是 | 數組類型,桶策略授權操作,詳見附錄一。 |
| Resource | 是 | 數組類型,桶策略作用的資源,Resource格式: "Resource": [ "arn:aws:s3:::bucketName", "arn:aws:s3:::bucketName/" ] 若策略對桶維度和對象維度都生效,"Resource": ["arn:aws:s3:::"] |
| Condition | 否 | 本條statement生效的條件,詳見附錄二。 |
?
附錄一:桶策略授權操作
- 通用操作
| 策略 | 說明 |
|---|---|
| s3:* | 高風險操作,請謹慎授權!表示能對授權資源進行任何操作。 |
| s3:Get* | 表示能對授權資源進行所有的獲取操作。 |
| s3:Put* | 高風險操作,請謹慎授權!表示能對授權資源進行所有的設置操作。 |
| s3:List* | 表示能對授權資源進行所有的列舉操作。 |
- 桶操作
| 策略 | 說明 |
|---|---|
| s3:ListBucketMultipartUploads | 列舉桶中正在進行的分段上傳任務。 |
| s3:ListBucket | 列舉桶內對象列表(僅獲取最新版本對象,不獲取歷史版本)。 |
| s3:ListBucketVersions | 列舉桶內所有對象(包括歷史版本)。 |
| s3:DeleteBucket | 高風險操作,請謹慎授權!刪除桶。 |
| s3:PutBucketPolicy | 高風險操作,請謹慎授權!設置桶策略,擁有此權限的用戶可以任意更改桶策略,并通過此權限可以獲取其他權限。 |
| s3:GetBucketPolicy | 獲取桶策略。 |
| s3:DeleteBucketPolicy | 刪除桶策略。 |
| s3:PutBucketAcl | 高風險操作,請謹慎授權!設置桶ACL,擁有此權限的用戶可以任意更改桶ACL。 |
| s3:GetBucketAcl | 獲取桶ACL。 |
| s3:PutBucketLogging | 設置桶的日志轉存。 |
| s3:GetBucketLogging | 獲取桶的訪問日志。 |
| s3:PutLifecycleConfiguration | 設置桶的生命周期規則。 |
| s3:GetLifecycleConfiguration | 獲取桶的生命周期規則。 |
| s3:PutBucketWebsite | 設置桶的靜態網站托管配置。 |
| s3:GetBucketWebsite | 獲取桶的靜態網站托管配置。 |
| s3:DeleteBucketWebsite | 刪除桶的靜態網站托管配置。 |
| s3:PutBucketVersioning | 開啟或暫停桶的版本控制。 |
| s3:GetBucketVersioning | 獲取桶的版本控制狀態。 |
| s3:PutBucketTagging | 設置桶標簽。 |
| s3:GetBucketTagging | 獲取桶標簽。 |
| s3:PutBucketObjectLockConfiguration | 設置桶的合規保留策略。 |
| s3:GetBucketObjectLockConfiguration | 獲取桶的合規保留策略。 |
| s3:BypassGovernanceRetention | 高風險操作,請謹慎授權!擁有該權限可以刪除或覆蓋合規保留期內的對象。 |
| s3:PutBucketCORS | 設置桶的跨源資源共享(CORS)配置。 |
| s3:GetBucketCORS | 獲取桶的跨源資源共享(CORS)配置。 |
| s3:PutBucketEncryption | 設置桶的加密配置。 |
| s3:GetBucketEncryption | 獲取桶的加密配置。 |
| s3:PutInventoryConfiguration | 設置桶清單配置。 |
| s3:GetInventoryConfiguration | 獲取桶清單配置。 |
| s3:PutBucketPictureStyle | 設置桶的圖片樣式配置。 |
| s3:GetBucketPictureStyle | 獲取桶的圖片樣式配置。 |
| s3:PutBucketPictureStyleSeparator | 設置桶的圖片樣式分割符配置。 |
| s3:GetBucketPictureStyleSeparator | 獲取桶的圖片樣式分割符配置。 |
- 對象操作
| 策略 | 說明 |
|---|---|
| s3:PutObject | 上傳對象。 |
| s3:GetObject | 下載對象。 |
| s3:DeleteObject | 刪除對象。 |
| s3:RestoreObject | 解凍歸檔對象。 |
| s3:ListMultipartUploadParts | 列舉已上傳未合并的分段。 |
| s3:AbortMultipartUpload | 取消分段上傳任務。 |
| s3:GetObjectVersion | 下載指定版本的對象。 |
| s3:DeleteObjectVersion | 刪除指定版本對象。 |
| s3:PutObjectAcl | 高風險操作,請謹慎授權!設置對象ACL,擁有此權限的用戶可以任意更改對象ACL。 |
| s3:GetObjectAcl | 獲取對象ACL。 |
| s3:PutObjectVersionAcl | 設置指定版本對象的ACL。 |
| s3:GetObjectVersionAcl | 獲取指定版本對象的ACL。 |
| s3:PutObjectTagging | 設置對象標簽。 |
| s3:GetObjectTagging | 獲取對象標簽。 |
| s3:DeleteObjectTagging | 刪除對象標簽。 |
| s3:PutObjectVersionTagging | 設置指定版本對象標簽。 |
| s3:GetObjectVersionTagging | 獲取指定版本對象標簽。 |
| s3:DeleteObjectVersionTagging | 刪除指定版本對象標簽。 |
| s3:PutObjectRetention | 設置對象合規保留策略。 |
| s3:GetObjectRetention | 獲取對象合規保留策略。 |
| s3:GetObjectLegalHold | 獲取對象依法保留策略。 |
| s3:PutObjectLegalHold | 設置對象依法保留策略。 |
附錄二:策略生效的條件
除(chu)了指定效力、被授權用戶、資(zi)源、動作外,桶策略還可以(yi)指定生(sheng)效條件。只(zhi)有當條件設置的(de)表(biao)達式與訪問請求(qiu)中的(de)值匹配時,桶策略才(cai)生(sheng)效。條件是(shi)可選(xuan)參(can)數,用戶可以(yi)根據業(ye)務需要(yao)選(xuan)擇是(shi)否使用。
條(tiao)(tiao)(tiao)(tiao)件由條(tiao)(tiao)(tiao)(tiao)件運(yun)算(suan)符、條(tiao)(tiao)(tiao)(tiao)件鍵(jian)、條(tiao)(tiao)(tiao)(tiao)件值三部分(fen)組(zu)成,最終組(zu)成一(yi)(yi)(yi)個(ge)(ge)條(tiao)(tiao)(tiao)(tiao)件表達(da)式,決定(ding)桶策略生(sheng)效的(de)(de)(de)條(tiao)(tiao)(tiao)(tiao)件。同一(yi)(yi)(yi)個(ge)(ge)條(tiao)(tiao)(tiao)(tiao)件運(yun)算(suan)符中,如(ru)果存(cun)在(zai)多個(ge)(ge)相(xiang)同的(de)(de)(de)鍵(jian),則只會(hui)保留(liu)最后一(yi)(yi)(yi)個(ge)(ge)鍵(jian)。條(tiao)(tiao)(tiao)(tiao)件運(yun)算(suan)符、鍵(jian)兩(liang)者之(zhi)間(jian)存(cun)在(zai)互相(xiang)限制的(de)(de)(de)關(guan)聯關(guan)系(xi),例如(ru):條(tiao)(tiao)(tiao)(tiao)件運(yun)算(suan)符選擇了(le)一(yi)(yi)(yi)個(ge)(ge)String類(lei)型的(de)(de)(de),比(bi)如(ru)StringEquals,鍵(jian)就(jiu)(jiu)只能選擇String類(lei)型的(de)(de)(de),比(bi)如(ru)s3:x-amz-acl。鍵(jian)選擇了(le)一(yi)(yi)(yi)個(ge)(ge)Date類(lei)型,比(bi)如(ru)aws:CurrentTime ,條(tiao)(tiao)(tiao)(tiao)件運(yun)算(suan)符就(jiu)(jiu)只能選擇Date類(lei)型的(de)(de)(de),比(bi)如(ru)DateEquals。
●?條件運算符:
| 類型 | 關鍵字 | 說明 |
|---|---|---|
| String | StringEquals | 判斷字段值是否等于指定字符串。 |
| String | StringEqualsIfExists | 僅當字段存在時才判斷字段值是否等于指定字符串。 |
| String | StringNotEquals | 判斷字段值是否不等于指定字符串。 |
| String | StringEqualsIgnoreCase | 判斷字段值是否等于指定字符串,忽略大小寫。 |
| String | StringNotEqualsIgnoreCase | 判斷字段值是否不等于指定字符串,忽略大小寫。 |
| String | StringLike | 兼容通配符 (* 和 ?) 進行字符串匹配,*代表任意多個字符,?代表單個字符。 |
| String | StringLikeIfExists | 僅當字段存在時才兼容通配符 (* 和 ?) 進行字符串匹配。 |
| String | StringNotLike | 判斷字段值是否不匹配指定模式。 |
| Numeric | NumericEquals | 相等。 |
| Numeric | NumericNotEquals | 不相等。 |
| Numeric | NumericLessThan | 小于。 |
| Numeric | NumericLessThanEquals | 小于等于。 |
| Numeric | NumericGreaterThan | 大于。 |
| Numeric | NumericGreaterThanEquals | 大于等于。 |
| Date | DateEquals | 日期時間相等。 |
| Date | DateNotEquals | 日期時間不相等。 |
| Date | DateLessThan | 日期時間小于。 |
| Date | DateLessThanEquals | 日期時間小于等于。 |
| Date | DateGreaterThan | 日期時間大于。 |
| Date | DateGreaterThanEquals | 日期時間大于等于。 |
| IP address | IpAddress | 指定的IP或IP范圍。 |
| IP address | NotIpAddress | 除指定的IP或IP范圍外所有IP。 |
●?鍵值說明:
| 鍵 | 類型 | 值 | 描述 |
|---|---|---|---|
| aws:Referer | String | 輸入字符串(URL) | 匹配請求的 Referer 標頭,用于限制請求來源的網頁。 |
| aws:SourceVpce | String | VPC 端點 ID(如 "vpce-1a2b3c4d" ) | 限制請求通過特定的 VPC 端點發起。 |
| aws:UserAgent | String | 字符串(如 "Mozilla/5.0" , "curl/7.68.0" ) | 匹配請求中的 User-Agent 標頭,?于識別請求?具或瀏覽器。 |
| aws:username | String | ?戶名 | 限制請求來?特定的?戶。 |
| s3:x-amz-acl | String | "private" , "public-read" , "public-read-write" , "authenticatedread" , "bucket-owner-read" , "bucket-owner-full-control" | 限制對特定訪問控制列表(ACL)的請求。 上傳對象或者修改對象acl。 |
| s3:x-amz-copy-source | String | 源對象路徑(如 "/bucket/key" ) | 限制復制操作的源對象。 |
| s3:x-amz-metadata-directive | String | "COPY" , "REPLACE" | 控制復制操作中是否保留源對象的元數據。 |
| s3:prefix | String | 字符串(如 "123/" ) | 限制請求只能操作以特定前綴開頭的對象。 |
| s3:delimiter | String | 字符串(如 "/" ) | 在列出對象時使?指定的分隔符進?分組。 |
| s3:max-keys | Numeric | 整數 | 限制列出對象時返回的最?鍵數。 |
| aws:CurrentTime | Date | ?期時間字符串(如 "2024-08-20T00:00:00Z" ) | 匹配當前請求時間。 |
| aws:EpochTime | Date | 時間戳(如 1596240000 ) | 匹配請求的時間。 |
| aws:SourceIp | IP address | IP 地址或范圍(如 "192.168.1.1" , "192.168.0.0/24" ) | 限制請求只能從指定的 IP 地址或 IP 范圍內發起。 |
?