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

AWS IAM Policy là gì? Giới thiệu, vai trò và cách sử dụng trong quản lý truy cập AWS

IAM Policy là gì?

IAM Policy là một document định nghĩa permissions (quyền hạn) trên AWS, xác định chính xác những gì một user, group, role hoặc resource được phép hoặc không được phép làm. IAM Policy được viết dưới dạng JSON và hoạt động theo nguyên tắc "default deny" - tức là mặc định mọi quyền truy cập đều bị từ chối trừ khi được cấp phép rõ ràng.

Ví dụ về một IAM Policy đơn giản:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::example-bucket"
    }
  ]
}

Policy trên cho phép list nội dung của một S3 bucket cụ thể.

Tại sao cần IAM Policy?

  • Bảo vệ tài nguyên AWS khỏi truy cập trái phép.
  • Phân quyền chi tiết cho từng user, group, role.
  • Đáp ứng yêu cầu bảo mật, tuân thủ (compliance).
  • Quản lý tập trung, dễ audit và kiểm soát.

Tại sao IAM Policy quan trọng?

IAM Policy đóng vai trò then chốt trong việc bảo mật tài nguyên AWS của bạn:

  1. Principle of Least Privilege: Giúp cấp đúng quyền cần thiết cho từng đối tượng
  2. Quản lý tập trung: Dễ dàng kiểm soát quyền truy cập cho toàn bộ tổ chức
  3. Compliance: Đáp ứng yêu cầu tuân thủ bảo mật và kiểm toán
  4. Linh hoạt: Cung cấp nhiều cách để kiểm soát quyền ở mức chi tiết
  5. Giảm thiểu rủi ro: Hạn chế khả năng xảy ra sự cố bảo mật

Các loại AWS IAM Policy

AWS cung cấp ba loại IAM Policy chính:

  1. AWS Managed Policies: Được tạo và quản lý bởi AWS, được cập nhật tự động khi có dịch vụ mới.
  2. Customer Managed Policies: Do khách hàng tạo và quản lý, linh hoạt hơn khi cần điều chỉnh quyền.
  3. Inline Policy: Gắn trực tiếp vào một user, group hoặc role cụ thể, Thường dùng cho các quyền đặc biệt, không dùng lại nhiều lần.

Cấu trúc của một IAM Policy

Một policy là tài liệu JSON gồm các phần:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow", // hoặc "Deny"
      "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: Cho phép (Allow) hoặc từ chối (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)

So sánh IAM Policy với các giải pháp tương tự

Tiêu chí AWS IAM Policy Azure RBAC Google Cloud IAM
Định dạng JSON JSON YAML/JSON
Quản lý tập trung
Phân quyền chi tiết Rất chi tiết Chi tiết Chi tiết
Managed Policy
Inline Policy Không Không
Audit & Logging CloudTrail Azure Monitor Cloud Audit Logs
Tích hợp dịch vụ AWS Tối ưu Không Không

Lưu ý khi sử dụng IAM Policy

  • Chỉ cấp quyền tối thiểu cần thiết (Principle of Least Privilege).
  • Thường xuyên review, audit policy.
  • Sử dụng AWS Managed Policy cho các quyền phổ biến.
  • Tạo Customer Managed Policy cho nhu cầu đặc biệt.
  • Kết hợp với các dịch vụ bảo mật khác như AWS CloudTrail, AWS Config.

Kết luận

AWS IAM Policy là công cụ mạnh mẽ giúp kiểm soát truy cập, bảo vệ tài nguyên AWS, đáp ứng yêu cầu bảo mật và tuân thủ. Việc hiểu rõ, thiết kế và áp dụng policy đúng cách là nền tảng cho một hệ thống cloud an toàn, hiệu quả.

Tài liệu tham khảo