问题描述
某客户使用 COS 存储进行一些文件的存储,近期发现桶中出现了一些不是自己上传的文件、一些文件被删除了,还有一些流量的产生,经排查是因为桶开启了公有读写,任何人都可以对桶进行读写操作。
该巡检项用于检查 COS 存储桶是否开启了公有读写,若存储桶的权限是公有读写,则存储桶可能存在安全风险。
解决方案
依据最小化权限原则,为存储桶 ACL 访问控制 关闭「公有读写」选项,或者配置 桶的policy权限,按需分配存储桶读写权限,提高数据安全性。另外,值得注意的是,COS桶权限修改为私有读写时,将无法直接访问,需要携带签名。
本文旨在介绍通过最小化权限原则,配置权限管理,您也可以参考《使用腾讯云SCF实现COS费用封顶的最佳实践原创》,结合云监控、云函数,实现用量封顶限制。
配置方法:
对存储桶设置 ACL 以下示例表示允许另一个主账号对某个存储桶有读取权限:
对对象设置 ACL 以下示例表示允许另一个主账号对某个对象有读取权限:
对桶设置Policy权限
- 登录 对象存储控制台。
- 在左侧导航栏中,单击存储桶列表,选择需要添加存储桶策略的存储桶,进入存储桶。
- 单击权限管理,找到 Policy 权限设置,COS 提供添加存储桶策略的方式为 图形设置 和 策略语法,操作步骤请参见如下。您可以选其中一种方式添加存储桶策略。关于配置项的更多说明,请参见 访问策略语言概述。
- 确认配置信息无误后,单击确定或保存即可。此时使用子账号登录 COS 控制台,将只能访问策略所设定的资源范围。
图形设置
在图形设置板块,单击添加策略,在弹窗中进行策略配置。第一步选择模板,第二步配置策略。
第一步:选择模板
通过选择不同的被授权用户、资源范围组合,COS 为您提供了多种策略模板,帮助您快速配置存储桶策略。
- 被授权用户
- 所有用户(可匿名访问):当您希望为匿名用户开放操作权限时,可以选择此项,在第二步配置策略时会为您自动添加所有用户,表示为
*
。由于将列出对象列表(ListBucket)、存储桶配置权限等操作开放给匿名用户风险较高,选择本项时 COS 没有提供相应模板,如您有需要可以在后续“配置策略”步骤自行添加。 - 指定用户:当您希望为指定子账户、主账户或云服务开放操作权限时,可以选择指定用户。在第二步配置策略,您需要进一步指定具体的账户 UIN。
- 所有用户(可匿名访问):当您希望为匿名用户开放操作权限时,可以选择此项,在第二步配置策略时会为您自动添加所有用户,表示为
- 资源范围
- 整个存储桶:当您希望配置存储桶配置相关的权限,或者将资源范围指定为整个存储桶,可以选择此项,在第二步配置策略时会为您自动添加整个存储桶为资源。
- 指定目录:当您希望将资源范围限定到指定文件夹,可以选择此项。在第二步配置策略,您需要进一步指定具体的目录。选择本项时,COS 不会提供存储桶配置相关的策略模板,因为这类权限必须指定资源为整个存储桶。
- 模板:您希望授权的操作集合。
- 自定义策略(不提供预设配置):如您不需要使用模板,可选择此项,在第二步“配置策略”中根据您的需要自行添加策略。
- 其他模板:根据您选择的被授权用户和资源范围的不同组合,COS 为您提供不同的推荐模板。勾选相应的模板后,在第二步配置策略中,COS 会为您自动添加相应的操作。
说明: 模板提供的授权操作不符合您的需要,您可以在第二步"配置策略"中添加或删除授权操作。
模板说明请参见下表:
被授权用户 | 资源范围 | 策略模板 | 说明 |
---|---|---|---|
所有组合 | 自定义策略 | 对于任意被授权用户、资源范围组合,选择此模板不提供任何预设策略,您可以直接在第二步配置策略中自行添加策略。 | |
所有用户(可匿名访问) | 整个存储桶 | 只读对象(不含列出对象列表) | 对于匿名用户,COS 为您提供读文件(例如下载)、写文件(例如上传、修改)的推荐模板。COS 推荐模板不包括列出您存储桶内的所有对象、和读写权限、存储桶配置等其他敏感权限,避免开放其他多余权限提高数据安全。如您有需要,可以在后续步骤自行添加、删除动作权限。 |
读写对象(不含列出对象列表) | |||
指定目录 | 只读对象(不含列出对象列表) | ||
读写对象(不含列出对象列表) | |||
指定用户 | 整个存储桶 | 只读对象(不含列出对象列表) | 对于指定用户和整个存储桶组合,COS 提供了最多的推荐模板。除了读、写文件和列出文件,COS 还包括以下敏感权限模板,适用于给受信任的用户使用:读写存储桶与对象 ACL:获取、修改存储桶 ACL、对象 ACL。包括 GetObjectACL、PutObjectACL、GetBucketACL、PutBucketACL存储桶一般配置项:存储桶标签、跨域、回源等非敏感权限。存储桶敏感配置项:涉及存储桶策略、存储桶 ACL、删除存储桶等敏感权限,需要谨慎使用。 |
只读对象(含列出对象列表) | |||
读写对象(不含列出对象列表) | |||
读写对象(含列出对象列表) | |||
读写存储桶与对象 ACL | |||
存储桶一般配置项 | |||
存储桶敏感配置项 | |||
指定目录 | 只读对象(不含列出对象列表) | 对于指定用户和指定目录组合,COS 除了读文件(例如,下载)、写文件(例如上传、修改)之外,还提供了包含列出对象列表的权限的推荐模板。当您需要为指定用户开放指定文件夹的读、写、列出文件的权限时,推荐选择此组合。如您有需要,可以在后续步骤自行添加、删除动作权限。 | |
只读对象(含列出对象列表) | |||
读写对象(不含列出对象列表) | |||
读写对象(含列出对象列表) |
第二步:配置策略
针对您在第一步选择的被授权用户、指定目录和模板组合,COS 为您在配置策略中自动添加了对应的操作、被授权用户、资源等。其中,当您选择指定用户、指定目录时,需要在配置策略时指定具体的用户 UIN 和目录。
当 COS 提供的推荐模板不符合您的需要时,您也可以在这一步对策略内容进行调整,添加、删除被授权用户、资源和操作。配置项说明如下:
- 效力:支持选择“允许”或“拒绝”,对应策略语法中的“allow”和“deny”。
- 用户:支持添加、删除被授权用户,包括所有用户(
*
)、主账户、子账户和云服务。 - 资源:支持添加整个存储桶或指定目录资源。
- 操作:添加、删除您需要授权的操作。
- 条件:授予权限时指定条件,例如限制用户来访 IP。