开发者社区> 何昔> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

【OSS最佳实践】浅谈OSS权限控制

简介: OSS的权限控制可以分为OSS本身的权限控制及账户级别权限控制;OSS本身的权限又可以针对bucket级别及object级别进行设置;账户级别权限控制可细分为:主账户、子账户、STS临时账户对OSS的权限控制;本文将对以上内容进行展开介绍并且介绍常见问题及排查思路;
+关注继续查看

一、OSS本身的权限控制

1.权限类型

Bucket目前有三种访问权限:public-read-write,public-read和private;Object目前有四种访问权限:default,public-read-write,public-read和private;对于权限的详细介绍看访问控制中的bucket级别权限及object级别权限的内容介绍;

2.权限设定与获取

Bucket级别及object级别的权限设置及获取均可以通过API/SDK/控制台等进行操作;

API:

Put Bucket ACL
PutBucket
GetBucketACL
PutObject
PutObjectACL
GetObjectACL

SDK:

Java SDK--Bucket
JavaSDK--Object

控制台:

Bucket:控制台—>OSS-->选择具体的bucket—>基础设置
1

Object:控制台—>OSS-->选择具体的bucket-->文件管理—>点击具体文件
2

3.常见问题

1)如何批量设置objectacl

调用listobject接口遍历需要设置的object,结合putobjectacl接口进行设置即可,参考Java—管理文件 ;

2)上传object过程中如何设置object acl

Java:

ObjectMetadata meta = new ObjectMetadata();
meta.setObjectAcl(CannedAccessControlList.PublicReadWrite);

Python:

bucket.put_object('remote.txt', 'content of object', headers={'x-oss-object-acl': permission})

str permission: 可以是oss2.OBJECT_ACL_DEFAULT、oss2.OBJECT_ACL_PRIVATE、oss2.OBJECT_ACL_PUBLIC_READ或oss2.OBJECT_ACL_PUBLIC_READ_WRITE。
参考:python Git源码
PHP:

$options = array(
        OssClient::OSS_HEADERS => array(
            'Expires' => '2012-10-01 08:00:00',
            'Content-Disposition' => 'attachment; filename="xxxxxx"',
            ‘OSS_OBJECT_ACL’=>’ public-read’
    ));
    try{
        $ossClient->putObject($bucket, $object, $content, $options);
    } catch(OssException $e) {
        printf(__FUNCTION__ . ": FAILED\n");
        printf($e->getMessage() . "\n");
        return;
}

读写权限,可选值 ['default', 'private', 'public-read', 'public-read-write']
参考:PHP Git源码

3)bucket设置为私有,能否防止恶意下载

不能防止,一但对应资源的签名url对外暴露,在签名url有效期内就可以通过签名url下载对应的资源;

4)bucket私有,如何获取资源的链接

参考:https://help.aliyun.com/knowledge_detail/65898.html

5)bucket私有,获取到的资源链接是否具有时效性

有时效性,一但过期就不可被访问

6)获取到的资源链接是否可以永久有效

将bucket改为公共读/公共读写,获取到的object链接一般都是永久有效的,但是如果bucket私有要获取永久有效的链接,不支持也没意义(私有本身就是为了保证数据安全性,一定期限内可访问,一定程度上防止恶意下载,链接有效时间过长也就失去了对应的意义)。

二、账户级别权限控制

账户分为主账户、子账户及STS临时账户,其中主账户有OSS的全部权限,子账户及STS临时账户可以进行细粒度的权限划分控制,授权OSS的部分权限;
子账户创建参考:OSS细粒度权限控制—子账户创建部分的内容
STS临时账户创建:STS临时授权访问
OSS支持的权限:访问控制

1.子账户及STS临时账户的业务场景

1)子账户业务场景

子账户可以用于企业内部细粒度的OSS权限划分,如:管理员拥有OSS的全部权限;部分业务人员只拥有其业务应用的bucket的权限,其他bucket无权限;部分业务人员只有bucket的只读权限;部分业务人员只有bucket下某个目录的操作权限等;
子账户的创建便于企业内部的权限划分及回收,不建议将子账户应用于实际的业务服务端,控制客户的权限,服务端的权限控制建议自建数据库表进行权限控制;

2)临时账户业务场景

STS临时账户的定义为子账户扮演了某个角色而获取到了临时的权限,这样的账户叫做临时账户,故对应的子账户得拥有扮演对应角色的权限,而角色得拥有OSS的权限;临时账户拥有的权限是角色权限及创建临时账户policy权限的交集;
STS临时账户一般应用于移动端sdk或者web 端 ,OSS IOS/Android SDK初始化client就通过STS临时账户进行,JS web sdk可以通过STS临时账户操作OSS资源;或者如果企业客户要临时授权给第三方用户操作bucket的权限,也可以生成临时账户供其使用;临时账户具有时效性,最长3600秒过期,过期时间可控且权限粒度可控,具有较高的安全性;

2.子账户及STS临时账户调用OSS的常见问题

参考:子账户及STS临时账户调用常见问题

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Presto 访问 OSS 透明缓存加速 | 学习笔记
快速学习 Presto 访问 OSS 透明缓存加速。
122 0
访问oss出现报错:You have no right to access this object because of bucket acl
访问oss出现报错:You have no right to access this object because of bucket acl 也配置bucket权限和RAM用户权限了但是还是报错,然后看了下代码,发现到httpClient.execute(req)就直接403了 能问下大佬们这是什么问题吗,百度也没找到
2831 0
基于访问日志实现OSS监控
对象存储OSS是阿里云提供的云存储服务,能够以低成本为用户提供高可靠性的海量数据存储服务。作为基础服务,用户需要时刻关注OSS的使用状况,检测异常状态,从而及时作出响应。
197 0
数据湖实操讲解【JindoFS 缓存加速】第十三讲:Presto 访问 OSS 透明缓存加速
数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播! 扫文章底部二维码入钉群,线上准时观看~ Github链接: https://github.com/aliyun/alibabacloud-jindofs
11090 0
数据湖实操讲解【JindoFS 缓存加速】第十二讲:Spark 访问 OSS 透明缓存加速
数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播! 扫文章底部二维码入钉群,线上准时观看~ Github链接: https://github.com/aliyun/alibabacloud-jindofs
1594 0
数据湖实操讲解【OSS 访问加速】第十一讲:打开 OSS 多版本-合规和分析两不误
数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播! 扫文章底部二维码入钉群,线上准时观看~ Github链接: https://github.com/aliyun/alibabacloud-jindofs
1696 0
数据湖实操讲解【OSS 访问加速】第九讲:Presto 如何高效查询 OSS 数据
数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播! 扫文章底部二维码入钉群,线上准时观看~ Github链接: https://github.com/aliyun/alibabacloud-jindofs
2352 0
数据湖实操讲解【OSS 访问加速】第十讲:Impala 如何高效查询 OSS 数据
数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播! 扫文章底部二维码入钉群,线上准时观看~ Github链接: https://github.com/aliyun/alibabacloud-jindofs
3079 0
SLS新版告警入门-监控OSS访问日志
在业务中经常会有波峰波谷的现象,使用同一个监控阈值往往不能满足告警需求;基于SLS,可以使用日环比方式,配置SLS新版告警,来监控PV日环比是否有陡增或陡降,比如陡增10%或者陡降10%,会发出告警;本文以此为背景,来讲解如何配置告警并发出通知。
493 0
SLS Logstore模拟接入OSS访问日志和主机监控
在使用SLS的过程中,在试用一些功能时,还未接入正式的数据,往往不能很好的体验SLS功能,SLS提供了模拟接入的功能,可以对一些常见类型的日志进行模拟接入,接入后就可以看到一些mock的数据,本文介绍两种常见的模拟接入。
338 0
+关注
何昔
对OSS、CDN、MTS音视频等有一定认知
文章
问答
来源圈子
更多
作为全球云计算的领先者,阿里云为全球230万企业提供着云计算服务,服务范围覆盖200多个国家和地区。我们致力于为企业、政府等组织机构提供安全可靠的云计算服务,给用户带来极速愉悦的服务体验。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
百问百答-OSS (上)
立即下载
百问百答-OSS (下)
立即下载
阿里云 JindoFS+OSS 数据上云实战
立即下载