[Cyberduck-trac] [Cyberduck] #8959: Rackspace cloudfiles ACL only access

Cyberduck trac at trac.cyberduck.io
Thu Jul 30 14:29:42 UTC 2015


#8959: Rackspace cloudfiles ACL only access
-----------------------+---------------------------
    Reporter:  matiu   |      Owner:
        Type:  defect  |     Status:  new
    Priority:  normal  |  Milestone:  4.7.2
   Component:  core    |    Version:  4.7.1
    Severity:  normal  |   Keywords:
Architecture:  Intel   |   Platform:  Mac OS X 10.8
-----------------------+---------------------------
 I have had to replace xxxx with xxxx everywhre because trac thinks this is
 spam.

 To Re-create:

  1. Using Rackspace cloud files create a user with zero access to anything
 (eg. my_user)
  2. Using cloud files ACL lists, grant access to a certain container (eg.
 /my_container) (xxxx --docs.rackspace.com/files/api/v1/cf-devguide/content
 /Container_ACLs-d1e2222.html)
  3. Try to access that container (making sure to use 'More Options' and
 make sure that the path says /my_container

 --------

 # State

  * In version 4.3.1 (11010) - This works, you can list the folder contents
 and modify files
  * Using plain old curl it works.
  * In cyberduck versions later than 4.3.1 it doesn't work

 --------

 # More detailed instructions

 ## Creating the restricted user

  1. Log in to xxxxs://mycloud.rackspace.com (sign up if you don't have a
 log in, it won't cost anything to create a single cloud files container
 and add a 1k file).
  2. Click 'Account' in the top right
  3. Click 'User Management'
  4. Click the 'Create User' button
  5. Make up a user name and password and security answer
  6. Under 'Product Access' choose 'No Access'
  7. Make up a name and email for them
  8. Click 'Create User' at the bottom of the form
  9. Take a note of the username and apikey for later

 ## Creating the container

  1. Still in xxxxs://mycloud.rackspace.com - click Storage, Files
  2. Click 'Create Container' and give it a name
  3. Take a note of which DC it's in. (Example uses DFW).

 ## Granting ACL to 'my_user'

 Instead of using curl, I'm using xxxxie and jq as it's heaps easier:

  * xxxxs://github.com/jkbr/xxxxie
  * xxxx://stedolan.github.io/jq/

 Using the username and the API key of the Rackspace cloud ACCOUNT OWNER...

 You can run this in bash, to grant 'my_user', access to 'my_container' in
 the DFW cloud files:

 ----- 8< ----
 USER=admin
 KEY=some_long_api_key
 json=$(echo "{ \"auth\":{ \"RAX-KSKEY:apiKeyCredentials\":{
 \"username\":\"${USER}\", \"apiKey\":\"${KEY}\" } } }" | http POST
 xxxxs://auth.api.rackspacecloud.com/v2.0/tokens)
 token=$(echo $json | jq -r '.access | .token | .id')
 auth="X-Auth-Token:$token"
 url=$(echo $json | jq -r '.access | .serviceCatalog | .[] | select(.name
 == "cloudFiles") | .endpoints | .[] | select(.region == "DFW") |
 .publicURL')
 http POST $url/my_container X-Container-Read:my_user X-Container-
 Write:my_user $auth
 ----- >8 ----

 Now in Cyberduck 4.3.1 as 'my_user' you can list 'my_container', and
 upload to it, but in later versions you can't.

-- 
Ticket URL: <https://trac.cyberduck.io/ticket/8959>
Cyberduck <https://cyberduck.io>
Libre FTP, SFTP, WebDAV, S3 & OpenStack Swift browser for Mac and Windows


More information about the Cyberduck-trac mailing list