該接口的實現(xiàn)使用policy子資源創(chuàng)建或者修改一個桶的策略。如果桶已經(jīng)存在一個策略,那么當前請求中的策略將完全覆蓋桶中現(xiàn)存的策略。單個桶的桶策略條數(shù)(statement)沒有限制,但一個桶中所有桶策略的JSON描述總大小不能超過20KB。
要使用該接口,使用者要求必須是桶的所有者,或者是桶所有者的子用戶且具有設置桶策略的權(quán)限。
使用桶策略進行權(quán)限控制請參考《 對象存儲服務 權(quán)限配置指南》的OBS權(quán)限控制概述章節(jié)。
| 名稱 | 類型 | IN | 必選 | 描述 |
|---|---|---|---|---|
|
Authorization
|
string | header | 是 |
請求消息中可帶的簽名信息。 |
|
Date
|
string | header | 否 |
請求發(fā)起端的日期和時間,例如:Wed, 27 Jun 2018 13:39:15 +0000。 默認值:無。 條件:如果消息頭中帶了x-obs-date字段,則可以不帶該字段,其他情況下必選。 |
|
bucket_name
|
string | query | 是 |
請求的桶名稱。 |
|
policy
|
string | query | 是 |
policy表示請求桶策略API。 |
| 名稱 | 類型 | 必選 | 描述 |
|---|---|---|---|
|
Statement
|
Array of Statement objects | 否 |
| 名稱 | 類型 | 必選 | 描述 |
|---|---|---|---|
|
Sid
|
string | 否 |
statement Id,可選關(guān)鍵字,描述statement的字符串。 |
|
Principal
|
Principal object | 否 |
可選關(guān)鍵字,被授權(quán)人,指定本條statement權(quán)限針對的Domain以及User,支持通配符“”,表示所有用戶。當對Domain下所有用戶授權(quán)時,Principal格式為domain/domainid:user/。當對某個User進行授權(quán)時,Principal格式為domain/domainid:user/userId或者domain/domainid:user/userName。 如果通過控制臺進行桶清單配置,控制臺會自動生成目標桶的桶策略。目標桶的桶策略中Principal取值則固定為{"Service": "obs"}。關(guān)于桶清單的詳細介紹請參見桶清單說明。 可選,Principal與NotPrincipal選其一。 |
|
NotPrincipal
|
NotPrincipal object | 否 |
可選關(guān)鍵字,不被授權(quán)人,statement匹配除此之外的其他人。取值同Principal。 可選,NotPrincipal與Principal選其一。 |
|
Action
|
Array of strings | 否 |
可選關(guān)鍵字,指定本條statement作用的操作,Action字段為OBS支持的所有操作集合,以字符串形式表示,不區(qū)分大小寫。支持通配符“”,表示該資源能進行的所有操作。例如:"Action":["List", "Get*"]。 可選,Action與NotAction選其一。 |
|
NotAction
|
Array of strings | 否 |
可選關(guān)鍵字,指定一組操作,statement匹配除該組操作之外的其他操作。 取值同Action。 可選,Action與NotAction選其一。 |
|
Effect
|
string | 是 |
必選關(guān)鍵字,效果,指定本條statement的權(quán)限是允許還是拒絕,Effect的值必須為Allow或者Deny。 |
|
Resource
|
Array of strings | 否 |
可選關(guān)鍵字,指定statement起作用的一組資源,支持通配符“*”,表示所有資源。 可選,Resource與NotResource選其一。 |
|
NotResource
|
Array of strings | 否 |
可選關(guān)鍵字,指定一組資源,statement匹配除該組資源之外的其他資源。 取值同Resource。 可選,Resource與NotResource選其一。 |
|
Condition
|
Condition object | 否 |
除了指定效果、被授權(quán)用戶、資源、動作外,桶策略還可以指定生效條件。只有當條件設置的表達式與訪問請求中的值匹配時,桶策略才生效。條件是可選參數(shù),用戶可以根據(jù)業(yè)務需要選擇是否使用。 條件由條件運算符、鍵、值三部分組成,最終組成一個條件表達式,決定桶策略生效的條件。同一個條件運算符中,如果存在多個相同的鍵,則只會保留最后一個鍵。條件運算符、鍵兩者之間存在互相限制的關(guān)聯(lián)關(guān)系,例如: 條件運算符選擇了一個String類型的,比如StringEquals,鍵就只能選擇String類型的,比如UserAgent。 鍵選擇了一個Date類型,比如CurrentTime,條件運算符就只能選擇Date類型的,比如DateEquals。 Condition判斷類型和鍵如桶策略參數(shù)說明表4-7所示。 |
| 名稱 | 類型 | 必選 | 描述 |
|---|---|---|---|
|
ID
|
Array of strings | 否 |
OBS支持的Principal或NotPrincipal有匿名用戶、特定租戶、特定用戶、聯(lián)合身份用戶,委托用戶。 |
| 名稱 | 類型 | 必選 | 描述 |
|---|---|---|---|
|
ID
|
Array of strings | 否 |
OBS支持的Principal或NotPrincipal有匿名用戶、特定租戶、特定用戶、聯(lián)合身份用戶,委托用戶。 |
成功響應消息
| 名稱 | 類型 | 必選 | 描述 |
|---|---|---|---|
|
Content-Length
|
string | 否 |
響應消息體的字節(jié)長度。 |
|
Connection
|
string | 否 |
指明與服務器的連接是長連接還是短連接。 |
|
Date
|
string | 否 |
OBS系統(tǒng)響應的時間。 |
|
ETag
|
string | 否 |
對象的base64編碼的128位MD5摘要。ETag是對象內(nèi)容的唯一標識,可以通過該值識別對象內(nèi)容是否有變化。比如上傳對象時ETag為A,下載對象時ETag為B,則說明對象內(nèi)容發(fā)生了變化。實際的ETag是對象的哈希值。ETag只反映變化的內(nèi)容,而不是其元數(shù)據(jù)。上傳的對象或拷貝操作創(chuàng)建的對象,通過MD5加密后都有唯一的ETag。如果通過多段上傳對象,則無論加密方法如何,MD5會拆分ETag,此類情況ETag就不是MD5的摘要。 |
|
x-obs-id-2
|
string | 否 |
幫助定位問題的特殊符號。 |
|
x-obs-request-id
|
string | 否 |
由OBS創(chuàng)建來唯一確定本次請求的值,可以通過該值來定位問題。 |
