对象存储 OBS HeadObject权限纠葛

举报
shan0304 发表于 2020/02/27 14:23:37 2020/02/27
【摘要】 很多小伙伴在使用对象存储 时候对于HeadObject的权限使用有些迷惑,主要是 对象不存在的时候为什么不返回404 Not Found 而是403 Forbidden;在此把HeadObject的权限进行一个说明首先 HeadObject的权限是没有单独的权限项控制,是和GetObject权限控制一起的;有了GetObject权限就是有了HeadObject权限;其次,这个HeadObje...

很多小伙伴在使用对象存储 时候对于HeadObject的权限使用有些迷惑,主要是 对象不存在的时候为什么不返回404 Not Found 而是403 Forbidden;在此把HeadObject的权限进行一个说明

首先 HeadObject的权限是没有单独的权限项控制,是和GetObject权限控制一起的;有了GetObject权限就是有了HeadObject权限;

其次,这个HeadObject对于不存在对象的查询还受制于ListBucket权限,因为在Head一个不存在对象时候这个时候实际是走到了列举对象的分支中,我们认为这个时候你是没有权限来探查对象名称结构的,所以会拒绝你,


在业务应用过程中可以按照下面的思维导图来进行理解:



image.png

case1:只有ListBucket权限, HeadObject的权限表现:


对象存在,返回403 Forbidden;对象不存在,返回 404 Not Found

# curl -I https://obs-practice.obs.cn-north-1.myhuaweicloud.com/7-24.jpg -k
HTTP/1.1 403 Forbidden
Server: OBS
x-obs-request-id: 0000017084B31F268056D743AD6B4BF5
x-reserved-indicator: 372
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSPch0c8EwShLsozM5s7oC9R6uCiGN8e
Date: Thu, 27 Feb 2020 03:31:36 GMT
Content-Length: 0

# curl -I https://obs-practice.obs.cn-north-1.myhuaweicloud.com/7-245.jpg -k
HTTP/1.1 404 Not Found
Server: OBS
x-obs-request-id: 0000017084B34876801E08A038832C59
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSNivzoqZN77hGR95szBmcudlr0m3L/8
Date: Thu, 27 Feb 2020 03:31:46 GMT
Content-Length: 0


case2:没有ListBucket权限, 只有GetObject的权限表现:

对象存在,返回200 OK;对象不存在,返回 403 Forbidden

# curl -I https://obs-practice.obs.cn-north-1.myhuaweicloud.com/7-24.jpg -k
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 0000017084BCC5DE800E1E111ABDF10F
Accept-Ranges: bytes
ETag: "24268db57c3c63321bef80681a74190f"
Last-Modified: Thu, 20 Feb 2020 09:31:34 GMT
Content-Type: image/jpeg
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCS3+Z3xENYBCE/Tf8LctbpFBlJbAZhS0
Date: Thu, 27 Feb 2020 03:42:08 GMT
Content-Length: 453169


# curl -I https://obs-practice.obs.cn-north-1.myhuaweicloud.com/7-245.jpg -k
HTTP/1.1 403 Forbidden
Server: OBS
x-amz-request-id: 0000017084BCDB93804B72BA260C7607
x-reserved-indicator: 372
x-amz-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSCd1FPypx6w5Wc1Bw+QLoDPZI94+JFU
Date: Thu, 27 Feb 2020 03:42:14 GMT
Content-Length: 0


case2:既有ListBucket权限, 又有GetObject的权限表现:

对象存在,返回200 OK;对象不存在,返回 404 Not Found

# curl -I https://obs-practice.obs.cn-north-1.myhuaweicloud.com/7-24.jpg -k
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 0000017084BF2263801E53AA88CDB4AC
Accept-Ranges: bytes
ETag: "24268db57c3c63321bef80681a74190f"
Last-Modified: Thu, 20 Feb 2020 09:31:34 GMT
Content-Type: image/jpeg
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSOm8CG9xaXjMBATVyiaKjfF+Bien7Bc
Date: Thu, 27 Feb 2020 03:44:43 GMT
Content-Length: 453169

# curl -I https://obs-practice.obs.cn-north-1.myhuaweicloud.com/7-245.jpg -k
HTTP/1.1 404 Not Found
Server: OBS
x-obs-request-id: 0000017084BF2E5D8050A2D0D2278509
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSjvNIiSD75/99aUOiiQTHMUuj5DzDuy
Date: Thu, 27 Feb 2020 03:44:46 GMT
Content-Length: 0


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。