
# 自定义创建桶策略（JSON视图）
熟悉JSON以及OBS桶策略语法结构的用户，可以直接使用JSON视图编辑桶策略。单个桶的桶策略条数（statement）没有限制，但一个桶中所有桶策略的JSON描述总大小不能超过20KB。
#### 使用方式
OBS支持通过[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)、API、SDK、OBS Browser+、obsutil方式自定义创建桶策略。
#### 使用OBS控制台
1. 在OBS[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)左侧导航栏选择"桶列表"。
2. 在桶列表中，单击待操作的桶，进入"对象"页面。
3. 在左侧导航栏，单击"权限控制 \> 桶策略"。
4. 在界面右上方选择"JSON视图"，单击"编辑"。
5. 编辑桶策略。桶策略JSON格式如下： 
   以下示例中，"*test-obs-policy* "为桶策略名称，"*account ID* "为账号ID，"*User ID* "为IAM用户ID，"*test-bucket/test.txt* "表示桶"*test-bucket* "中的对象"*test.txt* "，请根据实际情况修改这些参数。关于获取账号ID和IAM用户ID，请参见[获取账号、IAM用户、项目、用户组、区域、委托的名称和ID](https://support.huaweicloud.com/api-obs/obs_04_0117.html)。
   ```
   {
      "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    | 桶策略效力，详见[桶策略参数说明](https://support.huaweicloud.com/perms-cfg-obs/obs_40_0041.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 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    | 桶策略授权操作，详见[桶策略参数说明](https://support.huaweicloud.com/perms-cfg-obs/obs_40_0041.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | Resource  | 桶策略作用的资源，详见[桶策略参数说明](https://support.huaweicloud.com/perms-cfg-obs/obs_40_0041.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | Condition | 桶策略条件，详见[桶策略参数说明](https://support.huaweicloud.com/perms-cfg-obs/obs_40_0041.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
      
   
   
6. 单击"保存"。
 
#### 使用API
- [IAM权限控制](https://support.huaweicloud.com/api-obs/obs_04_0110.html)
- [设置桶策略](https://support.huaweicloud.com/api-obs/obs_04_0027.html)
 
#### 使用SDK
| [Java](https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0407.html) | [Python](https://support.huaweicloud.com/sdk-python-devg-obs/obs_22_0818.html) | C不支持 | [Go](https://support.huaweicloud.com/sdk-go-devg-obs/obs_33_0420.html) | [BrowserJS](https://support.huaweicloud.com/sdk-browserjs-devg-obs/obs_24_0405.html) | [.NET](https://support.huaweicloud.com/sdk-dotnet-devg-obs/obs_25_0307.html) | [Android](https://support.huaweicloud.com/sdk-android-devg-obs/obs_26_0307.html) | [iOS](https://support.huaweicloud.com/sdk-ios-devg-obs/obs_27_0307.html) | [PHP](https://support.huaweicloud.com/sdk-php-devg-obs/obs_28_0307.html) | [Node.js](https://support.huaweicloud.com/sdk-nodejs-devg-obs/obs_29_0307.html) | [Harmony](https://support.huaweicloud.com/sdk-harmony-devg-obs/obs_34_0318.html) |
|---|---|---|---|---|---|---|---|---|---|---|
   
#### 使用图形化工具OBS Browser+
1. 登录OBS Browser+。
2. 选择待配置的桶，单击"更多 \> 桶策略"，如[图1]所示。
   
   图1桶策略   
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000001243799183.png "点击放大")
   
   
3. 根据需求在"桶策略"输入框中按照如下格式输入桶策略： 
   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，可参考[桶相关授权项](https://support.huaweicloud.com/zh-cn/api-obs/obs_04_0111.html)。 |
      | **Allow**                            | Effect字段的参数值，指定此Policy是允许还是拒绝，Effect的值必须为Allow或者Deny。                                                                                                                                                                                |
      | **logging.bucket3**                  | 此Policy作用的目标桶，需根据用户需要设置的实际桶名修改。                                                                                                                                                                                                      |
      | **783fc6652cf246c096ea836694f71855** | 账户的"账户ID"，需根据实际需要修改。"账户ID"可通过查看桶"基本信息"页面获取。                                                                                                                                                                                          |
         
      
   
   2. 给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，可参考[桶相关授权项](https://support.huaweicloud.com/zh-cn/api-obs/obs_04_0111.html)。                               |
      | **Allow**                            | Effect字段的参数值，指定此Policy是允许还是拒绝，Effect的值必须为Allow或者Deny。                                                                                                                                                                                                              |
      | **logging.bucket3**                  | 此Policy作用的目标桶，需根据用户需要设置的实际桶名修改。                                                                                                                                                                                                                                    |
      | **219d520ceac84c5a98b237431a2cf4c2** | 账户的"账户ID"，需根据实际需要修改。 "账户ID"可通过单击目标桶后的![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000001398402429.png "点击放大")图标，在弹出的"基本信息"页面获取。 |
      | **71f3901173514e6988115ea2c26d1999** | 账户的"用户ID"，需根据实际需要修改。 "用户ID"可通过单击OBS管理控制台页面右上角用户名，选择"我的凭证"，进入"我的凭证"页面查询。                                                                                    |
         
      
   
   
   桶策略各字段含义描述请参考[OBS权限控制要素](https://support.huaweicloud.com/zh-cn/perms-cfg-obs/obs_40_0041.html)。
   
   
 
#### 使用命令行工具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       | 附加参数，可选 | 运行当前命令时的自定义配置文件。可支持的配置参数请参考[配置参数说明](https://support.huaweicloud.com/utiltg-obs/obs_11_0035.html)。                                                                                                                                                    |
| e            | 附加参数，可选 | 指定终端节点。                                                                                                                                                                                                                                              |
| i            | 附加参数，可选 | 指定用户的AK。                                                                                                                                                                                                                                             |
| k            | 附加参数，可选 | 指定用户的SK。                                                                                                                                                                                                                                             |
| t            | 附加参数，可选 | 指定用户的securitytoken。                                                                                                                                                                                                                                  |
   
