Swift v1.5.0基于Tempauth及Keystone使用S3
来源:互联网 发布:网络丑男 编辑:程序博客网 时间:2024/04/30 04:44
Swift v1.5.0基于Tempauth及Keystone使用S3
一、介绍
swift至1.5版本,原来的swift.common.client 将被移到:https://github.com/openstack/python-swiftclient,S3 兼容层将移到:https://github.com/fujita/swift3,源于文档更新比较慢,并且并不是很详细,本文将分别介绍在tempauth和keystone认证系统下如何使用S3 API访问swift,抛砖引玉欢迎交流。
当前官方最新相关文档是1.4.8的,swift的最新版本是1.6.0,在openstack-object-storage 1.4.8 下的文档
http://docs.openstack.org/trunk/openstack-object-storage/admin/content/configuring-openstack-object-storage-with-s3_api.html
另外,在openstack-compute 1.4.8下的文档,(竟然比openstack-object-storage还详细)
http://docs.openstack.org/trunk/openstack-compute/admin/content/configuring-swift-with-s3-emulation-to-use-keystone.html
二、Tempauth配置s3服务及测试
1. 基于tempauth还是比简单,在proxy上安装swift3,
2. 修改/etc/swift/proxy-server.cof
[pipeline:main]
pipeline = catch_errors healthcheck cacheratelimit swift3 tempauth proxy-logging proxy-server
[filter:swift3]
use=egg:swift3#swift3
[filter:tempauth]
use = egg:swift#tempauth
user_admin_admin = admin .admin .reseller_admin
user_test_tester = testing .admin
3.测试:
可采用perl s3url或者python boto lib,以s3url为例,使用前确保安装了libdigest-hmac-perl,修改 s3curl.pl 中my @endpoints = ('172.20.8.129');
1)列出所有buckets(即所有container):./s3curl.pl --id ' test: tester' --key testing -get - -s -v http://127.0.0.1
2)或者通过添加.s3curl 文件:
%awsSecretAccessKeys = (
# personal account
personal => {
id => 'test:tester',
key => 'testing',
});访问通过:./s3curl.pl --id personal -get - -s -v http://127.0.0.1
三、Keystone配置s3服务及测试
基本请求验证过程:
swift3: 将转换s3 headers 至swift
s3token: 验证s3 token,并获得keystone token 和tenant/user.
authtoken: 生产keystone token和获得keystone groups.
keystone: 真正的验证、允许或拒绝ACL referer等。
1. 在proxy上安装swift3,keystone
2. 修改/etc/swift/proxy-server.cof
[pipeline:main]
pipeline = catch_errors healthcheck cache ratelimit swift3 s3tokenauthtoken keystone proxy-server
[filter:swift3]
use=egg:swift3#swift3
[filter:s3token]
paste.filter_factory = keystone.middleware.s3_token:filter_factory
auth_port = 35357
auth_host = 172.20.8.129
auth_protocol = http
admin_token=ADMIN
[filter:authtoken]
paste.filter_factory = keystone.middleware.auth_token:filter_factory
service_port = 5000
service_host = 172.20.8.129
auth_port = 35357
auth_host = 172.20.8.129
auth_protocol = http
auth_token = ADMIN
admin_token = ADMIN
[filter:keystone]
paste.filter_factory = keystone.middleware.swift_auth:filter_factory
operator_roles = admin,swiftoperator
3. 创建ec2 access key、secret:(注意关键步骤,这也是和tempauth最大的不同)
keystone ec2-credentials-create –user_id 6ed9a…14dad --tenant_id991bcffb…b6e1a7
4. 测试
同tempauth,不过id、key要改为:access和secret
四、S3开发包
官方有提供,这里推荐一个java的JetS3,相关使用可参照:
http://blog.csdn.net/hitmediaman/article/details/6636402
六、疑问
创建的 ec2 access key、secret存在到那里去了?在数据库ec2_credential表中没有任何记录,其实数据库token做什么用的?使用过程中一直都没有数据记录,难道是在配置文件中指定后使用的?
五、参考附录
http://www.buildcloudstorage.com/2011/11/s3-apis-on-openstack-swift.html
https://ac.seas.harvard.edu/display/CLOUD/Generate+EC2+credentials
http://p.chmouel.com/swift-keystonelight-s3.txt
https://bugs.launchpad.net/keystone/+bug/947011
http://docs.openstack.org/developer/keystone/configuringservices.html
- Swift v1.5.0基于Tempauth及Keystone使用S3
- 关于Swift的Tempauth和Keystone
- Configuring Swift with S3 emulation to use Keystone
- 基于keystone的swift搭建
- swift+s3
- 使用Keystone认证多节点安装Swift
- 使用Keystone认证多节点安装Swift
- OpenStack组件Swift单机搭建(基于Keystone)(转)
- Swift支持Amazon S3的机制及优化
- swift+keystone 部署小记
- openstack【juno】入门 【keystone篇】六::Keystone使用及遇到问题解决办法
- Openstack swift支持s3 api
- horizon开发环境搭建及keystone使用总结
- Swift与Keystone认证问题,Permission denied: '/root/keystone-signing'
- Swift与Keystone认证问题,Permission denied: '/root/keystone-signing'
- S3 使用小结
- AWS CLI使用s3
- AWS S3的使用
- 数论学习总结2
- hdu1728逃离迷宫(水bfs)
- 设计模式之策略模式(java)
- 用C++在字符数组中输入空格的方法
- K&R学习笔记 第八章
- Swift v1.5.0基于Tempauth及Keystone使用S3
- [leetcode刷题系列]Search for a Range
- 穿越火线击杀图标下载_穿越火线击杀图标替换器下载_766火线魔盒
- 有时候 遗憾也未尝不是一种美
- 效率(大数加法)——《C++编程风格》读书笔记(五)
- 慢慢把博客迁移到自己的博客中去网址www.akmumu.com
- Hurry Up
- 五个广泛流传的对大龄程序员的误解
- Python 2.7.X安装dpkt, sendpkt, pycap