On 07/16/2014 07:58 AM, lakshmi k s wrote:
Hello Ceph Users -

My Ceph setup consists of 1 admin node, 3 OSDs, I radosgw and 1 client.
One of OSD node also hosts monitor node. Ceph Health is OK and I have
verified the radosgw runtime. I have created S3 and Swift users using
radosgw-admin. But when I try to make any S3 or Swift calls, everything
falls apart. For example -
Python script -
import boto
import boto.s3.connection
access_key = '123'
secret_key = '456'

Are you sure the access and secret key are correct? See my lines a bit below.

conn = boto.connect_s3(
aws_access_key_id = access_key,
aws_secret_access_key = secret_key,
host = 'ceph-gateway.ex.com',
is_secure=False,
calling_format = boto.s3.connection.OrdinaryCallingFormat(),
)
for bucket in conn.get_all_buckets():
print "{name}\t{created}".format(
name = bucket.name,
created = bucket.creation_date,
)
Client error-
Traceback (most recent call last):
   File "dconnect.py", line 18, in <module>
     for bucket in conn.get_all_buckets():
   File "/usr/lib/python2.7/dist-packages/boto/s3/connection.py", line
387, in get_all_buckets
     response.status, response.reason, body)
boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden
<?xml version="1.0"
encoding="UTF-8"?><Error><Code>AccessDenied</Code></Error>
Radosgw log
2014-07-15 22:48:15.769125 7fbb85fdb7001 ====== starting new request
req=0x7fbbe910b290 =====
2014-07-15 22:48:15.769443 7fbb85fdb7002 req 17:0.000334::GET
http://ceph-gateway.ex.com/::initializing
2014-07-15 22:48:15.769998 7fbb85fdb700 10 s->object=<NULL> s->bucket=<NULL>
2014-07-15 22:48:15.770199 7fbb85fdb7002 req 17:0.001084:s3:GET
http://ceph-gateway.ex.com/::getting op
2014-07-15 22:48:15.770345 7fbb85fdb7002 req 17:0.001231:s3:GET
http://ceph-gateway.ex.com/:list_buckets:authorizing
2014-07-15 22:48:15.770846 7fbb85fdb700 20 get_obj_state:
rctx=0x7fbbc800f750 obj=.users:I420IKX56ZP09BTN4CML state=0x7fbbc8007c08
s->prefetch_data=0
2014-07-15 22:48:15.771314 7fbb85fdb700 10 cache get:
name=.users+I420IKX56ZP09BTN4CML : hit
2014-07-15 22:48:15.771442 7fbb85fdb700 20 get_obj_state: s->obj_tag was
set empty
2014-07-15 22:48:15.771537 7fbb85fdb700 10 cache get:
name=.users+I420IKX56ZP09BTN4CML : hit
2014-07-15 22:48:15.773278 7fbb85fdb700 20 get_obj_state:
rctx=0x7fbbc800f750 obj=.users.uid:lakshmi state=0x7fbbc8008208
s->prefetch_data=0
2014-07-15 22:48:15.773288 7fbb85fdb700 10 cache get:
name=.users.uid+lakshmi : hit
2014-07-15 22:48:15.773293 7fbb85fdb700 20 get_obj_state: s->obj_tag was
set empty
2014-07-15 22:48:15.773297 7fbb85fdb700 10 cache get:
name=.users.uid+lakshmi : hit
2014-07-15 22:48:15.774247 7fbb85fdb700 10 get_canon_resource():
dest=http://ceph-gateway.ex.com/
2014-07-15 22:48:15.774326 7fbb85fdb700 10 auth_hdr:
GET
Wed, 16 Jul 2014 05:48:48 GMT
http://ceph-gateway.ex.com/
2014-07-15 22:48:15.775425 7fbb85fdb700 15 calculated
digest=k80Z0p3KlwX4TtrZa0Ws0IWCpVU=
2014-07-15 22:48:15.775498 7fbb85fdb700 15
auth_sign=aAd2u8uD1x/FwLAojm+vceWaITY=
2014-07-15 22:48:15.775536 7fbb85fdb700 15 compare=-10
2014-07-15 22:48:15.775603 7fbb85fdb700 10 failed to authorize request

That tells you that the gateway calculated a different signature then your client did. So something with the access and secret key is wrong.

Wido

2014-07-15 22:48:15.776202 7fbb85fdb7002 req 17:0.007071:s3:GET
http://ceph-gateway.ex.com/:list_buckets:http status=403
2014-07-15 22:48:15.776325 7fbb85fdb7001 ====== req done
req=0x7fbbe910b290 http_status=403 ======
2014-07-15 22:48:15.776435 7fbb85fdb700 20 process_request() returned -1

--------------------------------------------------------------------------------------------------------------------------------
Using Swift-Client -
swift --debug -V 1.0 -A http://ceph-gateway.ex.com/auth/1.0 -U
ganapati:swift -K "GIn60fmdvnEh5tSiRziixcO5wVxZjg9eoYmtX3hJ" list
INFO:urllib3.connectionpool:Starting new HTTP connection (1):
ceph-gateway.ex.com
DEBUG:urllib3.connectionpool:Setting read timeout to <object object at
0x7f3e1cf38090>
DEBUG:urllib3.connectionpool:"GET /auth/1.0 HTTP/1.1" 403 23
('lks: response %s', <Response [403]>)
INFO:swiftclient:REQ: curl -i http://ceph-gateway.ex.com/auth/1.0 -X GET
INFO:swiftclient:RESP STATUS: 403 Forbidden
INFO:swiftclient:RESP HEADERS: [('date', 'Wed, 16 Jul 2014 05:45:22
GMT'), ('accept-ranges', 'bytes'), ('content-type', 'application/json'),
('content-length', '23'), ('server', 'Apache/2.4.7 (Ubuntu)')]
INFO:swiftclient:RESP BODY: {"Code":"AccessDenied"}
ERROR:swiftclient:Auth GET failed: http://ceph-gateway.ex.com/auth/1.0
403 Forbidden
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/swiftclient/client.py", line
1187, in _retry
self.url, self.token = self.get_auth()
File "/usr/lib/python2.7/dist-packages/swiftclient/client.py", line
1161, in get_auth
insecure=self.insecure)
File "/usr/lib/python2.7/dist-packages/swiftclient/client.py", line 324,
in get_auth
insecure=insecure)
File "/usr/lib/python2.7/dist-packages/swiftclient/client.py", line 247,
in get_auth_1_0
http_reason=resp.reason)
ClientException: Auth GET failed: http://ceph-gateway.ex.com/auth/1.0
403 Forbidden
Radosgw log -
2014-07-15 22:45:22.654754 7fbb697a27001 ====== starting new request
req=0x7fbbe910c3d0 =====
2014-07-15 22:45:22.654844 7fbb697a27002 req 16:0.000091::GET
/auth/1.0::initializing
2014-07-15 22:45:22.655062 7fbb697a27002 req 16:0.000308:swift-auth:GET
/auth/1.0::getting op
2014-07-15 22:45:22.655073 7fbb697a27002 req 16:0.000321:swift-auth:GET
/auth/1.0:swift_auth_get:authorizing
2014-07-15 22:45:22.655088 7fbb697a27002 req 16:0.000335:swift-auth:GET
/auth/1.0:swift_auth_get:reading permissions
2014-07-15 22:45:22.655095 7fbb697a27002 req 16:0.000342:swift-auth:GET
/auth/1.0:swift_auth_get:init op
2014-07-15 22:45:22.655108 7fbb697a27002 req 16:0.000355:swift-auth:GET
/auth/1.0:swift_auth_get:verifying op mask
2014-07-15 22:45:22.655119 7fbb697a2700 20 required_mask= 0 user.op_mask=7
2014-07-15 22:45:22.655125 7fbb697a27002 req 16:0.000372:swift-auth:GET
/auth/1.0:swift_auth_get:verifying op permissions
2014-07-15 22:45:22.655132 7fbb697a27002 req 16:0.000379:swift-auth:GET
/auth/1.0:swift_auth_get:verifying op params
2014-07-15 22:45:22.655138 7fbb697a27002 req 16:0.000385:swift-auth:GET
/auth/1.0:swift_auth_get:executing
2014-07-15 22:45:22.655363 7fbb697a2700 20 get_obj_state:
rctx=0x7fbba0048cc0 obj=.users.swift:ganapati:swift state=0x7fbba0010fd8
s->prefetch_data=0
2014-07-15 22:45:22.655427 7fbb697a2700 10 cache get:
name=.users.swift+ganapati:swift : type miss (requested=6, cached=0)
2014-07-15 22:45:22.662199 7fbb697a2700 10 cache put:
name=.users.swift+ganapati:swift
2014-07-15 22:45:22.662239 7fbb697a2700 10 moving
.users.swift+ganapati:swift to cache LRU end
2014-07-15 22:45:22.662357 7fbb697a27002 req 16:0.007603:swift-auth:GET
/auth/1.0:swift_auth_get:http status=403
2014-07-15 22:45:22.662379 7fbb697a27001 ====== req done
req=0x7fbbe910c3d0 http_status=403 ======
ceph.conf
[global]
fsid = ecb2d0d4-cfc9-4fb9-a98d-002fa1b228f1
mon_initial_members = node1
mon_host = 192.168.122.108
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
filestore_xattr_use_omap = true

[client.admin]
keyring = /etc/ceph/ceph.client.admin.keyring

[client.radosgw.gateway]
host = ceph-gateway
keyring = /etc/ceph/ceph.client.radosgw.keyring
rgw socket path = /var/run/ceph/ceph.radosgw.gateway.fastcgi.sock
log file = /var/log/ceph/client.radosgw.gateway.log
rgw dns name = ceph-gateway.ex.com
rgw print continue = false
rgw debug = 20
rgw enable usage log = true

Appreciate your help.
Thanks,
Lakshmi.



_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com



--
Wido den Hollander
42on B.V.
Ceph trainer and consultant

Phone: +31 (0)20 700 9902
Skype: contact42on
_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to