The cloud computing paradigm emerged shortly after the introduction of the "invisible" grid concepts but it has taken only a few years for cloud computing to gain enormous momentum within industry and academia alike. However, providing adequate security support by those complex distributed systems is of primary importance for the wide adoption of cloud computing by the end users. This paper gives an overview of the main cloud security issues and challenges. Existing and proposed solutions are also presented with particular attention to the security as a service approach. Some of the available directions for future work are also discussed.