云存储攻防之COS存储桶

文摘   科学   2024-11-24 07:04   四川  

产品概述

对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据,腾讯云COS使所有用户都能使用具备高扩展性、低成本、可靠和安全的数据存储服务
COS通过控制台、API、SDK和工具等多样化方式简单、快速地接入,实现了海量数据存储和管理,通过COS可以进行任意格式文件的上传、下载和管理,腾讯云提供了直观的Web管理界面,同时遍布全国范围的CDN节点可以对文件下载进行加速

基本概念

下面通过几个名词概念,帮助您进一步了解腾讯云COS:

  • 存储桶(bucket):是对象的载体,可理解为存放对象的"容器",一个存储桶可容纳无数个对象

  • 对象(Object):是COS的基本单元,可理解为任何格式类型的数据,例如:图片、文档和音视频文件等

  • 地域(Region):是腾讯云托管机房的分布地区,COS的数据存放在这些地域的存储桶中

  • 访问域名(Endpoint):对象被存放到存储桶中,用户可通过访问域名访问和下载对象

  • 存储类型(StorageClass):指对象在COS中的存储级别和活跃程度,COS提供多种存储类型:标准存储(单AZ)、低频存储(多 AZ)、智能分层存储(多 AZ)、智能分层存储、标准存储、低频存储、归档存储、深度归档存储,每种存储类型适用于不同的业务场景,拥有不同的特性(例如:对象访问频度、访问时延等),关于不同存储类型的详细介绍,请参见存储类型概述

产品优势

稳定持久 

腾讯云对象存储(Cloud Object Storage,COS)提供数据跨多架构、多设备冗余存储,为用户数据提供异地容灾和资源隔离功能,为每一个对象实现高达99.9999999999%的数据持久性,保障您数据的耐久性高于其他存储架构

安全可靠 

COS提供防盗链功能,可屏蔽恶意来源的访问,支持数据SSL加密传输,控制每个单独文件的读写权限,结合腾讯的攻击防御系统,能够有效抵御DDoS攻击、CC攻击,保障您的业务正常运行

成本最优 

使用COS您无需传统硬件的采购、部署和运维,从而节省了运维工作和托管成本,COS支持按需按量使用,您无需预先支付任何预留存储空间的费用,通过生命周期管理进行数据降冷,进一步降低成本

简单易用 

COS提供图形化程序、命令行工具、协议工具等多种途径对存储对象进行批量操作,让使用更为简单,COS还提供能够将存储桶挂载到本地的工具,让您能像使用本地文件系统一样直接操作

接入便捷 

COS提供丰富的SDK接入工具,简单且可靠,详尽的RESTful API接入指南能够帮助您轻松通过Internet传输数据,COS提供无缝迁移工具让您的业务快速上云,为您免除了高昂的迁移成本和接入成本

服务集成 

COS支持与其他腾讯云产品联动,包括CDN加速、数据万象图片处理、音视频转码、文件预览等组件,提供「存储 + 处理」一体化解决方案,此外COS可作为大数据计算的数据池,为大数据分析与计算提供数据源;也可以结合云函数(Serverless Cloud Function,SCF)服务可以实现事件通知及自动处理

桶管理类

创建存储桶

Step 1:登录"对象存储控制台",之后在左侧导航中单击存储桶列表,进入存储桶列表页面

Step 2:单击创建存储桶,在弹出的创建存储桶对话框中配置如下信息

创建存储桶:

在弹出的创建存储桶对话框中,配置如下信息:

  • 所属地域:请选择与您业务(或用户数量)相对集中的物理区域所对应的COS地域,设置后不可修改

  • 名称:请输入自定义的存储桶名称,设置后不可修改

  • 访问权限:存储桶默认提供三种访问权限:私有读写、公有读私有写和公有读写,设置后仍可修改

  • 请求域名:自动生成,创建完存储桶后,您可以使用该域名对存储桶进行访问

Step 3:进行高级可选配置

  • 版本控制:开启后上传的同名对象将保存历史版本

  • 多AZ特性:多AZ特性是存储桶的一个标识,当您打开多AZ配置后,您的数据将存放到同个地域的不同机房中,具有同城容灾的作用,目前该特性仅适用于部分地域,例如:北京、上海、广州、新加坡地域

  • 日志存储:为您记录跟存储桶操作相关的各种请求日志

  • 存储桶标签:存储桶标签作为管理存储桶的一个标识,您可以为存储桶设置标签,便于分组管理存储桶

  • 服务端加密:目前存储桶的加密方式支持SSE-COS加密(即由COS托管密钥的服务端加密)

Step 4:确认配置

完成创建:

Step 5:在存储桶列表界面中您可以看到刚才已创建的存储桶

删除存储桶

Step 1:登录对象存储控制台,在左侧导航栏中单击存储桶列表进入存储桶列表页

Step 2:找到您需要删除的存储桶,在其右侧操作栏下单击更多>删除

Step 3:在弹出的对话框中单击确定即可删除存储桶

查询存储桶

Step 1:登录对象存储控制台,在左侧导航栏中单击存储桶列表,进入存储桶列表页可看到所有已创建的存储桶

当存储桶数量较多时您可以在存储桶列表页面右上角的搜索区选择按存储桶名称或标签查询

清空存储桶

Step 1:登录对象存储控制台,在左侧菜单栏中单击存储桶列表进入存储桶列表页面

Step 2:找到您需要清空的存储桶,单击右侧的更多>清空数据

Step 3:在弹出窗口中输入您需要删除的存储桶名称,单击确定清空

设置防盗链

为了避免恶意程序使用资源URL盗刷公网流量或使用恶意手法盗用资源给用户带来不必要的损失,腾讯云对象存储支持防盗链配置,建议您通过控制台的防盗链设置配置黑/白名单,来进行安全防护

Step 1:登录对象存储控制台,在左侧菜单栏中单击存储桶列表进入存储桶列表页面

Step 2:找到您需要设置防盗链的存储桶,单击其名称进入存储桶管理页面,单击"安全管理>防盗链设置"找到防盗链设置,单击编辑进入可编辑状态

Step 3:修改当前状态为开启,选择名单类型(黑名单或白名单),设置好相应域名,设置完成后单击保存即可,配置项说明如下

  • 黑名单:拒绝名单内的域名访问存储桶的默认访问地址,若名单内的域名访问存储桶的默认访问地址,则返回403

  • 白名单:允许名单内的域名访问存储桶的默认访问地址,若名单外的域名访问存储桶的默认访问地址,则返回403

  • 空referer:HTTP请求中header为空referer(即不带referer字段或referer字段为空

  • Referer:支持设置最多10条域名且为相同前缀匹配,每条一行,多条请换行,支持域名、IP和通配符*等形式的地址,示例如下:

    • 配置www.example.com:可限制如www.example.com/123、www.example.com.cn等以www.example.com为前缀的地址

    • 支持带端口的域名和 IP,例如www.example.com:8080、10.10.10.10:8080等地址

    • 配置*.example.com:可限制a.b.example.com/123、a.example.com等地址

设置访问权限

您可以通过对象存储控制台来设置或修改存储桶的访问权限。对象存储COS支持设置两种权限类型:

  • 公共权限:私有读写、公有读私有写和公有读写,关于公共权限的说明,请参见存储桶概述中的 权限类别

  • 用户权限:主账号默认拥有存储桶所有权限(即完全控制),另外 COS 支持添加子账号有数据读取、数据写入、权限读取、权限写入,甚至完全控制的最高权限

授权流程如下:
Step 1:登录对象存储控制台,在左侧导航栏中单击存储桶列表

Step 2:找到您需要设置或修改访问权限的存储桶,单击其存储桶名称,在存储桶配置页面单击"权限管理>存储桶访问权限",对存储桶的公共权限和用户权限(例如:添加子账号,子账号ID可在访问管理控制台查看)进行设置

设置存储加密

目前存储桶的加密方式支持SSE-COS加密(即由对象存储(Cloud Object Storage,COS)托管密钥的服务端加密),您可以通过对象存储控制台对存储桶设置服务端加密,这样可以实现对新上传到该存储桶的对象默认进行加密

A、在新创建存储桶时设置加密

在创建存储桶时,添加存储桶加密,如下图所示

B、在已创建存储桶中设置加密

在存储桶列表页面,找到您需要设置加密的存储桶,单击其名称,进入存储桶配置页面,在左侧导航栏中单击安全管理>服务端加密,在服务端加密配置项单击编辑,将当前状态修改为"开启"

设置跨域访问

您可以通过对象存储(Cloud Object Storage,COS)控制台对存储桶中的对象设置跨域访问,COS提供了响应OPTIONS请求的配置,支持多条规则,跨域访问即通过 HTTP请求从一个域去请求另一个域的资源,只要协议、域名、端口有任何一个不相同,都会被当作是不同的域,对象存储服务针对跨域访问支持响应OPTIONS请求 并根据开发者设定的规则向浏览器返回具体设置的规则,但服务端并不会校验随后发起的跨域请求是否符合规则

Step 1:登录对象存储桶控制台,在左侧导航栏中单击存储桶列表,进入存储桶列表页面

Step 2:找到需要设置跨域访问的存储桶,单击其存储桶名称进入存储桶详情页面,在左侧导航栏中选择"安全管理> 跨域访问CORS"设置,在跨域访问CORS设置栏中单击添加规则

配置信息如下:

  • 来源Origin:允许跨域请求的来源,支持添加域名和IP地址

    • 域名末尾不需要携带/

    • 可以同时指定多个来源,每行只能填写一个

    • 配置支持*,表示全部域名和IP地址都允许,不推荐

    • 支持单个具体域名,形如:http://www.abc.com

    • 支持二级泛域名,形如:http://*.abc.com ,但是每行只能有一个*号

    • 注意不要遗漏协议名http或https,若端口不是默认的80,还需要带上端口,其中IP地址的举例为http://10.10.10.10

  • 操作Methods:支持GET、PUT、POST、DELETE、HEAD,枚举允许一个或多个跨域请求方法

  • Allow-Headers:在发送OPTIONS请求时告知服务端,接下来的请求可以使用哪些自定义的HTTP请求头部,例如:x-cos-meta-md5

    • 可以同时指定多个Headers,每行只能填写一个,例如:Content-type

    • Header容易遗漏,没有特殊需求的情况下,建议设置为*,表示允许所有

    • 支持英文大小写[a-z,A-Z],不允许带有下划线_

    • 在Access-Control-Request-Headers中指定的每个Header,都必须在Allowed-Header中有对应项

  • Expose-Headers:Expose-Header里返回的是COS的常用Header,详情请参见 公共请求头部,具体的配置需要根据应用的需求确定,默认推荐填写Etag,不允许使用通配符,大小写不敏感,支持多行且每行只能填写一个

  • 超时Max-Age:设置OPTIONS请求得到结果的有效期(秒),数值必须为正整数,例如:600

  • 返回Vary: Origin:设置是否返回Vary: Origin Header,如果浏览器同时存在CORS和非CORS请求,请启用该选项,否则会出现跨域问题

Step 3:设置完成后,单击提交即可,此时您可以看到跨域访问规则已添加完成,如需修改可单击修改进行设置

设置日志管理

您可以登录对象存储(Cloud Object Storage,COS)控制台为存储桶开启日志管理功能,COS提供的日志管理功能,可以为您记录跟存储桶操作相关的各种请求日志,开启日志管理功能可以帮助您更好的管理和使用存储桶

  • 目前只有存储桶所有者拥有设置日志管理的权限,其他用户登录控制台不会显示日志管理配置项

  • 日志数据每5分钟投递一次,COS不保证日志数据100%准确性,仅作为参考,不作为计量和计费依据

  • 目前COS的日志管理功能支持的地域包括北京、上海、广州、南京、重庆、成都、香港、新加坡、多伦多、硅谷、孟买

Step 1:登录对象存储控制台,在左侧导航栏中单击存储桶列表,进入存储桶列表管理页面

Step 2:在左侧导航栏中选择"日志管理>日志存储",单击编辑将当前状态修改为"开启",在日志存储的配置项中,按照以下说明进行配置

  • 目标存储桶:开启日志管理的源存储桶和存放日志的目标存储桶必须在同一地域,COS不推荐将源存储桶设置为存放日志的存储桶 

  • 路径前缀:输入便于您查找日志的自定义路径前缀,如不填则默认为目标存储桶的根路径

  • 服务授权:您需要授权CLS产品服务向您的存储桶中投递访问日志

Step 3:确认输入信息无误后单击保存,此时日志管理功能启用完毕,之后找到您此前配置日志存放的目标存储桶,即可看到生成的日志文件

添加存储桶策略

您可以通过对象存储(Cloud Object Storage,COS)控制台为存储桶添加策略,以允许或禁止某个账号、某个来源IP(或IP段)访问策略所设定的COS资源

Step 1:登录对象存储控制台,在左侧导航栏中单击存储桶列表,进入存储桶列表页面

Step 2:找到您需要添加存储桶策略的存储桶,单击其名称进入存储桶配置页面,在左侧导航栏中单击"权限管理 > Policy权限设置",COS提供添加存储桶策略的方式为图形设置和策略语法,您可以选其中一种方式添加存储桶策略

Step 3:确认配置信息无误后,单击确定或保存即可,此时使用子账号登录COS控制台,将只能访问策略所设定的资源范围

Step 3:确认配置信息无误后,单击确定或保存即可,此时使用子账号登录COS控制台,将只能访问策略所设定的资源范围

对象管理

上传对象

您可以通过对象存储控制台,在存储桶的文件列表页面上传对象

Step 1:登录对象存储控制台,在左侧导航栏中单击存储桶列表,进入存储桶列表页面

Step 2:单击需要存储对象的存储桶,进入存储桶的文件列表页面,在文件列表中单击上传文件

Step 3:上传后的结果如下

下载对象

Step 1:登录对象存储控制台,在左侧导航栏中单击存储桶列表,进入存储桶列表页面

Step 2:单击需要存储对象的存储桶,进入存储桶的文件列表页面,在文件列表中选择要下载的文件进行下载即可

预览对象

Step 1:登录对象存储控制台,在左侧导航栏中单击存储桶列表,进入存储桶列表页面

Step 2:单击需要存储对象的存储桶,进入存储桶的文件列表页面,在文件列表中选择要预览的文件进行预览即可

删除对象

Step 1:登录对象存储控制台,在左侧导航栏中单击存储桶列表,进入存储桶列表页面

Step 2:单击需要存储对象的存储桶,进入存储桶的文件列表页面,在文件列表中选择要删除的文件进行删除即可

API 文档

腾讯云对象存储COS使用XML API,这是一种轻量级的、无连接状态的接口,调用此接口您可以直接通过HTTP/HTTPS发出请求和接受响应,实现与腾讯云对象存储后台的交互操作

API接口文档:
https://cloud.tencent.com/document/product/436/7751

七芒星实验室
未知攻,焉知防,以攻促防,共筑安全!
 最新文章