AWS IAM MFA: Bảo vệ tài khoản với Multi‑Factor Authentication (TOTP, FIDO2) và best practices
5:00 read
Bật và bắt buộc MFA (Multi‑Factor Authentication) là lớp phòng thủ quan trọng nhất để bảo vệ tài khoản AWS khỏi truy cập trái phép. Bài viết này trình bày khái niệm MFA, các loại MFA AWS hỗ trợ, hướng dẫn chi tiết bật MFA cho Root và IAM users, cách enforce bắt buộc MFA bằng IAM Policy, ví dụ CLI/STS cho API access, so sánh Virtual MFA với FIDO2, cùng các best practices và xử lý sự cố.
MFA là gì và vì sao cần trên AWS?
- MFA = “điều bạn biết” (password) + “điều bạn sở hữu” (thiết bị tạo mã/khóa bảo mật).
- Khi bật MFA, kẻ tấn công sẽ không thể đăng nhập chỉ với password bị rò rỉ.
- Trên AWS, MFA giúp bảo vệ: Management Console, API access (thông qua temporary credentials với STS), các thao tác nhạy cảm (xóa tài nguyên, thay đổi cấu hình bảo mật…).
Lợi ích chính
- Giảm thiểu rủi ro lộ mật khẩu, credential stuffing, phishing.
- Nâng mức tuân thủ (CIS AWS Foundations, ISO 27001, SOC 2…).
- Nâng cao kỷ luật bảo mật DevSecOps, đặc biệt với tài khoản có quyền cao.
Nên bật MFA cho ai?
- Bắt buộc cho Root account (tài khoản gốc).
- Tất cả IAM users có quyền truy cập production, quyền quản trị, hoặc dữ liệu quan trọng.
- Khuyến nghị: xem xét chuyển sang AWS IAM Identity Center (AWS SSO) để quản trị người dùng tập trung và MFA nhất quán trong tổ chức.
AWS hỗ trợ những loại MFA nào?
- Virtual MFA (TOTP application): Google Authenticator, Authy, 1Password, Microsoft Authenticator…
- Security key (FIDO2/WebAuthn, U2F): YubiKey, Feitian… — ưu thế chống phishing ở mức giao thức.
- Hardware TOTP token: thiết bị phần cứng tạo mã TOTP chuyên dụng.
- Lưu ý: SMS‑based codes không được khuyến nghị về bảo mật và không hỗ trợ cho IAM users.
So sánh nhanh các lựa chọn MFA trên AWS
Tiêu chí | Virtual MFA (TOTP App) | FIDO2/WebAuthn Security Key | Hardware TOTP Token |
---|---|---|---|
Mức bảo mật | Cao | Rất cao (chống phishing tốt) | Cao |
Trải nghiệm | Tiện lợi trên điện thoại | Cắm/chạm key, rất nhanh | Thiết bị riêng, đơn giản |
Chi phí | Thấp/miễn phí | Trung bình/Cao (mua key) | Trung bình |
Offline | Có | Có | Có |
Dùng cho Console | Có | Có | Có |
Hỗ trợ cho CLI (IAM user) | Dùng với STS GetSessionToken | Dùng tốt qua SSO; với IAM user CLI không nhận mã từ FIDO2 trực tiếp | Dùng với STS GetSessionToken |
Phù hợp | Cá nhân/nhóm nhỏ | Doanh nghiệp, chống phishing | Môi trường kiểm soát chặt |
Yêu cầu đăng nhập
Vui lòng đăng nhập để truy cập nội dung này
Additional Resources
Course Guide
Comprehensive PDF guide with examples
GitHub Repository
Example code for all lessons
Discussion
Have a question about this lesson? Post it here and get answers from instructors and peers.