更新时间:2026-03-17 GMT+08:00

桶策略概述

桶策略

桶策略是作用于所配置的OBS桶及桶内对象的。OBS桶拥有者通过桶策略可为IAM用户或其他账号授权桶及桶内对象的操作权限。

创建桶和获取桶列表这两个服务级的操作权限,需要通过配置。

桶策略应用场景

  • 允许其他账号访问OBS资源,可以使用桶策略的方式授权对应权限。
  • 当不同的桶对于不同的IAM用户有不同的访问控制需求时,需使用桶策略分别授权IAM用户不同的权限。

桶策略样例

  • 示例1:向IAM用户授予指定桶中所有对象的指定操作权限

    以下示例策略向账号b4bf1b36d9ca43d984fbcb9491b6fce9(账号ID)下的用户ID为71f3901173514e6988115ea2c26d1999的IAM用户授予PutObject和PutObjectAcl权限。

    {
        "Statement":[
        {
          "Sid":"AddCannedAcl",
          "Effect":"Allow",
          "Principal": {"ID": ["domain/b4bf1b36d9ca43d984fbcb9491b6fce9:user/71f3901173514e6988115ea2c26d1999"]},
          "Action":["PutObject","PutObjectAcl"],
          "Resource":["examplebucket/*"]
        }
      ]
    }
  • 示例2:向IAM用户授予指定桶的所有操作权限

    以下示例策略向账号b4bf1b36d9ca43d984fbcb9491b6fce9(账号ID)下的用户ID为71f3901173514e6988115ea2c26d1999的IAM用户授予examplebucket的所有操作权限(包含桶操作与对象操作)。

    {
        "Statement":[
        {
          "Sid":"test",
          "Effect":"Allow",
          "Principal": {"ID": ["domain/b4bf1b36d9ca43d984fbcb9491b6fce9:user/71f3901173514e6988115ea2c26d1999"]},
          "Action":["*"],
          "Resource":[
            "examplebucket/*",
            "examplebucket"
          ]
        }
      ]
    }
  • 示例3:向OBS用户授予除删除对象外的所有对象操作权限

    以下示例策略向账号b4bf1b36d9ca43d984fbcb9491b6fce9(账号户ID)下的用户ID为71f3901173514e6988115ea2c26d1999的IAM用户授予examplebucket除删除对象外的所有对象操作权限。

    {
        "Statement":[
        {
          "Sid":"test1",
          "Effect":"Allow",
          "Principal": {"ID": ["domain/b4bf1b36d9ca43d984fbcb9491b6fce9:user/71f3901173514e6988115ea2c26d1999"]},
          "Action":["*"],
          "Resource":["examplebucket/*"]
        },
        {
          "Sid":"test2",
          "Effect":"Deny",
          "Principal": {"ID": ["domain/b4bf1b36d9ca43d984fbcb9491b6fce9:user/71f3901173514e6988115ea2c26d1999"]},
          "Action":["DeleteObject"],
          "Resource":["examplebucket/*"]
        }
      ]
    }
  • 示例4:向匿名用户授予指定对象的只读权限

    下面的示例策略向匿名用户授予examplebucket桶中exampleobject的GetObject(下载对象)权限。此权限允许任何人读取对象exampleobject的数据。

    {
        "Statement":[
        {
          "Sid":"AddPerm",
          "Effect":"Allow",
          "Principal": "*",
          "Action":["GetObject"],
          "Resource":["examplebucket/exampleobject"]
        }
      ]
    }
  • 示例5:限制对特定IP地址的访问权限

    以下示例向任何用户授予对指定桶中的对象执行任何OBS操作的权限。但是,请求必须来自条件中指定的IP地址范围。此语句的条件确定允许的IP地址范围为192.168.0.*,只有一个例外:192.168.0.1。

    Condition块使用IpAddress和NotIpAddress条件以及SourceIp条件键(这是OBS范围的条件键)。另请注意SourceIp值使用RFC 4632中描述的CIDR表示法。

    {
      "Statement": [
        {
          "Sid": "IPAllow",
          "Effect": "Allow",
          "Principal": "*",
          "Action": "*",
          "Resource": "examplebucket/*",
          "Condition": {
             "IpAddress": {"SourceIp": "192.168.0.0/24"},
             "NotIpAddress": {"SourceIp": "192.168.0.1/32"} 
          } 
        } 
      ]
    }