熟悉json以及obs桶策略语法结构的用户,可以直接使用json视图编辑桶策略。单个桶的桶策略条数(statement)没有限制,但一个桶中所有桶策略的json描述总大小不能超过20kb。
使用方式
obs支持通过控制台、api、sdk、obs browser 、obsutil方式自定义创建桶策略。
使用obs控制台
- 在obs左侧导航栏选择“桶列表”。
- 在obs管理控制台桶列表中,单击待操作的桶,进入“对象”页面。
- 在左侧导航栏,单击“权限控制 > 桶策略”。
- 在界面右上方选择“json视图”,单击“编辑”。
- 编辑桶策略。桶策略json格式如下:
{
"statement":[
{
"action":[
"createbucket",
"deletebucket"
],
"effect":"allow",
"principal":{
"id":[
"domain/account id",
"domain/account id:user/user id"
]
},
"condition":{
"numericnotequals":{
"referer":"sdf"
},
"stringnotlike":{
"delimiter":"ouio"
}
},
"resource":"000-02/key01"
}
]
}
表1 参数说明
参数 |
描述 |
action |
桶策略授权操作,详见。 |
effect |
桶策略效力,详见。 |
principal |
桶策略被授权用户,id可以通过控制台在“我的凭证”页面获取。principal格式:
- “domain/domainid”(表示被授权用户为xxx账号)。
- “domain/domainid:user/userid”(表示被授权用户为xxx账号下的xxx用户)。
|
condition |
桶策略条件,详见。 |
resource |
桶策略作用的资源,详见。 |
- 单击“创建”。
使用图形化工具obs browser
- 登录obs browser 。
- 选择待配置的桶,单击“更多 > 桶策略”,如图1所示。
图1 桶策略
- 根据需求在“桶策略”输入框中按照如下格式输入桶策略:
- 给账户授予权限。下面的示例,允许账户(账户id为783fc6652cf246c096ea836694f71855)获取桶logging.bucket3的日志管理信息。
{
"statement": [
{
"sid": "testing",
"effect": "allow",
"principal": {
"id": [
"domain/783fc6652cf246c096ea836694f71855:user/*"
]
},
"action": [
"getbucketlogging"
],
"resource": [
"logging.bucket3"
]
}
]
}
上述示例中需要用户手动修改的参数介绍如
表2所示:
表2 参数修改
需要修改的参数 |
解释 |
getbucketlogging |
action字段的参数值,表示此policy的操作,action字段为obs支持的所有操作集合,以字符串形式表示,不区分大小写。支持通配符“*”,表示该资源能进行的所有操作。例如:"action":["list*", "get*"]。此处需要根据用户实际需要修改。obs支持的所有action,可参考。 |
allow |
effect字段的参数值,指定此policy是允许还是拒绝,effect的值必须为allow或者deny。 |
logging.bucket3 |
此policy作用的目标桶,需根据用户需要设置的实际桶名修改。 |
783fc6652cf246c096ea836694f71855 |
账户的“账户id”,需根据实际需要修改。“账户id”可通过查看桶“基本信息”页面获取。 |
- 给iam用户授予权限。下面的示例,允许账户(账户id为219d520ceac84c5a98b237431a2cf4c2)下的用户(user id为71f3901173514e6988115ea2c26d1999)设置桶logging.bucket3的日志管理信息。
{
"statement": [
{
"sid": "testing",
"effect": "allow",
"principal": {
"id": [
"domain/219d520ceac84c5a98b237431a2cf4c2:user/71f3901173514e6988115ea2c26d1999"
]
},
"action": [
"putbucketlogging"
],
"resource": [
"logging.bucket3"
]
}
]
}
上述示例中需要用户手动修改的参数介绍如
表3所示:
表3 参数修改
需要修改的参数 |
解释 |
putbucketlogging |
action字段的参数值,表示此policy的操作,action字段为obs支持的所有操作集合,以字符串形式表示,不区分大小写。支持通配符“*”,表示该资源能进行的所有操作。例如:"action":["list*", "get*"]。此处需要根据用户实际需要修改。obs支持的所有action,可参考。 |
allow |
effect字段的参数值,指定此policy是允许还是拒绝,effect的值必须为allow或者deny。 |
logging.bucket3 |
此policy作用的目标桶,需根据用户需要设置的实际桶名修改。 |
219d520ceac84c5a98b237431a2cf4c2 |
账户的“账户id”,需根据实际需要修改。“账户id”可通过单击目标桶后的 图标,在弹出的“基本信息”页面获取。 |
71f3901173514e6988115ea2c26d1999 |
账户的“用户id”,需根据实际需要修改。“用户id”可通过单击obs管理控制台页面右上角用户名,选择“我的凭证”,进入“我的凭证”页面查询。 |
桶策略各字段含义描述请参考。
使用命令行工具obsutil
命令结构:
- windows操作系统
obsutil bucketpolicy obs://bucket -method=put -localfile=xxx [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
- macos/linux操作系统
./obsutil bucketpolicy obs://bucket -method=put -localfile=xxx [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
运行示例:
参数说明:
参数 |
约束 |
描述 |
bucket |
必选 |
桶名。 |
method |
必选 |
指定方法,设置桶策略时该值为put。 |
localfile |
必选 |
待导入的本地策略文件路径。 |
config |
附加参数,可选 |
运行当前命令时的自定义配置文件,可支持的配置参数请参考配置参数说明。 |
e |
附加参数,可选 |
指定终端节点。 |
i |
附加参数,可选 |
指定用户的ak。 |
k |
附加参数,可选 |
指定用户的sk。 |
t |
附加参数,可选 |
指定用户的securitytoken。 |