A Comprehensive Guide to AWS Identity and Access Management (IAM)

Pooja ManellorePooja Manellore
3 min read

AWS Identity and Access Management (IAM) is the backbone of securing and managing access to AWS resources. It revolves around two key concepts: Authentication and Authorization, ensuring that only the right people have the appropriate access to your AWS environment. Let’s dive into the fundamentals of IAM!


1. Identities: Managing Who Gets Access

When you create an AWS account, you initially log in as the root user—the all-powerful user with access to every AWS service and resource. However, using the root user for daily tasks poses a security risk. Instead, IAM enables the creation of different identities (users, roles, and groups) with specific permissions. These identities allow you to delegate tasks securely without risking unnecessary exposure.

For example, you can create:

  • Administrators to manage resources.

  • Analysts to access data.

  • Developers to deploy code.

Each identity is granted tailored permissions to perform their job while adhering to the principle of least privilege.


2. Access Management: Controlling What They Can Do

Once an identity (user or role) is created, they are provided with credentials. Here’s how AWS IAM handles the login and authorization process:

Authentication: Verifying the Identity

When a user logs in, AWS checks their credentials and verifies their identity against trust policies. If the credentials are valid, the user gains access to the AWS Management Console.

Authorization: Granting Permission to Resources

After login, when a user interacts with AWS services, IAM checks whether the user has the necessary permissions to perform specific actions. These permissions are managed through IAM policies, which are attached to users, groups, or roles. AWS also evaluates other policies, like resource-based policies, to make sure that only authorized users can access sensitive data or services.

IAM supports cross-account access, which allows users from one AWS account to access resources in another, based on defined trust relationships.


3. Service Availability: Delays in Propagation

When you make changes to IAM—like creating a new user or updating a policy—it can take a few seconds or minutes for these updates to replicate across all AWS servers. This delay is important to note, especially in time-sensitive environments.

For example, if you add a new user, "John," to your AWS account, he might face login errors if he tries to access services immediately. This is due to the replication process, and it’s critical to verify that changes have fully propagated before relying on the new access.

To avoid interruptions, it’s recommended to apply IAM updates during non-critical times, particularly before moving a project to production.


4. Service Cost Information: What’s Free and What’s Not

Free Services

AWS IAM, IAM Identity Center, and AWS Security Token Service (STS) are free of charge. This means you can create users, manage policies, and configure roles without incurring additional costs.

Potential Costs

However, using IAM users to access other AWS services (such as S3 or EC2) may incur charges depending on the service usage. Additionally, while IAM Access Analyzer offers basic features for free, it may charge for advanced analysis, such as identifying unused permissions or roles that haven’t been utilized.


Conclusion

IAM is crucial to ensuring your AWS environment remains secure and manageable. While this guide provides an overview of AWS IAM, there’s always more to explore. To deepen your understanding of IAM, be sure to refer to the official AWS IAM documentation.

Stay tuned for more insights as we continue exploring AWS services. Until then, happy learning!

0
Subscribe to my newsletter

Read articles from Pooja Manellore directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Pooja Manellore
Pooja Manellore

I have completed my B.Sc. in Computer Science in 2024 and have gained skills in Data Analytics, HTML, and CSS. I am currently advancing my expertise by learning DevOps, aiming to secure a role as a DevOps Engineer. I am eager to join a company immediately where I can apply my skills and continue growing in this field