華為云計算 云知識 設置桶策略SetBucketPolicy
設置桶策略SetBucketPolicy

 

接口說明

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

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

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

URL
PUT  https://obs.cn-north-4.myhuaweicloud.com/ 
請求參數(shù)
名稱 類型 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。

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)限針對的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所示。

參數(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

成功響應消息

名稱 類型 必選 描述
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)建來唯一確定本次請求的值,可以通過該值來定位問題。

返回碼: 400

請求失敗響應消息。

名稱 類型 必選 描述
Code
 
string

錯誤響應消息體XML中錯誤響應對應的HTTP消息返回碼,具體的錯誤碼請參見錯誤碼-表2。

Message
 
string

錯誤響應消息體XML中具體錯誤更全面、詳細的英文解釋,具體的錯誤消息請參見錯誤碼-表2。

RequestId
 
string

本次錯誤請求的請求ID,用于錯誤定位。

HostId
 
string

返回該消息的服務端ID。

Resource
 
string

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

請求示例
示例 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}"
錯誤碼
請參考 錯誤碼說明