Bucket权限管理
更新时间:2022-10-27
设置Bucket的访问权限
如下代码将Bucket的权限设置为了private:
bos_client.set_bucket_canned_acl(bucket_name, canned_acl.PRIVATE)
其中canned_acl中包含三个参数:PRIVATE
、PUBLIC_READ
、PUBLIC_READ_WRITE
,它们分别对应的相关权限为:private
、public-read
、public-read-write
。关于权限的具体内容可以参考《BOS API文档 使用CannedAcl方式的权限控制》。
设置指定用户对Bucket的访问权限
BOS提供set_bucket_acl方法来实现指定用户对Bucket的访问权限设置,可以参考如下代码实现:
bos_client.set_bucket_acl(
bucket_name,
[{'grantee': [{'id': 'b124deeaf6f641c9ac27700b41a350a8'},
{'id': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'}],
'permission': ['FULL_CONTROL'],
'resource':['your_bucket_name/prefix/*']
}])
注意:
id
为用户ID,您可在用户信息中查看。permission
中的权限设置包含三个值:READ
、WRITE
、FULL_CONTROL
,它们分别对应相关权限。具体内容可以参考《BOS API文档 上传ACL文件方式的权限控制》。set_bucket_acl()
的第二个参数acl不需要包含"accessControlList"字段,已经封装到接口中。
设置更多Bucket访问权限
- 通过设置referer白名单方式设置防盗链
myAcl =[{"grantee":[{"id": "*"}],
"permission":["FULL_CONTROL"],
"condition":{
"referer":{"stringEquals":["http://test/index"]}
}
}]
bos_client.set_bucket_acl(bucket_name, myAcl)
- 限制客户端IP访问,只允许部分客户端IP访问
myAcl = [{"grantee":[{"id":"*"}],
"permission":["FULL_CONTROL"],
"condition":{"ipAddress":["192.170.0.6"]}
}]
bos_client.set_bucket_acl(bucket_name, myAcl)
设置STS临时token权限
对于通过STS方式创建的临时访问身份,管理员也可进行专门的权限设定。 STS的简介及设置临时权限的方式可参见临时授权访问。
使用BOS Python SDK设置STS临时token权限可参考通过sts方式访问BOS
查看Bucket的权限
如下代码可以查看Bucket的权限:
response = bos_client.get_bucket_acl(bucket_name)
bos_client.set_bucket_acl(bucket_name, response.access_control_list)
get_bucket_acl
方法返回的解析类中可供调用的参数有:
参数 | 说明 |
---|---|
owner | Bucket owner信息 |
+id | Bucket owner的用户ID |
access_control_list | 标识Bucket的权限列表 |
+grantee | 标识被授权人 |
++id | 被授权人ID |
+permission | 标识被授权人的权限 |
+resource | ACL配置项所影响的资源 |