创建一个S3风格用法的用户
ceph-admin-node@ceph-admin-node:~$ sudo radosgw-admin user create id=”harvis_rgw_user” –display-name=”Harvis Wang”
命令的输出如下(典型的json风格)
{
“user_id”: “harvis_rgw_user”,
“display_name”: “Harvis Wang”,
“email”: “”,
“suspended”: 0,
“max_buckets”: 1000,
“auid”: 0,
“subusers”: [],
“keys”: [
{
“user”: “harvis_rgw_user”,
“access_key”: “3BUK8A28042KDMXZPHEA”,
“secret_key”: “hNP0Ufx2DLLyH9wHanH3rcwiHODD3szuzlnyIBFQ”
}
],
“swift_keys”: [],
“caps”: [],
“op_mask”: “read, write, delete”,
“default_placement”: “”,
“placement_tags”: [],
“bucket_quota”: {
“enabled”: false,
“max_size_kb”: -1,
“max_objects”: -1
},
“user_quota”: {
“enabled”: false,
“max_size_kb”: -1,
“max_objects”: -1
},
“temp_url_keys”: []
}
上面的 keys 项里面子项 access_key, seceret_key 是用户合法性检验的依据。
创建一个子帐号,用于swift 风格访问ceph object cluster。
sudo radosgw-admin subuser create –uid=harvis_rgw_user –subuser=harvis_rgw_user:swift –access=full
输出如下
{
“user_id”: “harvis_rgw_user”,
“display_name”: “Harvis Wang”,
“email”: “”,
“suspended”: 0,
“max_buckets”: 1000,
“auid”: 0,
“subusers”: [
{
“id”: “harvis_rgw_user:swift”,
“permissions”: “full-control”
}
],
“keys”: [
{
“user”: “harvis_rgw_user”,
“access_key”: “3BUK8A28042KDMXZPHEA”,
“secret_key”: “hNP0Ufx2DLLyH9wHanH3rcwiHODD3szuzlnyIBFQ”
}
],
“swift_keys”: [
{
“user”: “harvis_rgw_user:swift”,
“secret_key”: “qDDbAXjCSlNSMvuqMBu0t27QRDDcyxQdC1zfIOza”
}
],
“caps”: [],
“op_mask”: “read, write, delete”,
“default_placement”: “”,
“placement_tags”: [],
“bucket_quota”: {
“enabled”: false,
“max_size_kb”: -1,
“max_objects”: -1
},
“user_quota”: {
“enabled”: false,
“max_size_kb”: -1,
“max_objects”: -1
},
“temp_url_keys”: []
}
测试 S3 用户能否访问集群,使用python-boto进行测试
首先安装python-boto
ceph-client-node@ceph-client-node:~/opensource/rgw
sudoapt−getinstallpython−boto编写访问测试python脚本(S3AccessTest.py)ceph−client−node@ceph−client−node: /opensource/rgw
cat S3AccessTest.py
import boto.s3.connection
access_key=’3BUK8A28042KDMXZPHEA’
secret_key=’hNP0Ufx2DLLyH9wHanH3rcwiHODD3szuzlnyIBFQ’
rgw_host_name=’ceph-node3’
rgw_port=7480
conn = boto.connect_s3(
aws_access_key_id=access_key,
aws_secret_access_key=secret_key,
host=rgw_host_name,
port=rgw_port,
is_secure=False,
calling_format=boto.s3.connection.OrdinaryCallingFormat(),
)
print conn
bucket = conn.create_bucket(‘my-new-bucket’)
for bucket in conn.get_all_buckets():
print “{name} {created}”.format(
name=bucket.name,
created=bucket.creation_date,
)
正常运行的测试输出
ceph-client-node@ceph-client-node:~/opensource/rgw$ python S3AccessTest.py
S3Connection:ceph-node3
my-new-bucket 2017-04-17T11:11:54.386Z
测试 swift 用户能否访问集群
需要安装 swift 工具
ceph-client-node@ceph-client-node:~/opensource/rgw$ sudo apt-get install python-setuptools
ceph-client-node@ceph-client-node:~/opensource/rgw$ sudo easy_install pip
ceph-client-node@ceph-client-node:~/opensource/rgw$ sudo pip install –upgrade setuptools
ceph-client-node@ceph-client-node:~/opensource/rgw$ sudo pip install –upgrade python-swiftclient
至此 swift 工具安装完毕
$ swift -A http://ceph-node3:7480/auth/1.0 -U harvis_rgw_user:swift -K ‘qDDbAXjCSlNSMvuqMBu0t27QRDDcyxQdC1zfIOza’ list
命令输出如下(my-new-bucket 是S3AccessTest.py脚本创建的bucket)
my-new-bucket