wps栏目上的运服务怎么没有了
888
2022-05-29
本想介绍一下StringToSign的生成规则,但OBS官网已有详述,因此本章介绍使用场景。
https://support.huaweicloud.com/api-obs/zh-cn_topic_0100846721.html
只要用户想要限制对数据的访问,那么就需要进行身份认证。换句话说:除非这个数据就是为了给全世界看的,否则都需要做身份认证。
具体到OBS,数据也分为内部数据和租户数据:
· 内部数据包括:配置类数据、运维类数据、运营类数据、监控类数据等。
· 租户数据包括:桶/对象数据、桶/对象元数据、日志数据等。
OBS除了给互联网租户提供服务之外,同时也给华为云内部服务提供存储能力,因此涉及数据的访问场景分为如下:
· OBS内部数据访问场景
· 华为云内部数据访问场景
· 租户数据访问场景
OBS内部数据访问场景
OBS运行过程中,需要完成复杂的解决方案场景,在这些场景中,OBS同样有访问数据的诉求:
· 话单、日志等数据存储
OBS产生的话单、日志数据会存储在内部租户的特定桶中,由特定的AK/SK访问,AK/SK的规则和租户规则相同。区别在于内部租户的AK/SK由OBS自行管理;
租户的请求会产生访问日志和话单,这些日志和话单分散在各个集群节点,节点将按各种触发条件将数据存储到内部桶中。用于安全审计和计费。
· 对象复制等需要跨集群、跨Region数据访问功能
因OBS跨Region/AZ的部署形式,会出现多种类型的跨Region/AZ访问请求,这些请求由用户发起,但完成功能需要内部集群相互配合,配合的过程中,也需要进行身份认证。凭证和上一场景相同。
用户发起复制请求,想要把位于Region2桶bucket2中的obj002对象,复制为位于Region1桶bucket1的obj001对象。
Region1中的OBS节点,会以内部请求的形式访问Region2的OBS节点,并将获取到的对象数据写入到Region1中的桶。
华为云内部数据访问场景
为保证数据的高可靠性,华为云内部服务通常也会将OBS作为数据中转设备或最终的数据存储基础设施。同时,解决方案场景下,OBS也将作为其中的组成部分,和其它服务共同组成行业解决方案。
· 云硬盘备份
为云硬盘提供在线备份,通过备份快速恢复数据,保证业务安全可靠。OBS作为存储数据的终点。提供最终的可靠性保证(11个9)。
通常华为云内部服务在IAM会有自己的特定租户,访问OBS将会通过这部分租户的凭证发起请求,而OBS针对这些租户的处理流程大致和普通租户相同。
· 大数据分析
OBS作为存储数据的中转和终点,快速、可靠传递和存储数据。
租户数据访问场景
租户数据访问是OBS的核心业务场景,按照业务场景大致归类为如下3类:
· 匿名访问
租户可以通过设置桶为公共读的方式,将数据在互联网公布,此时,任何人都可以通过特定的URL访问到该桶的数据。比如:企业门户网站、公开文档等。
顾名思义,匿名访问场景下访问者不需要携带任何凭证信息。直接通过HTTP GET URL的形式就可以访问。
通常情况下,如果用户HTTP REQUEST中没有携带“Authorization”头域,则认为本次是匿名访问,匿名访问不会进行身份认证,请求将进入权限判断,如果请求访问的数据不是“公共读”的数据,则请求会被拒绝。
· 临时认证
某些场景下,用户访问OBS时没有或不适合使用永久凭证,那么此时可以使用临时凭证进行认证。比如:租户对他自己的客户提供服务,但是这个服务需要他的客户直接访问OBS。
举一个较实际的例子:
A公司是一个游戏公司,开发的手游风靡全国。A公司将游戏服务器端部署在了华为云ECS,并使用OBS存储数据。时间到了7月,A公司为了增强游戏可玩性,发布了新补丁并将补丁推送到了OBS。A公司希望他的客户可以直接访问OBS下载补丁,因为这样可以省去ECS做中转,防止服务器因流量过大而崩溃。但不希望任何人都能下载这个补丁,因为下载补丁会产生流量和访问次数费用。
此时,可以使用临时凭证,服务器端为每个客户端申请限时的临时凭证,并将凭证返回给手机端,手机端使用该凭证直接访问OBS获取升级补丁。
具体流程如下:
1、 用户使用SK和String To Sign生成签名Signature;
2、 将Signature和AK合并为Authorization头域;
3、 STS Token作为临时凭证直接作为x-amz-security-token头域;
4、 OBS接收到本次请求后,将Authorization头域拆分为Signature和AK;
5、 按照String To Sign的规则在OBS服务器端再计算一次;
6、 将AK和STS Token传递给IAM Server;
7、 IAM Server解析后返回SK,该SK即为用户签名时使用的SK;
8、 使用SK和String To Sign再计算一次签名Signature;
9、 比较Signature1和Signature,如果相等则Allow,否则Deny。
注1:STS Token由IAM生成,在申请临时凭证时,会随响应返回,所以,临时凭证其实包含3个组成部分:AK/SK/STS Token,这也是和标准凭证的主要区别。
注2:STS Token起什么作用呢?主要是解决IAM存储瓶颈问题。设想这样一个场景,一个正常用户频繁申请临时凭证,而IAM为了后续能够解析AK/SK,必须在本地数据库存储这个临时AK/SK,每次访问就是一条AK/SK记录,临时凭证的不重复和接口调用不受限的特性,会导致IAM数据库无限膨胀下去。为了解决这个问题,STS Token应运而生,IAM会将SK信息直接加密放到STS Token中,IAM自身不维护任何持久化信息。解析时,IAM只需要将STS Token解密(当然,也只有IAM可以解密这个数据。),然后把解密后的SK返回给调用方即可。这也是上述步骤为什么要传入STS Token的原因。
· 标准认证
主要的OBS使用场景,如果用户持有AK/SK直接访问OBS,都属于该场景。
具体的应用场景可参考:
https://www.huaweicloud.com/product/obs.html
具体流程如下:
1、 用户使用SK和String To Sign生成签名Signature;
2、 将Signature和AK合并为Authorization头域;
3、 OBS接收到本次请求后,将Authorization头域拆分为Signature和AK;
4、 按照String To Sign的规则在OBS服务器端再计算一次;
5、 将AK传递给IAM Server;
6、 IAM Server解析后返回SK,该SK即为用户签名时使用的SK;
7、 使用SK和String To Sign再计算一次签名Signature;
8、 比较Signature1和Signature,如果相等则Allow,否则Deny。
总结
讲了这么多场景,可以看出,无论什么样的场景,最终其实还是归结到HMAC算法结果的比较。场景的区别在于:
· 凭证由谁维护(OBS维护内部数据访问场景下的凭证,其余由IAM维护)
· 凭证如何获取(临时凭证通常由租户提供给租户的客户,标准凭证由IAM提供给租户)
· 凭证如何解析(临时凭证由IAM解密后返回,标准凭证由IAM从数据库查询)
所以,若分析安全风险,除了算法本身的弱点之外,还需要考虑场景使用的弱点。类似于登录口令再复杂,如果用户写到纸上贴到墙上,那安全性同样无法保证。下一章节将分析OBS身份认证的攻击场景。
对象存储服务
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。