# 🔐 AWS IAM Security Project
This project demonstrates how to design a secure AWS environment using AWS Identity and Access Management (IAM), following security best practices such as least privilege and role-based access control.
---
## 📌 Project Overview
In this project, I implemented a structured IAM setup that simulates a real-world organization. The environment includes different user roles with controlled permissions based on responsibilities.
### 👥 User Roles:
- **Admin** – Full access to AWS services
- **Developer** – Access to EC2 and S3 resources
- **Read-Only User** – View-only access across services
---
## 🏗️ Architecture
The IAM structure follows this model:
- Users are assigned to groups
- Groups have specific policies attached
- Roles are used to grant secure access to AWS services

---
## 🧰 Services Used
- AWS Identity and Access Management (IAM)
---
## ⚙️ Implementation Steps
1. Created IAM Groups:
- Admins
- Developers
- ReadOnly
2. Attached Policies:
- Admins → AdministratorAccess
- Developers → Custom EC2 & S3 access policy
- ReadOnly → ReadOnlyAccess
3. Created Users:
- admin-user → Admins group
- dev-user → Developers group
- viewer-user → ReadOnly group
4. Enabled Security Features:
- Multi-Factor Authentication (MFA)
- Strong password policy
- Restricted root account usage
5. Created IAM Roles:
- EC2 Role with S3 access
- Read-only role for limited access
---
## 🔐 Security Best Practices Implemented
- Principle of **Least Privilege**
- **Role-Based Access Control (RBAC)**
- **Multi-Factor Authentication (MFA)**
- Avoided use of root account
- Used IAM roles instead of hardcoded credentials
---
### 🚀 Key Learnings
- Designing secure IAM architectures
- Managing access using users, groups, and roles
- Applying AWS security best practices
- Understanding real-world access control scenarios
---
## 🌍 Real-World Use Case
This IAM setup can be applied in organizations to:
- Separate access between teams
- Enforce security policies
- Reduce risk through controlled permissions
---