AWS IAM Deep Dive
Identity and Access Management (IAM) là trái tim bảo mật của AWS.
1. Policy Evaluation Logic
Khi một request được gửi đến, AWS quyết định Allow hay Deny như thế nào?
Explicit Deny
Một lệnh Deny sẽ ghi đè tất cả lệnh Allow. Nếu một user có quyền Admin (Allow All) nhưng bị dính 1 policy Deny S3, user đó sẽ không vào được S3.
2. IAM Roles & Principals
Role là một identity tạm thời, không có password hay access key cố định.
- Service Role: Cho phép EC2/Lambda truy cập S3.
- Cross-Account Role: Cho phép User ở Account A truy cập tài nguyên ở Account B.
- Web Identity Federation: Cho phép User đăng nhập bằng Google/Facebook/Auth0 để truy cập AWS.
Never use Access Keys on EC2
Đừng bao giờ hardcode Access Key/Secret Key vào code chạy trên EC2. Hãy gán IAM Role cho EC2 instance. SDK của AWS sẽ tự động lấy credential tạm thời từ Metadata Service.
3. IAM Best Practices
- Lock away Root User: Bật MFA, xóa Access Key, và cất password vào két sắt. Chỉ dùng cho việc billing hoặc khẩn cấp.
- Least Privilege: Chỉ cấp quyền tối thiểu cần thiết. Dùng IAM Access Analyzer để review quyền thừa.
- MFA: Bắt buộc MFA cho mọi user, đặc biệt là Admin.