Site logo
Tác giả
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
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)

AWS User & 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

AWS Roles

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.

AWS 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

  1. Access Denied: Kiểm tra policy được gắn và permission boundary
  2. Lỗi assume role: Xác minh trust relationship và quyền cần thiết
  3. 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

  1. Bật MFA cho tất cả user con người
  2. Tạo service roles cho ứng dụng của bạn
  3. Thiết lập CloudTrail để ghi log audit
  4. Dùng IAM Access Analyzer để xác minh quyền
  5. Cân nhắc dùng AWS Identity Center cho mô hình multi-account

Tài nguyên tham khảo