链接复制成功!
自定义创建桶策略(JSON视图)
熟悉JSON以及OBS桶策略语法结构的用户,可以直接使用JSON视图编辑桶策略。单个桶的桶策略条数(statement)没有限制,但一个桶中所有桶策略的JSON描述总大小不能超过20KB。
使用方式
OBS支持通过管理控制台、API、SDK、OBS Browser+、obsutil方式自定义创建桶策略。
使用OBS控制台
- 在OBS管理控制台左侧导航栏选择“桶列表”。
- 在桶列表中,单击待操作的桶,进入“对象”页面。
- 在左侧导航栏,单击“权限控制 > 桶策略”。
- 在界面右上方选择“JSON视图”,单击“编辑”。
- 编辑桶策略。桶策略JSON格式如下:以下示例中,“test-obs-policy”为桶策略名称,“account ID”为账号ID,“User ID”为IAM用户ID,“test-bucket/test.txt”表示桶“test-bucket”中的对象“test.txt”,请根据实际情况修改这些参数。关于获取账号ID和IAM用户ID,请参见获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。
{ "Statement":[ { "Sid":"test-obs-policy", "Effect":"Allow", "Principal":{ "ID":[ "domain/account ID", "domain/account ID:user/User ID" ] }, "Action":[ "PutObject", "GetObject" ], "Resource":[ "test-bucket/test.txt" ], "Condition":{ "IpAddress":{ "SourceIp": [ "114.115.1.0/24" ] } } } ] }表1 参数说明 参数
描述
Sid
桶策略名称。
Effect
桶策略效力,详见桶策略参数说明。
Principal
桶策略被授权用户,ID可以通过控制台在“我的凭证”页面获取。Principal格式:
- “domain/domainId”(表示被授权用户为xxx账号)。
- “domain/domainId:user/userId”(表示被授权用户为xxx账号下的xxx用户)。
- 如果您想为联合身份用户 (使用SAML身份提供商)配置桶策略,Principal请按照如下格式配置。其中domainIDxxx为被授权用户的账号ID,provider-name为被授权用户的身份提供商名称:
"Principal": { "Federated": "domain/domainIDxxx:identity-provider/provider-name" } - 如果您想为联合身份用户(使用SAML身份提供商)映射的用户组授权,Principal请按照如下格式配置。其中groupname是联邦用户映射的IAM用户组名:
"Principal": { "Federated": "domain/domainIDxxx:group/groupname" }
Action
桶策略授权操作,详见桶策略参数说明。
Resource
桶策略作用的资源,详见桶策略参数说明。
Condition
桶策略条件,详见桶策略参数说明。
- 单击“保存”。
使用图形化工具OBS Browser+
- 登录OBS Browser+。
- 选择待配置的桶,单击“更多 > 桶策略”,如图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权限控制要素。
- 给账户授予权限。下面的示例,允许账户(账户ID为783fc6652cf246c096ea836694f71855)获取桶logging.bucket3的日志管理信息。
使用命令行工具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]
运行示例:
- 以Windows操作系统为例,运行obsutil bucketpolicy obs://bucket -method=put -localfile=d:\temp\policy.json,指定基于policy.json文件为桶bucket设置桶策略。
obsutil bucketpolicy obs://bucket -method=put -localfile=d:\temp\policy.json Start at 2024-09-30 07:59:28.8675681 +0000 UTC Put bucketPolicy succeed, requestId is [04050000016836C5DA6FB21F14A2A0C0]
参数说明:
参数 | 约束 | 描述 |
|---|---|---|
bucket | 必选 | 桶名。 |
method | 必选 | 指定方法,设置桶策略时该值为put。 |
localfile | 必选 | 待导入的本地策略文件路径。 |
bucket-cname | 附加参数,可选 | 指定桶绑定的自定义域名 说明: Util 5.7.9版本及以上支持该参数。 |
config | 附加参数,可选 | 运行当前命令时的自定义配置文件。可支持的配置参数请参考配置参数说明。 |
e | 附加参数,可选 | 指定终端节点。 |
i | 附加参数,可选 | 指定用户的AK。 |
k | 附加参数,可选 | 指定用户的SK。 |
t | 附加参数,可选 | 指定用户的securitytoken。 |


