Ceph Reef(18.2.X)之对象访问策略配置

news/2024/10/2 10:40:54

                                              作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

目录
  • 一.对象存储概述
    • 1.对象存储的访问方式
    • 2.基于http方式访问对象存储注意事项
    • 3.查看存储桶默认策略
  • 二.定制策略
    • 1.定制访问策略文件
    • 2.应用访问策略
    • 3.应用跨域规则【可选操作】
  • 三.对象存储的其他访问方式
    • 1.基于s3cmd方式访问
    • 2.基于swift方式访问
    • 3.基于python程序访问

一.对象存储概述

1.对象存储的访问方式

如上图所示,前面我们学习基于s3cmd和swift均可以使用命令后正常访问对象存储网关,但作为OSS对象存储,也支持基于"http|https"方式来访问对象。如下图所示,默认情况下WebUI是拒绝访问的,因为我们需要通过专用的访问策略进行功能验证。对于OSS存储来说,我们资源对象访问策略,它是以存储桶"BACKUET"为基础单位,安全策略等粒度有些大。参考链接:https://docs.ceph.com/en/reef/radosgw/https://docs.ceph.com/en/reef/radosgw/bucketpolicy/

2.基于http方式访问对象存储注意事项

- 资源对象的访问方式:http还是https,依赖于rgw的基本配置。如果是s3的话,需要在配置文件设定的时候,启用https功能。- 资源对象的访问控制:通过定制策略的方式来实现,比如上传策略,下载策略,修改策略等。- 资源对象的跨域问题:通过定义cors的方式来实现。对于互联网中的资源对象,浏览器在访问的时候,默认会有跨域的安全限制。比如"localhost"和"127.0.0.1"浏览器默认并不是同一个主机,尽管ip和域名可以进行相互解析。如果想要启用域名和ip相同的话,则需要解决跨域问题,这是作为开发的基础知识点。- 资源对象在浏览器端端缓存机制:rgw端基本配置定制,因为我们对象存储大多是不经常变动的数据,比如图片,视频,音乐,文件等。推荐阅读:https://docs.ceph.com/en/latest/radosgw/https://docs.ceph.com/en/latest/radosgw/bucketpolicy/https://docs.ceph.com/en/latest/radosgw/s3/

3.查看存储桶默认策略

[root@ceph141 ~]# swift list
yinzhengjie-rgw
[root@ceph141 ~]# 
[root@ceph141 ~]# s3cmd info s3://yinzhengjie-rgw
s3://yinzhengjie-rgw/ (bucket):Location:  defaultPayer:     BucketOwnerExpiration Rule: nonePolicy:    noneCORS:      noneACL:       尹正杰: FULL_CONTROL
[root@ceph141 ~]# 
[root@ceph141 ~]# swift stat yinzhengjie-rgwAccount: v1Container: yinzhengjie-rgwObjects: 3Bytes: 983Read ACL:Write ACL:Sync To:Sync Key:X-Timestamp: 1725035977.26537
X-Container-Bytes-Used-Actual: 12288X-Storage-Policy: default-placementX-Storage-Class: STANDARDLast-Modified: Fri, 30 Aug 2024 16:39:37 GMTX-Trans-Id: tx00000fdf1f164b67a4cd0-0066d1fa85-12179-defaultX-Openstack-Request-Id: tx00000fdf1f164b67a4cd0-0066d1fa85-12179-defaultAccept-Ranges: bytesContent-Type: text/plain; charset=utf-8Connection: Keep-Alive
[root@ceph141 ~]# 

二.定制策略

1.定制访问策略文件

[root@ceph141 ~]# cat yinzhengjie-policy.json
{"Statement": [{"Effect": "Allow","Principal": "*","Action": ["s3:GetObject"],"Resource": "*"}]
}
[root@ceph141 ~]# 相关参数说明:Statement:表示定义属性。Effect:指定权限,比如: Allow,Deny等。Principal:主体人,主要针对哪些用户,此处为指定"*"表示所有用户,看官网的意思是可以指定具体的用户进行策略配置。Action:	对资源对象可以支持的操作,详情请参考官网。https://docs.ceph.com/en/latest/radosgw/bucketpolicy/#limitationsResource:策略管理等资源对象,其中"*"表示的是所有资源。如果想要匹配部分对象,可以使用列表的方式,比如: ["*.jpg","*.png"]。

2.应用访问策略

	1.应用访问策略
[root@ceph141 ~]# cat /root/yinzhengjie-policy.json 
{"Statement": [{"Effect": "Allow","Principal": "*","Action": "s3:GetObject","Resource": "*"}]
}
[root@ceph141 ~]# 
[root@ceph141 ~]# s3cmd setpolicy /root/yinzhengjie-policy.json s3://yinzhengjie-rgw
s3://yinzhengjie-rgw/: Policy updated
[root@ceph141 ~]# 2.检查访问策略是否生效
[root@ceph141 ~]# s3cmd info s3://yinzhengjie-rgw  # 注意观察Policy字段
s3://yinzhengjie-rgw/ (bucket):Location:  defaultPayer:     BucketOwnerExpiration Rule: nonePolicy:    {"Statement": [{"Effect": "Allow","Principal": "*","Action": "s3:GetObject","Resource": "*"}]
}CORS:      noneACL:       尹正杰: FULL_CONTROL
[root@ceph141 ~]# 
[root@ceph141 ~]# swift stat yinzhengjie-rgw  # 通过swift工具观察存储桶状态貌似没啥变化。Account: v1Container: yinzhengjie-rgwObjects: 3Bytes: 983Read ACL:Write ACL:Sync To:Sync Key:X-Timestamp: 1725035977.26537
X-Container-Bytes-Used-Actual: 12288X-Storage-Policy: default-placementX-Storage-Class: STANDARDLast-Modified: Sat, 31 Aug 2024 00:05:26 GMTX-Trans-Id: tx00000071b010f5f594445-0066d25e64-14897-defaultX-Openstack-Request-Id: tx00000071b010f5f594445-0066d25e64-14897-defaultAccept-Ranges: bytesContent-Type: text/plain; charset=utf-8Connection: Keep-Alive
[root@ceph141 ~]# 3.客户端测试访问,比如在mac终端测试效果如下【浏览器访问的话会直接下载host文件,注意此处我的协议为http哈~】
bogon:~ yinzhengjie$ curl http://ceph142/yinzhengjie-rgw/etc/hosts
127.0.0.1 localhost
127.0.1.1 yinzhengjie# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
10.0.0.141 ceph141
10.0.0.142 ceph142
10.0.0.143 ceph143
172.30.100.142 www.yinzhengjie.com
bogon:~ yinzhengjie$  

3.应用跨域规则【可选操作】

	1.定义跨域规则文件
[root@ceph141 ~]# cat > yinzhengjie-rules.xml <<EOF
<CORSConfiguration><CORSRule><ID>Allow everything</ID><AllowedMethod>GET</AllowedMethod><AllowedMethod>HEAD</AllowedMethod><AllowedMethod>PUT</AllowedMethod><AllowedMethod>POST</AllowedMethod><AllowedMethod>DELETE</AllowedMethod>    <AllowedOrigin>*</AllowedOrigin><AllowedHeader>*</AllowedHeader>    <MaxAgeSeconds>30</MaxAgeSeconds>    </CORSRule>
</CORSConfiguration>
EOF
[root@ceph141 ~]# 2.应用跨域规则
[root@ceph141 ~]# s3cmd setcors yinzhengjie-rules.xml s3://yinzhengjie-rgw3.查看存储桶信息
[root@ceph141 ~]# s3cmd info s3://yinzhengjie-rgw
s3://yinzhengjie-rgw/ (bucket):Location:  defaultPayer:     BucketOwnerExpiration Rule: nonePolicy:    {"Statement": [{"Effect": "Allow","Principal": "*","Action": "s3:GetObject","Resource": "*"}]
}CORS:      <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><CORSRule><ID>Allow everything</ID><AllowedMethod>GET</AllowedMethod><AllowedMethod>PUT</AllowedMethod><AllowedMethod>DELETE</AllowedMethod><AllowedMethod>HEAD</AllowedMethod><AllowedMethod>POST</AllowedMethod><AllowedOrigin>*</AllowedOrigin><AllowedHeader>*</AllowedHeader><MaxAgeSeconds>30</MaxAgeSeconds></CORSRule></CORSConfiguration>ACL:       尹正杰: FULL_CONTROL
[root@ceph141 ~]# 

三.对象存储的其他访问方式

1.基于s3cmd方式访问

推挤阅读:https://www.cnblogs.com/yinzhengjie/p/18377291#三s3cmd工具上传视频访问验证

2.基于swift方式访问

推荐阅读:https://www.cnblogs.com/yinzhengjie/p/18389709

3.基于python程序访问

推挤阅读:	https://www.cnblogs.com/yinzhengjie/p/18387824

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/55491.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

unity学习笔记(二)

2D渲染 Camera相机设置 Projection(投影方式):修改为Orthographic(正交) Size:改变相机的视野大小 Sprite “精灵图”一词首次作为图形术语出现,是在德州仪器的9918(A)视频显示处理器上。使用“精灵图”作为术语,是因为精灵图并不是帧缓冲中位图数据的一部分,而是“悬…

c#学习笔记(一)

基础语法 文档注释&代码块/// <summary>/// 待机/// </summary>#region 物体移动sq.transform.Translate(new Vector3(5,0,0));#endregion字符串格式化输出 使用 $ 可进行格式化输出 C# string 字符串的前面可以加 @(称作"逐字字符串")将转义字符(…

Linux 中实现按照每一列的类别计算 指定列值的平均数

001、[root@PC1 test]# ls a.txt [root@PC1 test]# cat a.txt ## 测试数据如下 a 8 a 3 b 2 e 2 d 10 b 3 b 7 e 4 [root@PC1 test]# awk {ay[$1] += $2; ay2[$1]++} END {for (i in ay) …

广受欢迎文档管理系统有哪些?这10款不容错过

比较好用的 10 款文档管理系统推荐:PingCode、Worktile、语雀、联想Filez企业网盘、360亿方云、DocuPhase 、M-Files 、LogicalDOC、Revver、Box。在现代企业环境中,管理大量文档和数据往往让人头疼。不仅需要维护信息的更新和可访问性,还要确保安全和遵守法规。这使得选择一…

Web刷题之polarctf靶场(1)

PolarCTF 1.XFF打开靶场发现需要ip为1.1.1.1的用户才行, 打开BurpSuite进行抓包并对数据包进行修改,根据题目XFF提示flag{847ac5dd4057b1ece411cc42a8dca4b7}对此题所考察的知识进行一个扩展(对于构造本地用户语句) X-Forwarded-For:127.0.0.1X-Forwarded:127.0.0.1Forwarded-F…

丽水人社公需科目刷课脚本-JavaScript编写

脚本 学习网站:rlzy.lshrss.cn/Service/Index 脚本地址:丽水市专业技术人员继续教育公需科目-刷课脚本 教程 1.插件安装(以Microsoft Edge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以点击屏幕右上角三个点,图示位置,然后点击扩展点击获取扩展搜索…

【工具分享】红队重点资产指纹识别 -- P1finger -0.02(最新版本)

工具介绍: P1finger 红队行动下的重点资产指纹识别工具。P1finger 是一个重点资产指纹识别的工具,旨在通过HTTP请求特征来识别目标系统。其主要特点包括: 语言和实现: 语言:使用Go语言(Golang)实现。 目的:强调跨平台能力和易于集成。 指纹库和检测策略: 指纹库:通过…

四川省专业技术人员继续教育网刷课脚本-JavaScript编写

脚本 学习网站:四川省专业技术人员继续教育网 edu.scjxjypx.com/ 脚本地址: chinahrt.com-刷课脚本 教程 1.插件安装(以Microsoft Edge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以点击屏幕右上角三个点,图示位置,然后点击扩展点击获取扩展搜索T…