开发者社区> 何昔> 正文
阿里云
为了无法计算的价值
打开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临时账户调用常见问题

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

相关文章
Alibaba Cloud Lens for OSS最佳实践
——其冀 阿里云智能产品专家
0 0
Hive 数仓迁移 JindoFS/OSS 数据湖最佳实践
Hive 数仓是大多数迁移客户都会遇到的场景。在迁移过程中,不建议同时在新集群进行业务升级(比如从 Hive on MR 迁移到 Hive on Tez 或 Spark SQL等),这些业务升级可以在迁移完成后进行。1. 元数据同步Hive 元数据是对于 Hive 表来说非常关键,除了表结构信息,里面还记录着 Hive 表与底层文件系统的关联关系,许多上层服务都依赖 Hive 元数据提供服务。a.
0 0
OSS加速器最佳实践-总述篇
OSS加速器最佳实践(总述篇)本最佳实践提供OSS加速器相关的信息和适合的场景,面向对oss和数据湖相关技术有一定了解的开发者。     大家可以通过这俩篇先做一些了解相关文档:《配置OSS加速器》https://help.aliyun.com/document_detail/190726.html《OSS加速器介绍》https://developer.aliyun.com/article/780
0 0
云速搭部署OSS及资源包最佳实践
本实践通过云速搭设计一个 OSS 的架构,通过 OSS 提供的路径可以下载相应的文件。
0 0
使用MaxCompute LOAD命令批量导入OSS数据最佳实践—STS方式LOAD开启KMS加密OSS数据
MaxCompute使用load overwrite或load into命令将外部存储的数据(如:oss)导入到MaxCompute前的授权操作。
0 0
对象存储 OSS 教育行业最佳实践,稳定且高性价比的存储平台
对象存储 OSS 教育行业最佳实践,稳定且高性价比的存储平台
0 0
基于湖仓一体架构使用MaxCompute对OSS湖数据分析预测最佳实践
本篇最佳实践先创建EMR集群作为数据湖对象,Hive元数据存储在DLF,外表数据存储在OSS。然后使用阿里云数据仓库MaxCompute以创建外部项目的方式与存储在DLF的元数据库映射打通,实现元数据统一。最后通过一个毒蘑菇的训练和预测demo,演示云数仓MaxCompute如何对于存储在EMR数据湖的数据进行加工处理以达到业务预期。
0 0
最佳实践:使用阿里云CDN加速OSS访问
用户直接访问OSS资源,访问速度会受到OSS的下行带宽以及Bucket地域的限制。如果通过CDN来访问OSS资源,带宽上限更高,并且可以将OSS的资源缓存至就近的CDN节点,通过CDN节点进行分发,访问速度更快,且费用更低。如果采用动静分离的网站架构,就能够解决海量用户访问的性能瓶颈问题。
0 0
【最佳实践】大数据时代,通过OSS快照迁移Elasticsearch数据
本文以将自建Elasticsearch迁移至阿里云Elasticsearch中为例,为您介绍通过OSS快照迁移数据的具体方法。
0 0
+关注
何昔
对OSS、CDN、MTS音视频等有一定认知
文章
问答
来源圈子
更多
作为全球云计算的领先者,阿里云为全球230万企业提供着云计算服务,服务范围覆盖200多个国家和地区。我们致力于为企业、政府等组织机构提供安全可靠的云计算服务,给用户带来极速愉悦的服务体验。
+ 订阅
相关文档: 迁云实施服务
文章排行榜
最热
最新
相关电子书
更多
百问百答-OSS (上)
立即下载
百问百答-OSS (下)
立即下载
阿里云 JindoFS+OSS 数据上云实战
立即下载