A reliable and efficient communications system is required for the robust, affordable and secure supply of power through Smart Grids (SG). Computational requirements for Smart Grid applications can be met by utilizing the Cloud Computing (CC) model. Flexible resources and services shared in network, parallel processing and omnipresent access are some features of Cloud Computing that are desirable for Smart Grid applications. Even-though the Cloud Computing model is considered efficient for Smart Grids, it has some constraints such as security and reliability. In this paper, the Smart Grid architecture and its applications are focused on first. The Cloud Computing architecture is explained thoroughly. Then, Cloud Computing for Smart Grid applications are also introduced in terms of efficiency, security and usability. Cloud platforms' technical and security issues are analyzed. Finally, cloud service based existing Smart Grid projects and open research issues are presented. (C) 2014 Elsevier B.V. All rights reserved.