对象存储 OBS HeadObject权限纠葛
【摘要】 很多小伙伴在使用对象存储 时候对于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一个不存在对象时候这个时候实际是走到了列举对象的分支中,我们认为这个时候你是没有权限来探查对象名称结构的,所以会拒绝你,
在业务应用过程中可以按照下面的思维导图来进行理解:
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)