back home

What you should not forget about when hosting a database in the cloud

What you should not forget when hosting a database in the cloud.

TeamStatus.TV is going to be a cloud solution as well (behind the firewall too) and one thing I haven’t thought about was data security.

When you’re building a behind the firewall software usually you assume that database is one of the securest storages available. You could assume this too when developing in the cloud and using a cloud provider.

And that’s what folks from Buffer assumed too I believe. They kept their data on MongoHQ and everything was great, until MongoHQ was cracked and someone gain access to customer data (also to Buffer).

By accessing Buffer data attacker received OAuth keys to twitter accounts registered in Buffer, so he could impersonate everyone (and he did by posting SPAM through this obtained credentials).

To prevent attacks like that you need to treat the database provider as someone untrusted and encrypt crucial data. If you do that only your app will be able to read it and since your app is on another host and you store the key there it’s makes it harder to attack you.

And BTW you should store your key only on the server where your app is, never ever put it into source control or you open yourself for another vector of attack (but you probably know it already).

To sum it up, yes we’re going to encrypt selected data (especially access credentials) in the cloud version. Better be safe than sorry.

Photo #316 AVZ Database thanks to adesigna/Flickr.