Dear all

i have meet some issue when access radosgw.
Fobidden 403 and fail to create subuser key when use radosgw

ceph version 0.80.5(ceph osd, radosgw), OS Wheezy

(1) Reference of installation
    http://ceph.com/docs/master/radosgw/config/#configuring-print-continue

(2) Config File
    root@ceph-radosgw:~# more /etc/ceph/ceph.conf
    [global]
    fsid = ae3da4d2-eef0-47cf-a872-24df8f2c8df4
    mon_initial_members = ceph01-vm
    mon_host = 192.168.123.251
    auth_cluster_required = cephx
    auth_service_required = cephx
    auth_client_required = cephx
    filestore_xattr_use_omap = true

    rgw print continue = false
    rgw dns name = ceph-radosgw
    debug rgw = 20


    [client.radosgw.gateway]
    host = ceph-radosgw
    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

    root@ceph-admin:~# rados lspools
     data
     metadata
     rbd
     testpool
     iscsi
     pool-A
     pool-B
     iscsi_pool
     .rgw.root
     .rgw.control
     .rgw
     .rgw.gc
     .users.uid
     .users
     .users.swift
     .users.email
     .rgw.buckets
     .rgw.buckets.index
     .log
     .intent-log
     .usage

 when access radosgw http://192.168.123.191, seam ok
   <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/";>
   <Owner>
   <ID>anonymous</ID>
   <DisplayName/>
   </Owner>
   <Buckets/>
   </ListAllMyBucketsResult>


(3) error meet when create radosgw user(swift) and gen-key

    root@ceph-radosgw:~# radosgw-admin user create --uid="testuser"
--display-nameFirst User"
    { "user_id": "testuser",
      "display_name": "First User",
      "email": "",
      "suspended": 0,
      "max_buckets": 1000,
      "auid": 0,
      "subusers": [],
      "keys": [
            { "user": "testuser",
              "access_key": "SU3L3KCDXQ31KJ6BZ04B",
              "secret_key": "nhA2XNsqwJN8bZlkOEd2UyexMADC9THOhc7UmW4l"}],
      "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": []}
    root@ceph-radosgw:~# radosgw-admin usage show --show-log-entries=false
    { "summary": []}root@ceph-radosgw:~# radosgw-admin user create
--uid="testuser" First User"^Ce="F
    root@ceph-radosgw:~# radosgw-admin subuser create --uid=testuser
--subuser=testuser:swf0001 --access=full
    { "user_id": "testuser",
      "display_name": "First User",
      "email": "",
      "suspended": 0,
      "max_buckets": 1000,
      "auid": 0,
      "subusers": [
            { "id": "testuser:swf0001",
              "permissions": "full-control"}],
      "keys": [
            { "user": "testuser:swf0001",
              "access_key": "9IN7P6HA6K4JCDO61N67",
              "secret_key": ""},
            { "user": "testuser",
              "access_key": "SU3L3KCDXQ31KJ6BZ04B",
              "secret_key": "nhA2XNsqwJN8bZlkOEd2UyexMADC9THOhc7UmW4l"}],
      "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": []}
    root@ceph-radosgw:~# radosgw-admin key create
--subuser=testuser:swf0001 --key-type=swift --gen-secret
    could not create key: unable to add access key, unable to store user
info
    2014-08-11 19:56:35.834507 7f4c4f1af780  0 WARNING: can't store user
info, swift id () already mapped to another user (testuser)

    (find it maybe bug ,  http://tracker.ceph.com/issues/9002)


    root@ceph-radosgw:~# radosgw-admin user create
--subuser=testuser:swf0001 --display-name="Test User One" --key-type=swift
--access=full
    could not create user: unable to create user, user: testuser exists
    root@ceph-radosgw:~# radosgw-admin user create
--subuser=testuser:swf0001 --display-name="Test User One" --key-type=swift
--access=full
    could not create user: unable to create user, user: testuser exists
    root@ceph-radosgw:~# radosgw-admin user rm --uid=testuser

    root@ceph-radosgw:~# radosgw-admin user create
--subuser=testuser:swf0001 --display-name="Test User One" --key-type=swift
--access=full
    { "user_id": "testuser",
      "display_name": "Test User One",
      "email": "",
      "suspended": 0,
      "max_buckets": 1000,
      "auid": 0,
      "subusers": [],
      "keys": [],
      "swift_keys": [
            { "user": "testuser:swf0001",
              "secret_key": "W\/zZ8T09VPFoPKxnVAJocsmNALoPxEYPmjOwytCj"}],
      "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": []}

(4) Fobidden when access radosgw api

    root@ceph-radosgw:~# curl -v -i
http://192.168.123.191/auer:testuser:swf0001"; -H
"X-Auth-Key:W\/zZ8T09VPFoPKxnVAJocsmNALoPxEYPmjOwytCj"
    * About to connect() to 192.168.123.191 port 80 (#0)
    *   Trying 192.168.123.191...
    * Connected to 192.168.123.191 (192.168.123.191) port 80 (#0)
    > GET /auth HTTP/1.1
    > User-Agent: curl/7.29.0
    > Host: 192.168.123.191
    > Accept: */*
    > X-Auth-User:testuser:swf0001
    > X-Auth-Key:W\/zZ8T09VPFoPKxnVAJocsmNALoPxEYPmjOwytCj
    >
    < HTTP/1.1 403 Forbidden
    HTTP/1.1 403 Forbidden
    < Date: Tue, 12 Aug 2014 05:00:11 GMT
    Date: Tue, 12 Aug 2014 05:00:11 GMT
    < Server: Apache/2.2.22 (Debian)
    Server: Apache/2.2.22 (Debian)
    < Accept-Ranges: bytes
    Accept-Ranges: bytes
    < Content-Length: 23
    Content-Length: 23
    < Content-Type: application/json
    Content-Type: application/json

    <
    * Connection #0 to host 192.168.123.191 left intact
    {"Code":"AccessDenied"}

(5) rados gw Log  and my troubleshooting

    2014-08-11 22:00:11.741947 7f84c1ffb700 20 enqueued request
req=0x1e73040
    2014-08-11 22:00:11.741977 7f84c1ffb700 20 RGWWQ:
    2014-08-11 22:00:11.741990 7f84c1ffb700 20 req: 0x1e73040
    2014-08-11 22:00:11.742003 7f84c1ffb700 10 allocated request
req=0x1eaaa80
    2014-08-11 22:00:11.742035 7f84ad7d2700 20 dequeued request
req=0x1e73040
    2014-08-11 22:00:11.742038 7f84ad7d2700 20 RGWWQ: empty
    2014-08-11 22:00:11.742142 7f84ad7d2700 20 DOCUMENT_ROOT=/var/www
    2014-08-11 22:00:11.742149 7f84ad7d2700 20 FCGI_ROLE=RESPONDER
    2014-08-11 22:00:11.742150 7f84ad7d2700 20 GATEWAY_INTERFACE=CGI/1.1
    2014-08-11 22:00:11.742151 7f84ad7d2700 20 HTTP_ACCEPT=*/*
    2014-08-11 22:00:11.742152 7f84ad7d2700 20 HTTP_AUTHORIZATION=
    2014-08-11 22:00:11.742153 7f84ad7d2700 20 HTTP_HOST=192.168.123.191
    2014-08-11 22:00:11.742154 7f84ad7d2700 20 HTTP_USER_AGENT=curl/7.29.0
    2014-08-11 22:00:11.742155 7f84ad7d2700 20
HTTP_X_AUTH_KEY=W\/zZ8T09VPFoPKxnVAJocsmNALoPxEYPmjOwytCj
    2014-08-11 22:00:11.742156 7f84ad7d2700 20
HTTP_X_AUTH_USER=testuser:swf0001
    2014-08-11 22:00:11.742157 7f84ad7d2700 20
PATH=/usr/local/bin:/usr/bin:/bin
    2014-08-11 22:00:11.742158 7f84ad7d2700 20 QUERY_STRING=
    2014-08-11 22:00:11.742159 7f84ad7d2700 20 REMOTE_ADDR=192.168.123.191
    2014-08-11 22:00:11.742160 7f84ad7d2700 20 REMOTE_PORT=54965
    2014-08-11 22:00:11.742161 7f84ad7d2700 20 REQUEST_METHOD=GET
    2014-08-11 22:00:11.742162 7f84ad7d2700 20 REQUEST_URI=/auth
    2014-08-11 22:00:11.742162 7f84ad7d2700 20
SCRIPT_FILENAME=/var/www/s3gw.fcgi
    2014-08-11 22:00:11.742163 7f84ad7d2700 20 SCRIPT_NAME=/auth
    2014-08-11 22:00:11.742164 7f84ad7d2700 20 SCRIPT_URI=
http://192.168.123.191/auth
    2014-08-11 22:00:11.742165 7f84ad7d2700 20 SCRIPT_URL=/auth
    2014-08-11 22:00:11.742166 7f84ad7d2700 20 SERVER_ADDR=192.168.123.191
    2014-08-11 22:00:11.742166 7f84ad7d2700 20 SERVER_ADMIN=
[email protected]
    2014-08-11 22:00:11.742167 7f84ad7d2700 20 SERVER_NAME=192.168.123.191
    2014-08-11 22:00:11.742168 7f84ad7d2700 20 SERVER_PORT=80
    2014-08-11 22:00:11.742169 7f84ad7d2700 20 SERVER_PROTOCOL=HTTP/1.1
    2014-08-11 22:00:11.742170 7f84ad7d2700 20 SERVER_SIGNATURE=
    2014-08-11 22:00:11.742170 7f84ad7d2700 20
SERVER_SOFTWARE=Apache/2.2.22 (Debian)
    2014-08-11 22:00:11.742172 7f84ad7d2700  1 ====== starting new request
req=0x1e73040 =====
    2014-08-11 22:00:11.742222 7f84ad7d2700  2 req 1:0.000051::GET
/auth::initializing
    2014-08-11 22:00:11.742236 7f84ad7d2700 10 host=192.168.123.191
rgw_dns_name=ceph-radosgw
    2014-08-11 22:00:11.742356 7f84ad7d2700  2 req
1:0.000184:swift-auth:GET /auth::getting op
    2014-08-11 22:00:11.742364 7f84ad7d2700  2 req
1:0.000193:swift-auth:GET /auth:swift_auth_get:authorizing
    2014-08-11 22:00:11.742371 7f84ad7d2700  2 req
1:0.000200:swift-auth:GET /auth:swift_auth_get:reading permissions
    2014-08-11 22:00:11.742374 7f84ad7d2700  2 req
1:0.000203:swift-auth:GET /auth:swift_auth_get:init op
    2014-08-11 22:00:11.742382 7f84ad7d2700  2 req
1:0.000211:swift-auth:GET /auth:swift_auth_get:verifying op mask
    2014-08-11 22:00:11.742390 7f84ad7d2700 20 required_mask= 0
user.op_mask=7
    2014-08-11 22:00:11.742392 7f84ad7d2700  2 req
1:0.000221:swift-auth:GET /auth:swift_auth_get:verifying op permissions
    2014-08-11 22:00:11.742395 7f84ad7d2700  2 req
1:0.000224:swift-auth:GET /auth:swift_auth_get:verifying op params
    2014-08-11 22:00:11.742397 7f84ad7d2700  2 req
1:0.000226:swift-auth:GET /auth:swift_auth_get:executing
    2014-08-11 22:00:11.742508 7f84ad7d2700 20 get_obj_state:
rctx=0x7f84c402ff40 obj=.users.swift:testuser:swf0001 state=0x7f84c4030118
s->prefetch_data=0
    2014-08-11 22:00:11.742527 7f84ad7d2700 10 cache get:
name=.users.swift+testuser:swf0001 : miss
    2014-08-11 22:00:11.744140 7f84ad7d2700 10 cache put:
name=.users.swift+testuser:swf0001
    2014-08-11 22:00:11.744168 7f84ad7d2700 10 adding
.users.swift+testuser:swf0001 to cache LRU end
    2014-08-11 22:00:11.744180 7f84ad7d2700 20 get_obj_state: s->obj_tag
was set empty
    2014-08-11 22:00:11.744192 7f84ad7d2700 10 cache get:
name=.users.swift+testuser:swf0001 : type miss (requested=1, cached=6)
    2014-08-11 22:00:11.744223 7f84ad7d2700 20 get_obj_state:
rctx=0x7f84c402ff40 obj=.users.swift:testuser:swf0001 state=0x7f84c4030118
s->prefetch_data=0
    2014-08-11 22:00:11.744230 7f84ad7d2700 10 cache get:
name=.users.swift+testuser:swf0001 : hit
    2014-08-11 22:00:11.744234 7f84ad7d2700 20 get_obj_state: s->obj_tag
was set empty
    2014-08-11 22:00:11.744241 7f84ad7d2700 20 get_obj_state:
rctx=0x7f84c402ff40 obj=.users.swift:testuser:swf0001 state=0x7f84c4030118
s->prefetch_data=0
    2014-08-11 22:00:11.744244 7f84ad7d2700 20 state for
obj=.users.swift:testuser:swf0001 is not atomic, not appending atomic test
    2014-08-11 22:00:11.744246 7f84ad7d2700 20 rados->read obj-ofs=0
read_ofs=0 read_len=524288
    2014-08-11 22:00:11.745424 7f84ad7d2700 20 rados->read r=0 bl.length=12
    2014-08-11 22:00:11.745450 7f84ad7d2700 10 cache put:
name=.users.swift+testuser:swf0001
    2014-08-11 22:00:11.745453 7f84ad7d2700 10 moving
.users.swift+testuser:swf0001 to cache LRU end
    2014-08-11 22:00:11.745487 7f84ad7d2700 20 get_obj_state:
rctx=0x7f84c4023660 obj=.users.uid:testuser state=0x7f84c4030118
s->prefetch_data=0
    2014-08-11 22:00:11.745494 7f84ad7d2700 10 cache get:
name=.users.uid+testuser : miss
    2014-08-11 22:00:11.746811 7f84ad7d2700 10 cache put:
name=.users.uid+testuser
    2014-08-11 22:00:11.746829 7f84ad7d2700 10 adding .users.uid+testuser
to cache LRU end
    2014-08-11 22:00:11.746835 7f84ad7d2700 20 get_obj_state: s->obj_tag
was set empty
    2014-08-11 22:00:11.746843 7f84ad7d2700 10 cache get:
name=.users.uid+testuser : type miss (requested=1, cached=6)
    2014-08-11 22:00:11.746866 7f84ad7d2700 20 get_obj_state:
rctx=0x7f84c4023660 obj=.users.uid:testuser state=0x7f84c4030118
s->prefetch_data=0
    2014-08-11 22:00:11.746872 7f84ad7d2700 10 cache get:
name=.users.uid+testuser : hit
    2014-08-11 22:00:11.746876 7f84ad7d2700 20 get_obj_state: s->obj_tag
was set empty
    2014-08-11 22:00:11.746878 7f84ad7d2700 20 get_obj_state:
rctx=0x7f84c4023660 obj=.users.uid:testuser state=0x7f84c4030118
s->prefetch_data=0
    2014-08-11 22:00:11.746880 7f84ad7d2700 20 state for
obj=.users.uid:testuser is not atomic, not appending atomic test
    2014-08-11 22:00:11.746882 7f84ad7d2700 20 rados->read obj-ofs=0
read_ofs=0 read_len=524288
    2014-08-11 22:00:11.748030 7f84ad7d2700 20 rados->read r=0 bl.length=322
    2014-08-11 22:00:11.748074 7f84ad7d2700 10 cache put:
name=.users.uid+testuser
    2014-08-11 22:00:11.748078 7f84ad7d2700 10 moving .users.uid+testuser
to cache LRU end
    2014-08-11 22:00:11.748116 7f84ad7d2700  0 NOTICE:
RGW_SWIFT_Auth_Get::execute(): bad swift key
    2014-08-11 22:00:11.748216 7f84ad7d2700  2 req
1:0.006044:swift-auth:GET /auth:swift_auth_get:http status=403
    2014-08-11 22:00:11.748230 7f84ad7d2700  1 ====== req done
req=0x1e73040 http_status=403 ======
    2014-08-11 22:00:11.748239 7f84ad7d2700 20 process_request() returned -1


    root@ceph-radosgw:~# radosgw-admin --name client.radosgw.gateway
metadata list user
    [
        "johndoe",
        "testuser"]

    root@ceph-radosgw:~# radosgw-admin zone list
    2014-08-12 01:22:24.881714 7f216777c700  2
RGWDataChangesLog::ChangesRenewThread: start
    2014-08-12 01:22:24.899503 7f21723cf780 20 RGWRados::pool_iterate: got
default.region
    2014-08-12 01:22:24.899529 7f21723cf780 20 RGWRados::pool_iterate: got
region_info.default
    2014-08-12 01:22:24.947162 7f21723cf780 20 RGWRados::pool_iterate: got
zone_info.default
    { "zones": [
            "default"]}


    root@ceph-radosgw:~# radosgw-admin zone get default
    { "domain_root": ".rgw",
      "control_pool": ".rgw.control",
      "gc_pool": ".rgw.gc",
      "log_pool": ".log",
      "intent_log_pool": ".intent-log",
      "usage_log_pool": ".usage",
      "user_keys_pool": ".users",
      "user_email_pool": ".users.email",
      "user_swift_pool": ".users.swift",
      "user_uid_pool": ".users.uid",
      "system_key": { "access_key": "",
          "secret_key": ""},
      "placement_pools": [
            { "key": "default-placement",
              "val": { "index_pool": ".rgw.buckets.index",
                  "data_pool": ".rgw.buckets",
                  "data_extra_pool": ".rgw.buckets.extra"}}]}
_______________________________________________
ceph-users mailing list
[email protected]
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to