接口介绍
为指定的存储桶设置权限策略。
接口约束
支持的线上资源池 :上海7、南京3、南京5、杭州2、合肥2、九江、广州6、武汉4、福州25、厦门3、郴州2、海口2、北京5、雄安2、石家庄20、内蒙6、晋中、辽阳1、西安5、乌鲁木齐4、乌鲁木齐27、中卫5、兰州2、西宁2、拉萨3、昆明2、重庆2、成都4、贵州3、上海33、宁波边缘云、华东1、上海36、南昌5、青岛20、武汉41、长沙42、长沙37、南宁23、北京行业云20、华北2、西南1、上海32。
URI
POST /v4/oss/put-bucket-policy
请求参数
请求体 JSON Body 参数
参数 |
是否必填 |
参数类型 |
说明 |
示例 |
bucket |
是 |
String |
桶名 |
bk1 |
regionID |
是 |
String |
区域ID |
332232eb-63aa-465e-9028-52e5123866f0 |
policy |
是 |
String |
JSON文档形式的存储桶策略 |
{"Version": "2012-10-17", "Id": "S3PolicyId1", "Statement": [{"Resource": ["arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/"], "Effect": "Deny", "Sid": "IPAllow", "Action": "s3:", "Condition": {"NotIpAddress": {"aws:SourceIp": "54.240.143.0/24"}}, "Principal": "*"}]} |
表 policy
参数 |
是否必填 |
参数类型 |
说明 |
示例 |
Version |
是 |
String |
当前支持"2012-10-17" |
2012-10-17 |
Id |
否 |
String |
桶策略ID,桶策略的唯一标识 |
policy1 |
Statement |
是 |
Array of Objects |
桶策略描述,定义完整的权限控制。每条桶策略的Statement可由多条描述组成,每条描述是一个dict,每条描述可包含以下字段: Sid Effect Principal Action ReSource Condition |
见下级对象 |
表 Statement
参数 |
是否必填 |
参数类型 |
说明 |
示例 |
Sid |
是 |
String |
本条桶策略描述的ID |
S3PolicyId1 |
Effect |
是 |
String |
桶策略的效果,即指定本条桶策略描述的权限是接受请求还是拒绝请求。 接受请求:配置为“Allow”, 拒绝请求:配置为“Deny” |
Deny |
Principal |
是 |
Object or String |
被授权人,即指定本条桶策略描述所作用的用户,支持通配符“*”,表示所有用户。当对某个user进行授权时,Principal 格式为"AWS": "arn:aws:s3:::userId" |
* |
Action |
是 |
String or Array of string |
操作,即指定本条桶策略描述所作用的oss操作。以列表形式表示,可配置多条操作,以逗号间隔。支持通配符”“,表示该资源能进行的所有操作。常用的Action有"s3:GetObject","s3:PutObject","s3:"等 |
s3:* |
Condition |
否 |
Object |
条件语句,指定本条桶策略所限制的条件。可以通过Condition对oss资源各种策略,比如设置防盗链: "Condition": {"StringEquals":{"aws:Referer":["www.ctyun.cn"]},此时如果Effect为“Allow”,则允许来自"www.ctyun.cn"的请求;如果为“Deny”,则拒绝 |
{"NotIpAddress": {"aws:SourceIp": "54.240.143.0/24"}} |
Resource |
是 |
String or Array of string |
此条策略所作用的资源,如桶、对象等 |
["arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"] |
响应参数
参数 |
参数类型 |
说明 |
示例 |
statusCode |
Integer |
返回码 取值范围:800 成功 |
800 |
message |
String |
状态描述 |
SUCCESS |
description |
String |
状态描述,一般为中文 |
成功 |
errorCode |
String |
业务细分码(仅失败时具有此参数),为product.module.code三段式码 |
openapi.userPermission.accessFailed |
请求示例
{
"bucket": "bk1",
"regionID": "332232eb-63aa-465e-9028-52e5123866f0",
"policy": "{\"Version\": \"2012-10-17\", \"Id\": \"S3PolicyId1\", \"Statement\": [{\"Resource\": [\"arn:aws:s3:::DOC-EXAMPLE-BUCKET\", \"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*\"], \"Effect\": \"Deny\", \"Sid\": \"IPAllow\", \"Action\": \"s3:*\", \"Condition\": {\"NotIpAddress\": {\"aws:SourceIp\": \"54.240.143.0/24\"}}, \"Principal\": \"*\"}]}"
}
响应示例
{
"message": "SUCCESS",
"description": "成功",
"statusCode": 800
}
状态码
状态码 |
描述 |
800 |
表示请求成功。 |
900 |
表示请求失败。 |
错误码
errorCode 枚举值,见错误码总表