一般来讲,对OBS 服务访问者的分类如下:
按访问者的角色可分为所有者访问和第三方用户访问。
按访问者的身份信息可分为匿名访问和带签名访问。
匿名访问是指请求的HTTP Header中没有携带任何与身份相关的信息的访问方式。带签名访问是指请求的HTTP Header中携带AccessKey和SecretKey签名相关信息的访问方式。OBS 通过使用 AccessKey 和SecretKey对称加密的方法来验证某个请求的发送者身份。AccessKey用于标识用户,SecretKey是用户用于加密签名字符串和 OBS 用来验证签名字符串的密钥,其中 SecretKey必须保密。
对于 OBS 来说,AK、SK的来源有Bucket 的所有者(主账户或子账户)申请的 AK、SK,及被 Bucket 的所有者通过 RAM 授权给第三方请求者的 AK、SK。您可以在OBS的控制台中查看存储桶的AK和SK,具体方式请参考查询存储空间信息。
访问者身份鉴权是指对带签名访问者进行身份鉴权。通过请求的HTTP Header中的签名信息来鉴别是否为桶所有者或被授权者,只有身份鉴权通过才可以允许相关访问请求。
关于OBS访问权限控制流程,如下图示,OBS收到用户请求后,会首先对存储空间的读写权限进行验证: