Monday, January 9, 2012

Privacy in a Public Cloud

[This article was submitted for future publication on]

Remember the skepticism around online shopping and e-commerce sites back in the day when the web was young? Everyone was afraid of giving out their credit card information over the Internet, for fear it would be intercepted. We eventually got over that fear, thanks to encryption technologies such as Secure Sockets Layer (SSL), which make e-commerce much safer today. That same technology also plays a role in cloud security, and that is one thing to consider, along with other security issues when moving your application to the cloud.

Public cloud versus on-premises
You basically have the same security issues and considerations for deploying applications on the cloud as you do for running them on premises. The difference is that on cloud, some of those issues are handled by your cloud service provider. The important thing to consider is how far the cloud service provider's responsibilities extend, and where your responsibilities as the client, or virtual machine (VM) instance owner, take over.

First, thoroughly investigate your cloud service provider's policies. Treat them like any other outsourced service. Check their references. Clearly define the service level agreements (SLAs) in your contract. SLAs can cover things like backups, up time, disaster recovery, change management, and so on. Audit your cloud provider or consider third-party audits to ensure that those policies are enforced.

For example, the IBM SmartCloud Enterprise has many mechanisms in place to offer a safe and secure environment, such as:

  • Firewall and intrusion protection system (IPS) between guest VMs and the Internet
  • IP-filtering technology and multiple IP addresses per instance for enabling security zones
  • Optional virtual private network (VPN) and virtual local area network (VLAN) isolation of account instances
  • Encrypted connections: IBM is isolated from customer VMs through customer secure shell (SSH) keys and server passwords
  • Hypervisor-based (kernel-based virtual machine) isolation with client-configurable firewall rules
  • Public images patched and scanned regularly
  • Patch servers for private images
  • Root access for customers to guest virtual machines, allowing further hardening of VMs
  • No sharing of private images between accounts on the cloud
  • Access to the portal and APIs, which requires a user ID and password
Users must comply with IBM's stringent security policies, and are subject to regular security scans.

Not all cloud providers offer the same kind of protection, so do your homework!

Image — or instance — is everything
As a VM instance owner on the IBM SmartCloud, you have root access and control over that instance as if it were one of your own on premises, and you are responsible for security on the instance itself. That means that it is up to you to configure access to that resource, install and run anti-virus software on it, and so on. Treat it like any other client in your enterprise; it is just as vulnerable to threats and attack. This blog post lists several useful links to articles about securing and managing your instances.

Get started with the IBM SmartCloud Enterprise: This article describes how to securely connect to, configure the firewall of, and manage (encryption) keys for your instances. You should take care of these tasks immediately upon creating your instances. Determine who will need access to your instances, determine the firewall ports that need to be open or closed, and be prepared to use and manage keys for access.

Why key management is important
IBM SmartCloud employs encryption so you can control access to your applications and data in the cloud. However, encryption alone does not guarantee security. Keys must also be stored and managed properly.

Secure multi-user access to IBM Cloud instances with VNC and SSH: Provides a detailed description of how to configure cloud instances and clients for secure access.

IBM SmartCloud Enterprise tip: Integrate your authentication policy using a proxy: Describes how to create a proxy bridge between your homegrown applications and the IBM SmartCloud. This bridge can allow you to implement finer-grained access control that cannot be directly implemented in the IBM SmartCloud portal. In other words, you can use this technique to control not only who can access, but how, where, or when they can access data.

IBM SmartCloud Enterprise tip: Secure access for Android devices: Describes how to set up secure access to a cloud instance for Android mobile devices.

Cloud security considerations: This good general article is about high-level cloud security concepts. This is just the tip of the iceberg, but it does give a very concise overview.

Extra credit
Model-driven cloud security: This article discusses the challenges of cloud application security policy automation and describes how it can be achieved through a model-driven security architecture and deployment.