桶策略概述
桶策略
桶策略是作用于所配置的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"} } } ] }