AWS Secure Setup and IAM Users

AWS Secure Setup and IAM Users

This week, I began studying the AWS Solutions Architect Associate through a course created by Adrian Cantril.

I chose this course after strong recommendations from the Reddit community. Before purchasing the course, I studied his short and free Docker Fundamentals course to see if I liked his style. It turns out his style was very clear and it was a no-brainer for me to purchase the course for around 40 pounds. It is video-based with engaging presentations, clever examples and lots of good detail.

The first section consisted of learning what exactly an AWS account is, why organizations may have more than one and how IAM users, groups and roles fit into the equation. In this article, I'm writing a summary of the key points I have learned.


?? AWS Account: A Container for Your Cloud Environment:

An AWS account acts as a container for your IAM users, AWS resources, billing information, and security settings. Managing all these components effectively is key to maintaining a secure and efficient cloud environment.


?? Root User vs. IAM Users:

  1. Root User: The root user is created when you first set up your AWS account. It has full access to all AWS services and resources and cannot be restricted. However, using the root user for daily tasks is highly discouraged due to the potential security risks. If the credentials are leaked, someone can enter the account, wipe all your resources and even delete it. It is for this reason we use IAM users.

  1. IAM Users: AWS Identity and Access Management (IAM) users are created to manage access to your AWS resources without using the root account. Each IAM user has unique credentials and can be assigned specific permissions through IAM policies. It is good practice to have one IAM user in each account with the Admin Access policy so it has most of the same permissions as the root user.


??? Why Have Separate Accounts for General and Production Environments?

  1. General Account: Use this for development, testing, and non-critical workloads. This isolation helps minimize the risk to production environments if the general account is compromised.
  2. Production Account: Reserve this strictly for production workloads. Limiting access and maintaining strict control in this account ensures the security and reliability of your live applications.


?? Best Practices for Security:

  1. Enable MFA (Multi-Factor Authentication): Adding MFA to both root and IAM users provides an additional layer of security. It requires users to provide not just their password but also a second form of verification, significantly reducing the risk of unauthorized access. This can be done via physical MFA devices, but more likely through a downloadable mobile application such as Google Authenticator or RSA.

  1. Use Access Keys with Caution: Access keys allow programmatic access to AWS services. However, they should be managed carefully. It is also important to note that the key consists of an Access Key ID and a secret pattern. It is impossible to see the secret pattern again after the key is first created so it is important to make a note of it for future use. Otherwise, the key would have to be deleted entirely and created - a cumbersome task depending on the size of your organization. Good practice is to rotate the keys frequently, never embed them directly in the code, and use IAM roles with temporary credentials if possible.


?? AWS CLI and Configuring Profiles:

For those working with the AWS CLI, configuring profiles is a great way to manage multiple accounts and access keys securely.

Once the AWS CLI has been downloaded, the user should:

  1. Create IAM Users: Generate access keys for each user that needs programmatic access.
  2. Configure CLI Profiles: Use the AWS CLI to set up named profiles, which store access keys and other configuration settings. This allows you to switch between different accounts easily.

aws configure --profile profile_name        

Use the --profile flag to specify which profile to use when running commands. It is important to specify as each profile will likely be attached to IAMs with different access policies and as such certain commands may be restricted.

aws s3 ls --profile profile_name        


Conclusion

Through a combination of user management, policy restrictions and other AWS security features, a user can safeguard their environment and enhance their understanding and skills in managing cloud infrastructure.

What strategies do you use to secure your AWS environments? Share your thoughts and let's discuss! ??

#AWS #SolutionsArchitect #IAM #MFA #AWSCLI #AccessKeys #AWSLearning #AWSsolutionsArchitect #CloudComputing #TechLearning #CareerGrowth

要查看或添加评论,请登录

Jamie Furlong ??的更多文章

  • Organizing Data with AWS S3 Buckets

    Organizing Data with AWS S3 Buckets

    Another week has gone by with another module completed. At the beginning I thought, how complicated can S3 buckets…

  • AWS Organizations: Streamline and Scale Your Cloud Environment ??

    AWS Organizations: Streamline and Scale Your Cloud Environment ??

    It's been a minute since my last post. Returning home, turning 30, climbing Ben Nevis, organizing a massive party and…

    1 条评论
  • AWS Solutions Architect - Preparing for Failure

    AWS Solutions Architect - Preparing for Failure

    Fault Tolerance vs High Availability vs Disaster Recovery: A Beginner's Guide One thing I have learned very quickly…

  • EC2 and AMI Fundamentals and Setup

    EC2 and AMI Fundamentals and Setup

    ?? Exploring AWS EC2 and AMI Basics! ?? Building on the knowledge I gained about Virtual Private Clouds (VPC) in my…

    1 条评论
  • AWS Virtual Private Cloud Fundamentals

    AWS Virtual Private Cloud Fundamentals

    Understanding AWS VPC: The Basics ?? Hey everyone! After a week break for my 30th, I've continued my studies for the…

  • Exploring the OSI Model

    Exploring the OSI Model

    As I delve deeper into my AWS Solutions Architect studies, I’ve found it crucial to understand the foundational…

社区洞察

其他会员也浏览了