華為云計(jì)算 云知識(shí) 設(shè)置桶策略SetBucketPolicy
設(shè)置桶策略SetBucketPolicy

 

接口說(shuō)明

該接口的實(shí)現(xiàn)使用policy子資源創(chuàng)建或者修改一個(gè)桶的策略。如果桶已經(jīng)存在一個(gè)策略,那么當(dāng)前請(qǐng)求中的策略將完全覆蓋桶中現(xiàn)存的策略。單個(gè)桶的桶策略條數(shù)(statement)沒(méi)有限制,但一個(gè)桶中所有桶策略的JSON描述總大小不能超過(guò)20KB。

要使用該接口,使用者要求必須是桶的所有者,或者是桶所有者的子用戶且具有設(shè)置桶策略的權(quán)限。

使用桶策略進(jìn)行權(quán)限控制請(qǐng)參考《 對(duì)象存儲(chǔ)服務(wù) 權(quán)限配置指南》的OBS權(quán)限控制概述章節(jié)。

URL
PUT  https://obs.cn-north-4.myhuaweicloud.com/ 
請(qǐng)求參數(shù)
名稱 類型 IN 必選 描述
Authorization
 
string header

請(qǐng)求消息中可帶的簽名信息。

Date
 
string header

請(qǐng)求發(fā)起端的日期和時(shí)間,例如:Wed, 27 Jun 2018 13:39:15 +0000。 默認(rèn)值:無(wú)。 條件:如果消息頭中帶了x-obs-date字段,則可以不帶該字段,其他情況下必選。

bucket_name
 
string query

請(qǐng)求的桶名稱。

policy
 
string query

policy表示請(qǐng)求桶策略API。

Body參數(shù)
名稱 類型 必選 描述
Statement
 
Array of Statement objects  
參數(shù):
Statement
名稱 類型 必選 描述
Sid
 
string

statement Id,可選關(guān)鍵字,描述statement的字符串。

Principal
 
Principal object

可選關(guān)鍵字,被授權(quán)人,指定本條statement權(quán)限針對(duì)的Domain以及User,支持通配符“”,表示所有用戶。當(dāng)對(duì)Domain下所有用戶授權(quán)時(shí),Principal格式為domain/domainid:user/。當(dāng)對(duì)某個(gè)User進(jìn)行授權(quán)時(shí),Principal格式為domain/domainid:user/userId或者domain/domainid:user/userName。

如果通過(guò)控制臺(tái)進(jìn)行桶清單配置,控制臺(tái)會(huì)自動(dòng)生成目標(biāo)桶的桶策略。目標(biāo)桶的桶策略中Principal取值則固定為{"Service": "obs"}。關(guān)于桶清單的詳細(xì)介紹請(qǐng)參見(jiàn)桶清單說(shuō)明。

可選,Principal與NotPrincipal選其一。

NotPrincipal
 
NotPrincipal object

可選關(guān)鍵字,不被授權(quán)人,statement匹配除此之外的其他人。取值同Principal。

可選,NotPrincipal與Principal選其一。

Action
 
Array of strings

可選關(guān)鍵字,指定本條statement作用的操作,Action字段為OBS支持的所有操作集合,以字符串形式表示,不區(qū)分大小寫(xiě)。支持通配符“”,表示該資源能進(jìn)行的所有操作。例如:"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)用戶、資源、動(dòng)作外,桶策略還可以指定生效條件。只有當(dāng)條件設(shè)置的表達(dá)式與訪問(wèn)請(qǐng)求中的值匹配時(shí),桶策略才生效。條件是可選參數(shù),用戶可以根據(jù)業(yè)務(wù)需要選擇是否使用。

條件由條件運(yùn)算符、鍵、值三部分組成,最終組成一個(gè)條件表達(dá)式,決定桶策略生效的條件。同一個(gè)條件運(yùn)算符中,如果存在多個(gè)相同的鍵,則只會(huì)保留最后一個(gè)鍵。條件運(yùn)算符、鍵兩者之間存在互相限制的關(guān)聯(lián)關(guān)系,例如: 條件運(yùn)算符選擇了一個(gè)String類型的,比如StringEquals,鍵就只能選擇String類型的,比如UserAgent。 鍵選擇了一個(gè)Date類型,比如CurrentTime,條件運(yùn)算符就只能選擇Date類型的,比如DateEquals。

Condition判斷類型和鍵如桶策略參數(shù)說(shuō)明表4-7所示。

參數(shù):
Statement.Principal
名稱 類型 必選 描述
ID
 
Array of strings

OBS支持的Principal或NotPrincipal有匿名用戶、特定租戶、特定用戶、聯(lián)合身份用戶,委托用戶。

參數(shù):
Statement.NotPrincipal
名稱 類型 必選 描述
ID
 
Array of strings

OBS支持的Principal或NotPrincipal有匿名用戶、特定租戶、特定用戶、聯(lián)合身份用戶,委托用戶。

返回參數(shù)
返回碼: 204

成功響應(yīng)消息

名稱 類型 必選 描述
Content-Length
 
string

響應(yīng)消息體的字節(jié)長(zhǎng)度。

Connection
 
string

指明與服務(wù)器的連接是長(zhǎng)連接還是短連接。

Date
 
string

OBS系統(tǒng)響應(yīng)的時(shí)間。

ETag
 
string

對(duì)象的base64編碼的128位MD5摘要。ETag是對(duì)象內(nèi)容的唯一標(biāo)識(shí),可以通過(guò)該值識(shí)別對(duì)象內(nèi)容是否有變化。比如上傳對(duì)象時(shí)ETag為A,下載對(duì)象時(shí)ETag為B,則說(shuō)明對(duì)象內(nèi)容發(fā)生了變化。實(shí)際的ETag是對(duì)象的哈希值。ETag只反映變化的內(nèi)容,而不是其元數(shù)據(jù)。上傳的對(duì)象或拷貝操作創(chuàng)建的對(duì)象,通過(guò)MD5加密后都有唯一的ETag。如果通過(guò)多段上傳對(duì)象,則無(wú)論加密方法如何,MD5會(huì)拆分ETag,此類情況ETag就不是MD5的摘要。

x-obs-id-2
 
string

幫助定位問(wèn)題的特殊符號(hào)。

x-obs-request-id
 
string

由OBS創(chuàng)建來(lái)唯一確定本次請(qǐng)求的值,可以通過(guò)該值來(lái)定位問(wèn)題。

返回碼: 400

請(qǐng)求失敗響應(yīng)消息。

名稱 類型 必選 描述
Code
 
string

錯(cuò)誤響應(yīng)消息體XML中錯(cuò)誤響應(yīng)對(duì)應(yīng)的HTTP消息返回碼,具體的錯(cuò)誤碼請(qǐng)參見(jiàn)錯(cuò)誤碼-表2。

Message
 
string

錯(cuò)誤響應(yīng)消息體XML中具體錯(cuò)誤更全面、詳細(xì)的英文解釋,具體的錯(cuò)誤消息請(qǐng)參見(jiàn)錯(cuò)誤碼-表2。

RequestId
 
string

本次錯(cuò)誤請(qǐng)求的請(qǐng)求ID,用于錯(cuò)誤定位。

HostId
 
string

返回該消息的服務(wù)端ID。

Resource
 
string

該錯(cuò)誤相關(guān)的桶或?qū)ο筚Y源。

請(qǐng)求示例
示例 1
 
"/?policy"
 
"PUT /?policy HTTP/1.1\nHost: examplebucket.obs.cn-north-4.myhuaweicloud.com\nDate: WED, 01 Jul 2015 02:32:25 GMT\nAuthorization: OBS H4IPJX0TQTHTHEBQQCEC:jZiAT8Vx4azWEvPRMWi0X5BpJMA=\n\n{\n \"Statement\": [\n {\n \"Sid\": \"Stmt1375240018061\",\n \"Action\": [\n \"GetBucketLogging\"\n ],\n \"Effect\": \"Allow\",\n \"Resource\": \"logging.bucket\",\n \"Principal\": {\n \"ID\": [\n \"domain/783fc6652cf246c096ea836694f71855:user/*\"\n ]\n }\n }\n ]\n}"
錯(cuò)誤碼
請(qǐng)參考 錯(cuò)誤碼說(shuō)明。