熟悉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管理控制台页面右上角用户名,选择“我的凭证”,进入“我的凭证”页面查询。 |
桶策略各字段含义描述请参考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。 |