I did some research about using Amazons SimpleDB service within a Flash based application and found these basic facts:
- http://sdb.amazonaws.com/crossdomain.xml is not available. This means no direct calls from Flash clients in browsers are possible!
- Even if it would be possible some day, you would need to find a secure way to deliver your AWS key to the Flash client.
- Using a web proxy is a solution that would cause a lot of traffic on your server.
So using Amazons SimpleDB for browser based Flash applications makes not much sense to me.
It might be more useful for Flash applications running on local machines like Flash projectors or Adobe AIR applications but there is still a security problem with hiding your AWS key.
Anyway, I found two ActionScript libraries that might be useful:
http://code.google.com/p/actionscript-simpledb-library/
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1365
And this thread in Amazons discussion forums:
http://developer.amazonwebservices.com/connect/thread.jspa?threadID=19698
If you find alternatives let me know.
I have created AIR apps that use SDB extensively. I would like to create smaller apps with limited functionality in Flex, but I am restricted by the crossdomain issue too. I could use EC2 and create a custom proxy but that defeats the purpose of cloud services.
To keep my apps secure I only share keys from USERS created with IAM. The user policy is very restrictive, so if I was compromised it would be centralized to one domain.
Lastly, I use as3cryprto when sending the keys. Only the Air app and Flex app have the decryption process.
So… If I can do all that. Why can’t AWS expose a crossdomain??? grrr…