Security
AWS IAM Management - Tổng Quan & Best Practices
Tổng quan Account, Users, Groups, Roles, Policies, Best Practices (Diagram)
📋 Mục lục
- Overview Diagram
- Các thành phần chính
- Luồng xác thực & phân quyền
- Policy Evaluation Flow
- Multi-Account Architecture
- Best Practices
- Exam Tips
Overview Diagram
Toàn cảnh hệ thống IAM trong AWS
Mối quan hệ giữa các thành phần
Các thành phần chính
1. 🔑 Root User
| Đặc điểm | Mô tả |
|---|---|
| Credentials | Email + Password đăng ký AWS account |
| Quyền | TOÀN QUYỀN - không thể bị giới hạn bởi bất kỳ policy nào |
| Dùng khi nào | Chỉ khi bắt buộc: đóng account, thay đổi support plan, restore IAM permissions |
2. 👤 IAM Users
| Đặc điểm | Giá trị |
|---|---|
| Tối đa users/account | 5,000 |
| Groups/user | Tối đa 10 |
| Policies/user | Tối đa 10 managed policies |
3. 👥 IAM Groups
[!IMPORTANT]
- Groups KHÔNG phải identity → không thể dùng trong Resource-based Policy
- Groups KHÔNG thể nested (group trong group)
- User KHÔNG bắt buộc thuộc group nào
- User có thể thuộc NHIỀU groups cùng lúc
4. 🎭 IAM Roles
Khi nào dùng Role?
| Tình huống | Ví dụ |
|---|---|
| AWS Service cần quyền | EC2 đọc S3, Lambda ghi DynamoDB |
| Cross-account access | Account A truy cập resource ở Account B |
| Federated users | Login bằng Google/Facebook/SAML |
| Temporary access | Contractor cần quyền tạm thời |
5. 📜 IAM Policies
Cấu trúc của 1 Policy (JSON)
| Trường | Ý nghĩa | Bắt buộc? |
|---|---|---|
| Effect | Allow hoặc Deny | ✅ |
| Action | Hành động gì? (s3:GetObject, ec2:*) | ✅ |
| Resource | Trên resource nào? (ARN) | ✅ (Identity-based) |
| Principal | Ai? | ✅ (Resource-based) |
| Condition | Điều kiện gì? (IP, MFA, time...) | ❌ |
Luồng xác thực & phân quyền
Authentication (Xác thực - "Bạn là ai?")
Authorization (Phân quyền - "Bạn được phép làm gì?")
Quy tắc vàng
Multi-Account Architecture
Với AWS Organizations + SCPs
SCP vs IAM Policy - Sự khác biệt
Tóm tắt: Ai / Cái gì / Bằng cách nào?
Best Practices
🔐 Security Best Practices
Least Privilege Workflow
Công cụ hỗ trợ quản lý IAM
| Công cụ | Mục đích | Tần suất |
|---|---|---|
| IAM Credential Report | Liệt kê tất cả users + trạng thái credentials | Định kỳ (monthly) |
| IAM Access Advisor | Xem services nào user đã/chưa access | Khi review permissions |
| IAM Access Analyzer | Phát hiện resources bị chia sẻ ra ngoài | Liên tục (automated) |
| IAM Policy Simulator | Test policies trước khi apply | Khi tạo/sửa policies |
| CloudTrail | Log tất cả API calls (ai, làm gì, khi nào) | Luôn bật |
| AWS Config | Track thay đổi cấu hình IAM | Luôn bật |
Exam Tips (Cloud Practitioner / SAA)
[!TIP] Ghi nhớ nhanh:
- Users = người/app cụ thể, long-term credentials
- Groups = nhóm users, KHÔNG nested, KHÔNG phải identity
- Roles = temporary credentials, cho services/cross-account/federation
- Policies = JSON documents, Allow/Deny, Deny luôn thắng
- SCP = ceiling cho account, KHÔNG cấp quyền, KHÔNG áp dụng Management Account
- Root = toàn quyền, KHÔNG dùng hàng ngày, MFA bắt buộc
- Least Privilege = câu trả lời "an toàn" nhất trong mọi tình huống
[!CAUTION] Câu hỏi hay gặp lẫn:
- "Làm sao để EC2 truy cập S3?" → IAM Role (KHÔNG PHẢI Access Keys trên EC2)
- "Làm sao để giới hạn toàn bộ account?" → SCP (cần Organizations)
- "Group có phải identity không?" → KHÔNG (không dùng được trong Resource-based Policy)
- "SCP có cấp quyền không?" → KHÔNG (chỉ giới hạn)
- "Permissions Boundary cấp quyền?" → KHÔNG (chỉ giới hạn MAX)