作者介绍:
杨冠军:腾讯云 COS 首席解决方案架构师,现负责腾讯云对象存储 COS 华东区域客户的解决方案架构工作。随着互联网和公有云的发 展,越来越多的企业把数据放到公有云上,COS(Cloud Object Storage)作为腾讯云的对象存储产品,提供了高容量、高可靠、低成本的存储解决方案,也使得客户把越来越多的业务数据放到了 COS 上。
在数字化时代,数据逐渐成为了公司的核心资产,存储到对象存储 COS 上的数据安全性也越来越受到了重视,COS 本身提供了一系列高安全性的防护,包括:数据加密、链路加密、权限控制、版本控制、跨地域复制等等。
结合最近互联网上出现的安全事故,我们发现 COS 的权限控制和管理是用户最容易造成疏漏的地方,本文将从 COS 的权限介绍和最佳实践等方面来对 COS 的权限管理做深入分析,希望对你理解 COS 的权限控制和有效管理 COS 的权限有所帮助。
COS 相关权限首先我们先从逻辑上介绍下 COS 权限的分类,并对每一分类详细分析。
1、访问权限
分为公共权限和用户权限两类:
1)公共权限
公共权限是 COS 最基本的权限配置,包括:继承权限、私有读写、公有读私有写和公有读写,支持的配置对象和说明如下:
权限类型 |
配置项 |
说明 |
---|---|---|
继承权限 |
虚拟目录、Object |
存储桶里对象权限的默认值,继承存储桶的权限 |
私有读写 |
Bucket、虚拟目录、Object |
仅主账号可写可读,非主账号用户(子账号、其他用户的主账号或者匿名用户)不可访问 |
公有读私有写 |
Bucket、虚拟目录、Object |
主账号可写可读,非主账号用户(子账号、其他用户的主账号或者匿名用户)可以读取,但是不可写入新数据 |
公有读写 |
Bucket、虚拟目录 |
主账号和非主账号用户(子账号、其他用户的主账号或者匿名用户)均可写可读 |
这里着重对 Bucket 支持的公有权限做下说明:
私有读写:默认创建 Bucket 的权限,这个是比较安全的权限配置,也是我们推荐的!
公有读私有写:若你需要公开 Bucket 里的数据,可以这样配置,允许任何用户不携带签名来读取 Bucket 里的 Object。
公有读写:这个是最不安全的权限配置了,相当于你把修改数据的权限都暴露了,请谨慎配置!
COS 对存储桶的公共权限配置,在存储桶的权限管理页面,参考下图:
公共权限配置
2)用户权限
用户权限,这里指的是 ACL,全称:Access Control List,即权限控制列表,它是一种比较传统的权限管理方式。
与常见的 Linux 的 ACL 有所不同,对象存储的 ACL 有自己的控制粒度和权限集合。COS 支持向每个存储桶和对象都设置关联的 ACL,支持向其他主账号、子账号和用户组,授予基本的读、写权限。
ACL 支持的控制粒度分类如下:
存储桶(Bucket)
对象键前缀(Prefix)
对象(Object)
ACL 支持的权限操作组介绍如下:
操作组 |
授予存储桶 |
授予前缀 |
授予对象 |
---|---|---|---|
READ |
列出和读取存储桶中的对象 |
列出和读取目录下的对象 |
读取对象 |
WRITE |
创建、覆盖和删除存储桶中的任意对象 |
创建、覆盖和删除目录下的任意对象 |
不支持 |
READ_ACP |
读取存储桶的 ACL |
读取目录下的 ACL |
读取对象的 ACL |
WRITE_ACP |
修改存储桶的 ACL |
修改目录下的 ACL |
修改对象的 ACL |
FULL_CONTROL |
对存储桶和对象的任何操作 |
对目录下的对象做任何操作 |
对对象执行任何操作</ |