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.

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

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

IAM Role tương tự user nhưng được thiết kế để các thực thể khác nhau có thể assume (nhận) khi cần. Role đặc biệt hữu ích cho:

  • EC2 instances truy cập dịch vụ AWS khác
  • Truy cập cross-account
  • Tình huống cấp quyền tạm thời
  • Giao tiếp service-to-service

AWS Roles

4. Policies

Policy là tài liệu JSON định nghĩa quyền. Policy chỉ ra hành động nào (actions) được phép hoặc bị từ chối trên tài nguyên nào (resources) dưới các điều kiện nào (conditions).

AWS Policy

Hiểu về IAM Policies

Policy là trái tim của hệ thống phân quyền IAM. Cùng phân tích cấu trúc của chúng:

Cấu trúc Policy

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:user/my-user"
      },
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::my-bucket/*"
      ],
      "Condition": {
        "StringEquals": {
          "s3:x-amz-server-side-encryption": "AES256"
        }
      }
    }
  ]
}

Giải thích các thành phần Policy

  • Version: Phiên bản ngôn ngữ policy (sử dụng "2012-10-17")
  • Statement: Bao chứa các mệnh đề policy
  • Sid: Identifier cho policy (tùy chọn)
  • Effect: Allow hoặc Deny
  • Principal: Đối tượng được phép truy cập (tùy chọn). Có thể là Account/user/role
  • Action: Các hành động dịch vụ AWS cụ thể
  • Resource: Tài nguyên AWS mà hành động áp dụng
  • Condition: Ràng buộc bổ sung (tùy chọn)

Các loại Policy

  1. AWS Managed Policies: Policy dựng sẵn do AWS duy trì
  2. Customer Managed Policies: Policy do bạn tự tạo và quản lý
  3. Inline Policies: Policy gắn trực tiếp vào user, group hoặc role

Thực hành bảo mật tốt nhất

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

Gán users vào group và gán quyền cho group

Thiết lập và tạo password policy mạnh mẽ

1. Á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ộ.

2. 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.

3. 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

4. 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

5. 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