MFA Delete trong Amazon S3:
1. MFA (Multi-Factor Authentication) là gì?¶
MFA là một phương pháp bảo mật yêu cầu người dùng cung cấp hai hoặc nhiều yếu tố xác thực để truy cập tài nguyên. Các yếu tố này bao gồm: - Something you know: Một thông tin người dùng biết (mật khẩu hoặc mã PIN). - Something you have: Một thiết bị vật lý như điện thoại hoặc thiết bị bảo mật phần cứng (hardware token). - Something you are: Yếu tố sinh trắc học như dấu vân tay hoặc nhận diện khuôn mặt.
Ví dụ:
- Dùng Google Authenticator để tạo mã MFA trên điện thoại.
- Sử dụng thiết bị phần cứng (như YubiKey) để cung cấp mã xác thực.
2. MFA Delete là gì?¶
- MFA Delete là một tính năng bảo mật nâng cao trong Amazon S3.
- Nó bảo vệ chống lại các hành động hủy hoại (destructive actions) như:
- Xóa vĩnh viễn một phiên bản đối tượng (object version).
- Tạm dừng Versioning trên bucket.
Khi kích hoạt MFA Delete, bạn cần nhập mã MFA mỗi khi thực hiện các hành động trên.
3. Điều kiện để sử dụng MFA Delete¶
- Bật Versioning trên S3 bucket:
- Versioning là một tính năng trong S3 cho phép lưu trữ nhiều phiên bản của cùng một đối tượng. Khi bật, bạn có thể khôi phục phiên bản cũ nếu phiên bản mới bị thay đổi hoặc xóa.
-
MFA Delete chỉ hoạt động khi Versioning đã được bật.
-
Tài khoản root hoặc bucket owner:
- Chỉ tài khoản root hoặc chủ sở hữu bucket mới có quyền bật/tắt MFA Delete.
4. Các hành động yêu cầu/không yêu cầu MFA¶
- Yêu cầu mã MFA:
- Xóa vĩnh viễn phiên bản của đối tượng (permanent delete an object version).
-
Tạm dừng Versioning trên bucket.
-
Không yêu cầu mã MFA:
- Bật Versioning.
- Liệt kê các phiên bản đã bị xóa (list deleted versions).
Lý do: Các hành động này không gây ra rủi ro cao hoặc không phá hủy dữ liệu.
5. Cách kích hoạt MFA Delete¶
- Bật Versioning cho bucket:
- Lệnh AWS CLI:
- Kích hoạt MFA Delete:
- Lệnh AWS CLI:
- arn-of-mfa-device: ARN của thiết bị MFA.
- mfa-code: Mã MFA hiện tại từ ứng dụng hoặc thiết bị.
6. Lợi ích của MFA Delete¶
- Bảo vệ dữ liệu: Ngăn chặn việc xóa vĩnh viễn hoặc vô ý các phiên bản đối tượng.
- An toàn hơn trong môi trường dùng chung: Đặc biệt hữu ích khi nhiều người có quyền quản lý bucket.
7. Hạn chế của MFA Delete¶
- Chỉ có tài khoản root hoặc chủ sở hữu bucket mới có thể kích hoạt hoặc vô hiệu hóa.
- Việc sử dụng tài khoản root là một best practice bị hạn chế trong AWS vì lý do bảo mật.
8. Tổng quan quy trình bảo vệ với MFA Delete¶
- Bật Versioning: Đây là bước bắt buộc để sử dụng MFA Delete.
- Bật MFA Delete: Chỉ thực hiện bởi tài khoản root.
- Xác thực mã MFA: Yêu cầu mã MFA khi thực hiện các hành động phá hủy dữ liệu.
lab
generate root access keys¶
aws configure --profile root-mfa-delete-demo
enable mfa delete¶
aws s3api put-bucket-versioning --bucket mfa-demo-stephane --versioning-configuration Status=Enabled,MFADelete=Enabled --mfa "arn-of-mfa-device mfa-code" --profile root-mfa-delete-demo
disable mfa delete¶
aws s3api put-bucket-versioning --bucket mfa-demo-stephane --versioning-configuration Status=Enabled,MFADelete=Disabled --mfa "arn-of-mfa-device mfa-code" --profile root-mfa-delete-demo