前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >跨帐号访问COS资源

跨帐号访问COS资源

原创
作者头像
wainsun
发布2021-02-23 15:50:25
1.4K0
发布2021-02-23 15:50:25
举报

日常工作中,经常会存在跨帐号访问COS资源的场景,例如两个主体公司,甲方和乙方,资源归属甲方,但需要乙方进行软件开发和部署,所以甲方需要授权给乙方一定的资源访问和访问管理权限。下面就介绍一下,如果跨账号来访问COS资源,并实现精细化管理。

整体的授权示意图如下:

跨帐号资源访问

下面实践开始,假设

甲方主帐号

UIN:10000****231

APPID:125****742

甲方子帐号

Asubuser

UIN:10001****462

乙方主帐号

UIN:10000****930

APPID: 125****344

乙方子帐号

Bsubuser

UIN:10001****187

首先,需要甲方帐号给乙方帐号做授权。有两种方式,在bucket权限管理中

1.使用ACL的方式做跨主账号授权

授权纬度:数据读取、数据写入、权限读取、权限写入;完全控制(包括前面四种)。

通过ACL授权主账号

2.授权Policy,进行精细化做跨主账号授权

授权纬度:用户ID,资源范围,操作行为,限制条件

通过Policy授权主账号

我们这里通过ACL给10000****930(乙方主账号)授权了“数据读取、权限读取”两个只读权限。接下来我们来验证一下。

调用列出对象(ListObjects)接口,看到返回正常请求

主账号执行ListObjects

调用设置对象ACL(PutOjectAcl)接口返回403无权限

主账号执行PutOjectAcl

到这里,我们可以通过ACL的方式授权另一个乙方主账号来访问A账号的bucket资源。且操作结果符合预期。

下一步,我们要授权乙方账号中的子帐号来访问A账号的bucket资源。

我们创建一个自定义策略,这个策略是授权子帐号管理wainsun桶的全部权限。(uid/ 这里的内容是资源拥有者的appid,后面的wainsun-125xxx 指的是资源拥有者要授权的bucket全称,bucket-appid方式)

代码语言:javascript
复制
{
    "version": "2.0",
    "statement": [{
        "effect": "allow",
        "action": "cos:*",
        "resource": "qcs::cos:ap-beijing:uid/125****742:wainsun-125****742/*"
    }]
}

授权给乙账号的子帐号Bsubuser,并执行设置对象ACL(PutOjectAcl),接口返回403

子账号执行PutOjectAcl

执行列出对象(ListObjects),正常返回。

子账号执行ListObjects

这里我们可以看到,虽然我们给Bsubuser授权的是全部权限,但是由于给“乙方主帐号”授权的为只读权限,那么Bsubuser依然被限定为只读权限。也就是说。Bsubuser的权限是授权策略和“乙方主帐号”授权策略的交集

由此,我们演示了跨帐号授权访问和跨帐号的子帐号授权方访问的方法。

BTW:文章中提到的ACL授权和policy自定义策略授权意外,后续还会支持角色授权,角色授权后,可通过授权的帐号进行控制台的登录访问,会更加方便数据的管理与维护。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档