- Tác giả
- Name
- Nguyễn Đức Xinh
- Ngày xuất bản
- Ngày xuất bản
Hướng Dẫn Toàn Diện AWS IAM: Nền tảng Quản lý Danh tính và Truy cập
Giới thiệu
AWS Identity and Access Management (IAM) là nền tảng cốt lõi về bảo mật trong Amazon Web Services. Đây là dịch vụ web giúp bạn kiểm soát truy cập vào tài nguyên AWS một cách an toàn bằng cách quản lý xác thực (authentication) và ủy quyền (authorization). Hãy hình dung IAM như người gác cổng của môi trường AWS — quyết định ai có thể vào, họ được làm gì và được truy cập tài nguyên nào.
Trong hướng dẫn toàn diện này, chúng ta sẽ khám phá IAM từ cơ bản đến nâng cao, bao gồm các khái niệm, thực hành tốt nhất và chiến lược triển khai thực tế thường dùng trong môi trường production.
AWS IAM là gì?
AWS IAM là dịch vụ miễn phí cho phép bạn quản lý truy cập vào các dịch vụ và tài nguyên AWS một cách an toàn. Với IAM, bạn có thể tạo và quản lý người dùng (users), nhóm (groups) và sử dụng policy để cho phép hoặc từ chối quyền truy cập.
Xem thêm: https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html
Lợi ích chính của IAM
- Centralized Access Control: Trung tâm hóa kiểm soát truy cập
- Granular Permissions: Phân quyền chi tiết đến mức hành động và tài nguyên
- Secure by Default (Least Privilege): Mặc định an toàn theo nguyên tắc Least Privilege
- Integration: Tích hợp liền mạch với tất cả dịch vụ AWS
- Compliance: Hỗ trợ đáp ứng yêu cầu tuân thủ và bảo mật
- Cost-Effective: Không phát sinh chi phí sử dụng IAM
Các thành phần cốt lõi của IAM
Hiểu vững các thành phần này là chìa khóa để triển khai IAM hiệu quả:
1. Users
IAM User đại diện cho từng cá nhân hoặc ứng dụng cần tương tác với dịch vụ AWS. Mỗi user có thông tin xác thực riêng và có thể được gán các quyền cụ thể. Mỗi khi đăng ký tài khoản AWS, bạn sẽ có một user mặc định là tài khoản root. Tuy nhiên, không nên sử dụng tài khoản root cho các tác vụ hàng ngày.
Thực hành tốt nhất cho Users:
- Tạo user riêng cho từng cá nhân
- Dùng username có ý nghĩa phản ánh vai trò
- Bật MFA (Multi-Factor Authentication) để tăng cường bảo mật
- Thường xuyên rotate access key
Xem thêm: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html
2. Groups
Group là tập hợp các user có yêu cầu truy cập tương tự. Thay vì gán quyền trực tiếp cho từng user, bạn gán quyền cho group để quản lý hiệu quả hơn. Group chỉ chứa các user, không thể chứa group khác. 1 user có thể thuộc 0 hoặc nhiều group
Chiến lược tạo Group:
- Tạo group theo chức năng công việc (Developers, Admins, Analysts)
- Đặt tên group rõ ràng, mô tả đúng chức năng
- Tránh lồng group (IAM không hỗ trợ phân cấp group)
3. Roles
3.1 AWS IAM Role là gì?
IAM Role là một danh tính (identity) trong AWS, tương tự như IAM User, nhưng có một số điểm khác biệt:
- Role không gắn cố định với một người dùng cụ thể mà có thể được "assume" (đảm nhận) bởi bất kỳ ai, dịch vụ hay ứng dụng cần quyền truy cập.
- Role không có thông tin đăng nhập dài hạn (như mật khẩu hoặc access key). Thay vào đó, khi được assume, nó sẽ cấp thông tin xác thực tạm thời.
- Role được gắn với chính sách phân quyền (permission policies) để xác định những hành động được phép hoặc bị cấm trong AWS.
3.2 Ứng dụng của IAM Role:
- Trao quyền cho người dùng, dịch vụ hoặc ứng dụng không có quyền truy cập mặc định. E.g: EC2 instances truy cập dịch vụ AWS khác
- Cho phép truy cập chéo giữa các tài khoản AWS(AWS cross-account).
- Cấp quyền cho ứng dụng di động mà không cần nhúng AWS key trực tiếp vào code.
- Cho phép người dùng từ hệ thống danh tính bên ngoài (ví dụ: directory công ty) truy cập AWS.
- Cấp quyền cho bên thứ ba (ví dụ: kiểm toán viên) để họ có thể xem xét tài nguyên AWS của bạn.
Xem thêm: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html
4. Policies
4.1 AWS IAM Policy là gì?
- IAM Policy là một tài liệu JSON dùng để xác định quyền truy cập trong AWS. Nó quy định hành động nào(actions) được cho phép hoặc từ chối trên tài nguyên(resources) cụ thể dưới các điều kiện nào (conditions).
- Có thể gắn với identity (user, group, role) → identity-based policy.
- Hoặc gắn trực tiếp vào tài nguyên → resource-based policy.
Xem thêm: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html
IAM security tools
1. IAM Access Analyzer
Công cụ này giúp bạn phân tích và xác định các tài nguyên AWS có thể truy cập từ bên ngoài tài khoản hoặc tổ chức của bạn. Nó giúp phát hiện các cấu hình không mong muốn và đảm bảo rằng các tài nguyên chỉ được truy cập bởi các entity mà bạn dự định.
2. Multi-Factor Authentication (MFA)
MFA thêm một lớp bảo mật bổ sung bằng cách yêu cầu người dùng cung cấp hai hoặc nhiều yếu tố xác thực trước khi được phép truy cập. Điều này làm giảm nguy cơ truy cập trái phép ngay cả khi mật khẩu bị lộ.
3. IAM Credential Report
Báo cáo này cung cấp cái nhìn tổng quan về thông tin xác thực của tất cả user trong tài khoản AWS của bạn, bao gồm trạng thái mật khẩu, access key và MFA. Báo cáo này giúp bạn rà soát và quản lý thông tin xác thực một cách hiệu quả
4. Access Advisor
Công cụ này cung cấp thông tin về các dịch vụ AWS mà một user hoặc role đã truy cập. Nó giúp bạn đánh giá mức độ sử dụng quyền và xác định các quyền không cần thiết để áp dụng nguyên tắc least privilege.
Thực hành bảo mật tốt nhất
1. Không sử dụng tài khoản root
Không sử dụng tài khoản root ngoại trừ cần thiết lập tài khoản
2. Gán users vào group và gán quyền cho group
3. Thiết lập và tạo password policy mạnh mẽ
4. Áp dụng nguyên tắc Least Privilege
Bắt đầu với quyền tối thiểu và chỉ bổ sung khi thực sự cần. Điều này giảm bề mặt tấn công và giới hạn thiệt hại khi thông tin xác thực bị lộ.
5. Dùng IAM Roles thay cho Users đối với ứng dụng, AWS service
Ứng dụng nên dùng IAM role với temporary credentials thay vì access key dài hạn. Cách này an toàn và dễ quản trị hơn.
6. Bật Multi-Factor Authentication (MFA)
Yêu cầu MFA cho:
- Tất cả user con người truy cập AWS console
- Các thao tác đặc quyền
- Tài khoản root
7. Rà soát quyền truy cập định kỳ
Thực hiện định kỳ để:
- Xóa user và role không dùng
- Audit mức quyền có phù hợp không
- Rotate access key thường xuyên
- Giám sát qua AWS CloudTrail
8. Sử dụng Policy Conditions
Tăng cường kiểm soát bằng condition trong policy:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*",
"Condition": {
"IpAddress": {
"aws:SourceIp": ["203.0.113.0/24", "198.51.100.0/24"]
},
"DateGreaterThan": {
"aws:CurrentTime": "2024-01-01T00:00:00Z"
}
}
}
]
}
Khái niệm IAM nâng cao
Cross-Account Access
IAM cho phép truy cập an toàn giữa các tài khoản AWS thông qua role. Điều này cần thiết cho:
- Kiến trúc multi-account
- Cấp quyền cho nhà cung cấp (vendor)
- Quản lý bảo mật tập trung
IAM Identity Center (trước đây là AWS SSO)
Với tổ chức có nhiều tài khoản AWS, IAM Identity Center cung cấp:
- Quản lý truy cập tập trung
- Tích hợp nhà cung cấp danh tính bên ngoài (IdP)
- Khả năng single sign-on
Service-Linked Roles
Đây là các role được dịch vụ AWS tạo sẵn cho mục đích cụ thể. Chúng:
- Đơn giản hóa thiết lập dịch vụ
- Đảm bảo quyền phù hợp
- Được AWS tự động quản lý
Giám sát và khắc phục sự cố
Tích hợp CloudTrail
AWS CloudTrail ghi lại mọi hoạt động IAM, cho phép bạn:
- Theo dõi thay đổi quyền
- Phát hiện vấn đề bảo mật
- Duy trì audit trail
- Đáp ứng yêu cầu tuân thủ
IAM Access Analyzer
Công cụ này giúp bạn:
- Phát hiện tài nguyên được chia sẻ ra bên ngoài
- Xác minh policy chỉ cấp quyền như dự định
- Sinh policy dựa trên hoạt động truy cập
Tình huống khắc phục thường gặp
- Access Denied: Kiểm tra policy được gắn và permission boundary
- Lỗi assume role: Xác minh trust relationship và quyền cần thiết
- Sự cố MFA: Đảm bảo cấu hình MFA đúng và đồng bộ thời gian
Shared Responsibility Model for IAM in AWS
Với vai trò là người dùng, bạn chịu trách nhiệm về bảo mật trong đám mây, đặc biệt là cách bạn cấu hình và sử dụng IAM. Trách nhiệm của bạn bao gồm:
- Quản lý và theo dõi Users, Groups, Roles và Policies: Định nghĩa ai có quyền truy cập vào tài nguyên nào và quản lý quyền truy cập một cách cẩn thận.
- Kích hoạt MFA cho tất cả tài khoản: Bắt buộc sử dụng xác thực đa yếu tố (Multi-Factor Authentication) để tăng cường bảo mật.
- Thường xuyên xoay vòng các Access Keys: Giảm thiểu nguy cơ lộ thông tin bằng cách thay đổi khóa truy cập định kỳ.
- Sử dụng các công cụ IAM một cách hợp lý: Áp dụng nguyên tắc “quyền tối thiểu” (least privilege) bằng cách sử dụng IAM Access Analyzer, permission boundaries và các chính sách.
- Phân tích pattern truy cập & đánh giá lại quyền hạn: Theo dõi các hành vi truy cập để xác định và điều chỉnh lại quyền cho phù hợp.
Kết luận
AWS IAM là dịch vụ mạnh mẽ và linh hoạt, tạo nền tảng cho bảo mật trên AWS. Bằng cách hiểu rõ các thành phần cốt lõi, áp dụng thực hành tốt nhất và tuân thủ nguyên tắc least privilege, bạn có thể xây dựng tư thế bảo mật vững chắc cho môi trường AWS của mình.
Hãy nhớ rằng IAM không phải cấu hình một lần rồi thôi, mà là quá trình liên tục. Cần rà soát, giám sát và cập nhật thường xuyên để duy trì mức an toàn khi hạ tầng AWS phát triển.
Các bước tiếp theo
- Bật MFA cho tất cả user con người
- Tạo service roles cho ứng dụng của bạn
- Thiết lập CloudTrail để ghi log audit
- Dùng IAM Access Analyzer để xác minh quyền
- Cân nhắc dùng AWS Identity Center cho mô hình multi-account
Tài nguyên tham khảo
- AWS IAM User Guide: https://docs.aws.amazon.com/IAM/latest/UserGuide/
- IAM Best Practices: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html
- AWS Security Best Practices: https://aws.amazon.com/architecture/security-identity-compliance/
- IAM Policy Simulator: https://policysim.aws.amazon.com/