对象存储如何配置Bucket的Object上传下载权限
为什么要做Bucket权限配置

Object管理是对象存储服务的基础特性,行云管家提供了Object的上传、下载、复制、移动等功能。由于行云管家基于B/S架构实现,而云厂商为了保护对象存储服务的安全性,提供了一系列的安全设置,例如:防盗链、跨域设置、访问签名,这些安全设置对于浏览器客户端会有很大影响,如果相关设置不对行云管家开放,将会影响到在行云管家进行Object的上传下载等功能。

当行云管家检测到用户未进行相关的权限配置时,在Object管理界面将出现以下提示:

因此,如果用户希望使用相关功能,就需要对Bucket做一些配置,这些配置对于不同云厂商来说是不一样的,下面就分别介绍阿里云和腾讯云是如何进行相关配置的。

阿里云OSS配置

针对阿里云OSS,点击配置提醒中的“了解更多”,我们可以看到相关的配置项:将行云管家域名添加到防盗链白名单Referer列表和跨域访问规则中,以及在您的阿里云账号中创建专门的ram子账号和角色。如果您的云账户使用的是主账号的AccessKey,那么您可以点击“一键自动配置”,让我们自动帮您完成以上配置;

如果您打算手工在阿里云控制台中修改相关设置,请按照以下指引进行操作:

1、登录阿里云OSS管理控制台

以主账号身份登录您的阿里云OSS管理控制台,选择您要配置的Bucket点击进入;

2、将行云管家域名添加到Bucket的防盗链白名单Referer列表中

点击该Bucket的“基础设置”功能;

找到“防盗链”,默认情况下这个配置是空,表示所有的域名均能访问客户的OSS资源,如果当前设置允许所有域名访问,请忽略本项修改。但如果启用了防盗链白名单,请点击“设置”,在防盗链配置中增加http://*.cloudbility.com和https://*.cloudbility.com两项内容;

请注意:您在配置防盗链白名单时,请确保您自己的域名和行云管家的域名都在Referer白名单列表中;

3、将行云管家域名添加到Bucket跨域访问规则中

仍然是在Bucket基础设置中,找到“跨域设置”,点击“设置”;

在跨域访问设置页面中,点击“创建规则”,按以下内容创建两条规则:

来源:https://*.cloudbility.com、http://*.cloudbility.com(以换行表示两个域名,如果是私有部署版,请填写自己的域名)

允许 Methods:全部勾选

允许 Headers:*

暴露 Headers:ETag、x-oss-request-id(每行一个)

缓存时间(秒):300

4、在阿里云账号中创建专门的ram子账号

如果您在其它Bucket里已经创建过ram子账号,请勿重复创建,直接忽略本步骤即可。

进入阿里云访问控制台RAM,选择“用户管理”,点击“创建用户”;

在“创建用户”窗口,用户名填写“cloudbility-bucket-admin”,显示名填写“行云管家Bucket管理员”,勾选“为该用户自动生成AccessKey”,其它字段留空;

子账户创建完成后,请注意保存该账户的AccessKey信息,在后面的步骤需要把AccessKey回填至行云管家中,其中AccessKey Secret信息将只会显示一次,如果您未保存,请在用户详情页面里的“用户AccessKey”中点击“创建AccessKey”按钮,重新创建一个。

在用户管理页面中,选择刚才创建的子账号,点击其“授权”链接,打开“编辑个人授权策略”窗口;

在“可选授权策略”中,找到“AliyunOSSFullAccess”和“AliyunSTSAssumeRoleAccess”两个策略,将其添加到“已选授权策略名称中”,点击“确定”按钮进行保存;

5、创建专门用于OSS管理的角色

和ram子账号一样,如果您在其它Bucket里已经创建过角色,请勿重复创建,直接忽略本步骤即可。

在阿里云访问控制台RAM中,选择“角色管理”,点击“新建角色”;

在“创建角色”向导第一步中,选择角色类型为:用户角色;

选择云账号为:当前子账号,受信云账号ID保持默认,点击“下一步”;

角色名称为:cloudbility-bucket-role,备注为:行云管家Bucket管理角色,点击“创建”;

在创建成功界面中,点击其“授权”链接,进入该角色的“角色授权策略”页面;

在一个新创建的角色中,授权策略默认为空,点击其“编辑授权策略”按钮,打开“编辑角色授权策略”窗口,为该角色进行授权;

在“可选授权策略”中,找到“AliyunOSSFullAccess”策略,将其添加到“已选授权策略名称中”,点击“确定”按钮进行保存;

点击进入已创建好的角色基本信息页面,找到“Arn”,保存该信息,在后面的步骤需要将其回填至行云管家中;

6、将ram子账号的AccessKey和角色信息填入行云管家中

请确保您在前面的操作中,已将创建的子账号AccessKey信息和角色Arn信息保存好,点击“点击此处进行配置”,弹出配置窗口;

在配置窗口中,将子账号AccessKey和角色Arn信息填入,点击“确定”,通过校验后,即保存成功;

相关配置完成后,系统将不再对Object管理功能进行提醒,用户可正常使用Object的相关管理功能;

腾讯云COS配置

针对腾讯云COS,我们需要将行云管家域名添加到防盗链白名单Referer列表和跨域访问规则中,具体操作请见以下指引:

1、登录腾讯云COS控制台

登录您的腾讯云COS控制台Bucket列表,点击您要配置的Bucket名称进入;

2、将行云管家域名添加到Bucket的防盗链白名单Referer列表中

点击该Bucket的“基础设置”功能;

找到“防盗链设置”,默认情况下这个配置是“已关闭”,表示所有的域名均能访问客户的COS资源,如果当前设置是关闭或黑名单(行云管家域名不能在黑名单中),请忽略本项修改;

但如果启用了防盗链白名单,请在防盗链配置中增加*.cloudbility.com后,点击保存按钮;

请注意:您在配置防盗链白名单时,请确保您自己的域名和行云管家的域名都在Referer白名单列表中;

3、将行云管家域名添加到Bucket跨域访问规则中

仍然是在Bucket基础设置中,找到“跨域访问CORS设置”,如果当前状态是“已开启”,请点击“编辑”;

在编辑状态下,点击“新增规则”,按以下内容创建一个规则:

来源Origin:*.cloudbility.com(如果是私有部署版,请填写自己的域名)

操作 Methods:全部勾选

Credentials:False

Allow-Headers:*

Expose-Headers:ETag

超时 Max-Age:300