resourceBased iamRole
1. Định nghĩa
-
IAM Roles:
-
Là "vai trò" cấp quyền tạm thời cho người dùng/dịch vụ AWS.
- Người dùng/dịch vụ phải đảm nhận (assume) role để sử dụng quyền của role đó.
- Hạn chế chính: Khi assume role, bạn từ bỏ tất cả quyền ban đầu và chỉ sử dụng quyền được gán cho role.
-
Resource-Based Policies:
-
Là chính sách được gắn trực tiếp vào tài nguyên AWS (ví dụ: S3 bucket, Lambda function).
- Xác định ai/quyền nào được phép truy cập vào tài nguyên đó.
2. Truy cập Cross-Account
-
Cách 1: Sử dụng IAM Role
-
Ví dụ: Người dùng ở Account A assume role trong Account B để truy cập S3 bucket của Account B.
- Nhược điểm: Người dùng không thể đồng thời sử dụng quyền từ Account A (vì đã từ bỏ quyền gốc khi assume role).
-
Cách 2: Sử dụng Resource-Based Policy
-
Ví dụ: Bucket policy trên S3 bucket (Account B) cho phép người dùng từ Account A truy cập trực tiếp.
- Ưu điểm: Người dùng không cần assume role, giữ nguyên quyền ở Account A và có thêm quyền truy cập tài nguyên ở Account B.
3. Khi nào dùng Resource-Based Policy?
- Khi cần kết hợp quyền từ nhiều nguồn (ví dụ: Người dùng cần scan DynamoDB ở Account A và ghi dữ liệu vào S3 bucket ở Account B trong cùng một tác vụ).
- Dịch vụ hỗ trợ: S3, SNS, SQS, Lambda, API Gateway...
4. Ví dụ thực tế với AWS EventBridge
- EventBridge cần quyền để kích hoạt mục tiêu (target):
- các Target có hỗ trợ Resource-Based Policy (ví dụ: Lambda, SNS, S3):
- EventBridge tự động thêm policy vào target để cho phép kích hoạt.
- các Target không hỗ trợ Resource-Based Policy (ví dụ: Kinesis Data Streams, EC2 Auto Scaling, ECS):
- EventBridge sử dụng IAM role để cấp quyền.
5. Điểm khác biệt chính
IAM Role | Resource-Based Policy |
---|---|
Yêu cầu assume role | Không cần assume role |
Từ bỏ quyền gốc | Giữ nguyên quyền gốc |
Phù hợp cho truy cập đơn nhiệm | Phù hợp cho kết hợp quyền đa tài khoản |
6. Lưu ý cho kỳ thi AWS
- Nhớ các dịch vụ hỗ trợ Resource-Based Policy (S3, Lambda, SQS, SNS).
- EventBridge dùng IAM role cho Kinesis Data Streams, EC2 Auto Scaling... dù Kinesis Data Streams có hỗ trợ resource policy.