用户签名验证
COS通过使用AccessKeyId/AccessKeySecret对称加密的方法来验证某个请求的发送者身份。AccessKeyId用于标识用户,AccessKeySecret是用户用于加密签名字符串和COS用来验证签名字符串的密钥,其中AccessKeySecret必须保密,只有用户和COS知道。AccessKey根据所属账号的类型有所区分:
- 账户AccessKey:每个账号提供的AccessKey拥有对资源的完全控制权限;
- IAM账户:IAM账户由账号授权生成,所提供的AccessKey拥有对特定资源的特定操作权限(尚未开放);
- STS临时访问凭证:由账号或IAM账号生成,所提供的AccessKey在限定时间内拥有对特定资源的特定操作权限,过期权限收回(尚未开放)。
当用户想以个人身份向COS发送请求时,需要首先将发送的请求按照COS指定的格式生成签名字符串。然后使用AccessKeySecret对签名字符串进行加密产生验证码,并将请求连同验证码一起发送给COS。COS收到请求后,会通过AccessKeyId找到对应的AccessKeySecret,以同样的方法提取签名字符串和验证码,如果计算出来的验证码和提供的一样即认为该请求是有效的;否则,COS将拒绝处理此次请求,并且返回HTTP 403错误。