Developer Preview of AWS SDK for JavaScript in the Browser
aws.typepad.com
aws.typepad.com
[0] https://github.com/TTLabs/EvaporateJS [1] http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/frames.ht... [2] https://github.com/TTLabs/EvaporateJS/issues/6
I'm not sure if it would be an improvement or not to give each of our users an IAM account that correlates to specific bucket acl which is based on user namespaces. It would lighten the load on our servers (don't need to sign each request) but now each user needs resources in IAM to be managed.
https://www.firebase.com/docs/security/simple-login-persona....
I must been missing the intended use case. Happy with the Google Drive and Dropbox equivalents, this isn't something that we'll be adding to that set.
To me, one owns a domain, and ownership and trust in that domain is a source of authority. That authority will authenticate users, provide them with a set of credentials, and those credentials can then be used to write or store data. All that this method does is allow for the rest of the logic to be anywhere... client-side or server-side.
From what I'm reading, you can't do this auth fully client-side.
[1] http://aws.typepad.com/aws/2013/05/aws-iam-now-supports-amaz...
[1] http://aws.typepad.com/aws/2011/08/aws-identity-and-access-m...
There seems to be more details here: http://aws.typepad.com/aws/2013/05/aws-iam-now-supports-amaz...
Again, I didn't have time to read all of this and see if it is done in the same manner as has been possible with S3/CORS for the last year or so.
Thanks for your help!
Certainly, though, if you want total control of your own auth, you can still use the TVM or something like it to get credentials into your application. It does require that you are running a backend server though, which the client-side JS is meant to remove.
I rather disagree with getting your autherization tokens by the grace of Google and Facebook.
It seems simple enough to roll your own, perfect use case for App Engine actually:
(Gets temp S3keys)
User <--------------------------> Logins to your site (AppEngine)
ˇ
S3
I just wish Amazon offered better late rimiting options and intergration behind the scenes. The 'Each Request' phrasing can be misleading, you don't need to sign each request, you can give the client side app a token that will last for an hour or a week. (But its on you to refresh it when it expires and keep track of how its being used so there's no abuse)
Now I could manage this myself with a background task that crunches S3 logs at its own pace and when it notices abuse it reports it to my TokenFactory so next time that user asks for a fresh token they get denied... but it would be great if S3 was a tad smarter about such things on its own. :)
Does that sort of make sense? In other words a token should have finer grained permissions than just time. Maybe... "Accept this token for the next 24 hour, or 200 POSTs, which ever comes first, and no more than 20 POSTs in the last hour." That sort of thing.
So you can have a token for: upload as many objects as you want of size less than 1MB in the next 1 hour.
You can't have a token for: upload no more than 1000 objects of size less than 1MB, in the next 1 hour and cut them off after 200MB Total.
EDIT: Ok, so it says in the post. Fine-Grained Access Control for Amazon DynamoDB. Good stuff.