Sunday, January 19, 2025

[AWS] S3 MFA-Delete

-

MFA-Delete là một tính năng của Amazon S3 giúp ngăn chặn các hoạt động xóa không cần thiết trên đối tượng S3. Để sử dụng tính năng này, bạn cần bật tính năng Versioning cho bucket S3 của mình trước tiên. Sau đó, bạn sẽ cần sử dụng MFA (multi factor authentication – xác thực nhiều yếu tố) để thực hiện các hoạt động quan trọng trên đối tượng S3, bao gồm xóa vĩnh viễn một phiên bản đối tượng hoặc tạm ngừng tính năng Versioning trên bucket.

Tuy nhiên, bạn không cần sử dụng MFA để bật tính năng Versioning hoặc liệt kê các phiên bản đối tượng đã bị xóa. Ngoài ra, chỉ có chủ sở hữu của bucket (tài khoản root) mới có thể bật hoặc tắt tính năng MFA-Delete.

Hiện tại, tính năng MFA-Delete chỉ có thể được bật thông qua AWS Command Line Interface (CLI). Tính năng này sẽ yêu cầu người dùng nhập mã xác thực từ thiết bị MFA của họ trước khi thực hiện các hoạt động quan trọng trên đối tượng S3 được bảo vệ.

Được rồi, bây giờ chúng ta hãy demo tính năng này bằng cách vào Amazon S3 › Create bucket và tạo 1 bucket mới.

Kích hoạt Bucket Versioning và bấm Create bucket.

Hãy vào bucket demo-stephane-mfa-delete-2020 vừa tạo xong, vào tab Properties, tại Bucket Versioning vào Edit.

Như bạn có thể thấy Multi-factor authentication (MFA) delete đang bị vô hiệu hoá và bạn không thể bật nó thông qua giao diện người dùng vì một số lý do nào đó và có thể một ngày nào đó họ cũng có thể cho phép kích hoạt nó trên giao diện người dùng.

Bây giờ chúng ta vẫn phải kích hoạt nó bằng AWS CLI, điều kiện tiên quyết là bạn đã thiết lập 1 thiết bị MFA ở trong IAM cho tài khoản root của bạn.

Nếu bạn vào Your Security Credentials tại phần Multi-factor authentication (MFA) bạn có thể thấy mình đã thiết lập 1 thiết bị ảo cho MFA của mình. Nói thêm xíu về Multi-factor authentication (MFA) thì cung cấp mô tả về việc sử dụng MFA (Multi-factor authentication) để tăng cường bảo mật cho môi trường AWS của bạn. Đăng nhập vào tài khoản được bảo vệ bằng MFA yêu cầu người dùng nhập tên đăng nhập, mật khẩu và mã xác thực từ thiết bị MFA. MFA được sử dụng để đảm bảo rằng chỉ người dùng có đầy đủ thông tin xác thực mới có thể truy cập vào tài khoản của mình trên AWS, giúp bảo vệ chống lại các cuộc tấn công truy cập trái phép và đánh cắp dữ liệu.

Điều tiếp theo mình làm là tạo các khoá truy cập mới.

Hãy nhớ đừng chia sẻ khoá này cho ai, lý do mình chia sẻ là lát mình sẽ xoá khoá này.

Bây giờ chúng ta vào AWS CLI để thiết lập Profile.

Last login: Tue Dec 1 19:08:49 on ttys000
aws configure --profile root-mfa-delete-demo
AWS Access Key ID [None]: AKIAIBDXM4UJBGAQNVDA
AWS Secret Access Key [None]: 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
Default region name [None]: eu-west-1
Default output format [None]:

Giờ chúng ta hãy test xem AWS CLI đã hoạt động chưa bằng cách aws s3 ls –profile root-mfa-delete-demo và kết quả mình đã liệt kê được 3 bucket mà mình có.

aws s3 ls --profile root-mfa-delete-demo
2020-12-08 18:17:54 demo-stephane-cors-2020
2020-12-08 18:29:50 demo-stephane-mfa-delete-2020
2020-12-08 18:06:10 demo-stephane-s3-bucket-2020

Giờ chúng ta hãy bật tính năng Multi-factor authentication (MFA) delete bằng lệnh dưới, nhớ thay thế đúng thông tin ở –bucket và arn:aws:iam::001736599714:mfa/root-account-mfa-device chính là thông tin Serial number lấy ở thiết bị MFA ảo, số 710343 chính là 6 chữ số được gửi xuống thiết bị MFA ảo.

aws s3api put-bucket-versioning --bucket demo-stephane-mfa-delete-2020 --versioning-configuration Status=Enabled, MFADelete=Enabled -mfa "arn:aws:iam::001736599714:mfa/root-account-mfa-device 710343" --profile root-mfa-delete-demo

Dưới đây là hình ảnh Serial number của thiết bị MFA ảo.

Bây giờ Multi-factor authentication (MFA) delete của chúng ta đã được kích hoạt.

Để kiểm tra hoạt động của nó, mình tải lên 1 file ảnh coffee.jpg và tiến hành xoá nó.

Vẫn như thường lệ hãy nhập delete vào ô to confirm deletion, type delete in the field và bấm Delete objects.

Sau khi xoá xong, bạn tích vào List versions sẽ thấy có đánh dấu phiên bản xoá file coffee.jpg. Bây giờ để xoá file coffee.jpg vĩnh viễn, hãy chỉ định id phiên bản cụ thể, sau đó bấm Delete.

Thông báo You can’t delete object versions because Multi-factor authentication (MFA) delete is enabled for this bucket có nghĩa là bạn không thể xóa các phiên bản đối tượng trong bucket vì MFA-Delete đã được kích hoạt cho bucket này. MFA-Delete là tính năng bảo mật bổ sung trên AWS S3, yêu cầu người dùng xác thực bằng cách nhập mã xác thực trên thiết bị MFA trước khi thực hiện các thao tác nhất định, bao gồm xóa các phiên bản đối tượng. Vì vậy, để xóa các phiên bản đối tượng, bạn phải xác thực bằng MFA trước đó. Bạn cần sử dụng các công cụ như AWS CLI, AWS SDK hoặc Amazon S3 REST API. Nó yêu cầu bạn phải sử dụng các công cụ này để thực hiện thao tác thay đổi cài đặt liên quan đến MFA Delete, ví dụ như bật hoặc tắt tính năng này. Các công cụ này cung cấp một giao diện lập trình ứng dụng cho phép bạn tương tác với Amazon S3 thông qua các lệnh hoặc API.

Bây giờ để xoá được file chúng ta cần phải tắt tính năng MFA-Delete bằng cách vào AWS CLI chạy lệnh dưới.

aws s3api put-bucket-versioning --bucket demo-stephane-mfa-delete-2020 --versioning-configuration Status=Enabled, MFADelete=Disable -mfa "arn:aws:iam::001736599714:mfa/root-account-mfa-device 625343" --profile root-mfa-delete-demo

Chạy lệnh thành công, bạn sẽ thấy tính năng MFA-Delete đã bị vô hiệu hoá.

Và nếu bây giờ bạn chọn 1 id phiên bản cụ thể để xoá.

Kết quả bạn đã xoá thành công vĩnh viễn 1 phiên bản cụ thể.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories