Amazon Web Services is the lead Cloud Computing provider in the public cloud market. Organizations are rapidly moving their applications to AWS Cloud because of the cost, elasticity, easily accessible and on-demand provisioning and many more features that Amazon introduced step-by-step during the last years.

The computing resources are available from anywhere in the world with a single click on the console or APIs or SDKs. Because of this easy accessibility security becomes a challenge for the Cloud Providers and as well as the Consumers.

Recently, an unauthorized person had gained access to the Code Spaces AWS console and completely deleted their computing resources, data, volumes, snapshots and configurations. Because of this Code Spaces shutdown their operations completely and issued a public notice to all their customers saying that “Code Spaces will not be able to operate beyond this point,” citing the price of resolving the issue, as well as the expected cost of refunding paying customers. This attack put the Code Spaces in an irreversible position both financially and in terms of ongoing credibility.

So in Public Cloud, security becomes a key component to secure your resources. Organizations should employ known security consultants and follow best practices to manage their cloud workloads effectively.

In this article, I am putting some of the best practices that everyone should apply immediately to their organizations AWS account and resources.

  • Amazon AWS Console is heavily used to manage the resources by Cloud Administrators and developers. It can be accessible via the browser HTTPS using simple username and password. To protect it further, AWS is supporting the Multi-Factor Authentication (MFA) for second level authentication. To login to AWS console, you have to use the integrated MFA code with respective user account. This MFA code is dynamically generated by the MFA device

AWS_User_MFA

  • Don’t give access to the Amazon master credentials to every employee in the organization. Rather, create users using the AWS IAM (Identity and Access Management) service
  • IAM Service allows you to assign the privileges using User Policies. Use the Policy Generator or Custom Policy to assign the privileges rather than using the predefined Policy Templates. Assign the least privileges to users and slowly grant the additional privileges as on when needed.

Security_Policy_Template

  • Use Amazon AWS IAM Policy Simulator to simulate and test the user privileges. This will help you to find whether issued policies are working properly or not.

IAM Policy Simulator

  • If you are using the AWS CLIs or any SDKs within the EC2 environment, launch the EC2 Instances with IAM roles rather than using the AWS Keys to access any of your AWS resources
  • Rotate all your users AWS Access Keys and Passwords periodically
  • Do not open the remote access protocols like SSH and RDP to the Public. Rather use a Bastion Server with MFA or VPN connectivity to reach any of the AWS resources.
  • Enable CloudTrail to log all your API calls via the Console, Command-line or SDKs, which will help you to identify who are accessing the AWS resources and their Identities.
  • Perform security audit periodically on all the Amazon AWS Services which is used by your organization and make sure you are following the best practices.
  • Run the AWS Trusted Advisor periodically to see any security issues on our AWS resources

Trusted Advisor

 

We will cover more about the Amazon AWS security in future blog posts. Our database of quizzes and learning has a lot of information about Security, make sure you subscribe to Cloud Academy for free and start using our quizzes and courses to learn how to secure your AWS infrastructure. 

  • Digital Dan

    This article is completely misleading. This was not because of “security issues” with AWS, but because best practices were not followed. If I leave the front door open on my house it’s not the door or locks fault.

  • Praveen Kumar. Muppala

    Thank you Digital Dan. It was the title problem. But the content is to follow the best practices :)

  • subs

    Praveen,
    To follow-up on a somewhat ancient thread… Do you have advice/suggestions on the best way to use a second, separate AWS account to secure data? What would you push (or pull) to the second account to ensure you have a back-up in a _totally_separate_ account?
    Thanks!