The adoption of cloud computing has continued to grow, owing to its broad network access, remote accessibility, scalability, on demand self-service, rapid elasticity and resource pooling. In this environment, numerous devices are deployed to access the cloud data and services. This potentially increases the attack services, more so in public clouds. As such, the biggest challenge is the secure data exchange over insecure open network channels. This issue has seen the development of numerous security solutions over the recent past. In this paper, a survey of these security schemes, techniques and methods is provided. The findings indicate that majority of these methods have vulnerabilities that expose users to many attacks. Additionally, some of these security solutions have extremely high complexities that make the cloud communications inefficient.