การกำหนดเวอร์ชัน การลบด้วย MFA และการจำลองแบบ
เปิดใช้การกำหนดเวอร์ชันเพื่อป้องกันการลบโดยไม่ตั้งใจ กำหนดค่าการจำลองข้ามรีเจียน และเพิ่มการลบด้วย MFA
การกำหนดเวอร์ชัน การลบด้วย MFA และการจำลองแบบ เป็นบทเรียน Cloud & IT Cert Prep ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cloud & IT Cert Prep และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน
การทำเวอร์ชันของ S3: เหตุผลที่สำคัญ
S3 Versioning ช่วยให้คุณเก็บรักษา เรียกคืน และกู้คืนทุกเวอร์ชันของออบเจ็กต์ทุกชิ้นที่จัดเก็บในบักเก็ต เมื่อเปิดใช้การทำเวอร์ชัน การดำเนินการ PUT แต่ละครั้งจะสร้างเวอร์ชันใหม่พร้อมรหัสเวอร์ชันที่ไม่ซ้ำกัน เวอร์ชันเก่าจะถูกเก็บไว้และไม่ถูกเขียนทับ หากลบออบเจ็กต์ S3 จะเพิ่มเครื่องหมายการลบเป็นเวอร์ชันปัจจุบัน แต่ยังคงเก็บเวอร์ชันก่อนหน้าทั้งหมดไว้ วิธีนี้ช่วยป้องกันการเขียนทับโดยไม่ตั้งใจ การลบโดยไม่ตั้งใจ และความเสียหายของข้อมูลจากระดับแอปพลิเคชันที่ไม่ได้ตั้งใจ ซึ่งเป็นสถานการณ์ข้อมูลสูญหายที่พบบ่อยที่สุดในระบบใช้งานจริง
# Enable versioning on a bucket
aws s3api put-bucket-versioning \
--bucket my-important-bucket \
--versioning-configuration Status=Enabled
# List all versions of an object
aws s3api list-object-versions \
--bucket my-important-bucket \
--prefix my-document.pdfสถานะและการเปลี่ยนผ่านของการทำเวอร์ชัน
บักเก็ต S3 สามารถอยู่ในสถานะการทำเวอร์ชันหนึ่งในสามสถานะ ได้แก่ ไม่ทำเวอร์ชัน (ค่าเริ่มต้น ไม่มีรหัสเวอร์ชัน), เปิดใช้การทำเวอร์ชัน (ออบเจ็กต์ใหม่ทั้งหมดจะได้รับรหัสเวอร์ชันที่ไม่ซ้ำกัน และการเขียนทับทั้งหมดจะสร้างเวอร์ชันใหม่) หรือ ระงับการทำเวอร์ชัน (ออบเจ็กต์ใหม่จะได้รับรหัสเวอร์ชัน null แต่เวอร์ชันเดิมยังคงถูกเก็บไว้) เมื่อเปิดใช้การทำเวอร์ชันแล้ว คุณไม่สามารถลบการทำเวอร์ชันได้ ทำได้เพียงระงับเท่านั้น ออบเจ็กต์ที่สร้างก่อนเปิดใช้การทำเวอร์ชันจะมีรหัสเวอร์ชัน null และจะไม่ได้รับผลกระทบจนกว่าจะถูกเขียนทับหรือลบ
การกู้คืนเวอร์ชันก่อนหน้า
หากต้องการกู้คืนเวอร์ชันเก่าของออบเจ็กต์ที่เปิดใช้การทำเวอร์ชัน คุณมีสองตัวเลือก ตัวเลือกที่ 1: คัดลอกรหัสเวอร์ชันเก่ากลับไปยังคีย์เดิม ซึ่งจะสร้างเวอร์ชันใหม่ที่เป็นสำเนาของเนื้อหาเก่าและทำให้เวอร์ชันนั้นเป็นเวอร์ชันปัจจุบัน ตัวเลือกที่ 2: ลบเวอร์ชันปัจจุบันหรือเครื่องหมายการลบ เพื่อให้เวอร์ชันก่อนหน้ากลายเป็นเวอร์ชันปัจจุบัน เมื่อคุณ 'ลบ' ออบเจ็กต์ในบักเก็ตที่เปิดใช้การทำเวอร์ชันผ่านคอนโซลโดยไม่ระบุรหัสเวอร์ชัน S3 จะเพิ่มเครื่องหมายการลบ ออบเจ็กต์จะดูเหมือนถูกลบสำหรับคำขอที่ไม่ใช้เวอร์ชัน แต่เวอร์ชันทั้งหมดจะยังคงอยู่
# Restore a specific version by copying it back to the same key
aws s3api copy-object \
--bucket my-important-bucket \
--copy-source 'my-important-bucket/my-document.pdf?versionId=abc123'\
--key my-document.pdfMFA Delete: การป้องกันเพิ่มเติม
MFA Delete เพิ่มการป้องกันอีกชั้นสำหรับบักเก็ตที่เปิดใช้การทำเวอร์ชัน เมื่อเปิดใช้แล้ว การลบเวอร์ชันใดเวอร์ชันหนึ่งอย่างถาวรหรือการเปลี่ยนสถานะการทำเวอร์ชันของบักเก็ต (เปิดใช้ → ระงับ) จะต้องระบุข้อมูลรับรอง MFA ที่ถูกต้องในคำขอ API วิธีนี้ช่วยป้องกันกรณีผู้โจมตีที่ยึดข้อมูลรับรอง AWS ของคุณได้และลบเวอร์ชันสำคัญอย่างถาวร การลบเวอร์ชันออบเจ็กต์ที่ตรึงไว้โดยไม่ตั้งใจหรือโดยอัตโนมัติ และภัยคุกคามจากบุคคลภายในที่พยายามทำลายบันทึกการตรวจสอบ MFA Delete สามารถเปิดใช้และปิดใช้ได้โดยผู้ใช้รากผ่าน CLI เท่านั้น
# Enable MFA Delete (must be done as root user)
aws s3api put-bucket-versioning \
--bucket my-important-bucket \
--versioning-configuration Status=Enabled,MFADelete=Enabled \
--mfa 'arn:aws:iam::123456789012:mfa/root-account-mfa-device 123456'S3 Object Lock
S3 Object Lock บังคับใช้รูปแบบเขียนครั้งเดียวอ่านได้หลายครั้ง (WORM) เพื่อการปฏิบัติตามข้อกำหนด ออบเจ็กต์ที่ล็อกด้วย Object Lock จะไม่สามารถลบหรือเขียนทับได้ตลอดระยะเวลาเก็บรักษาที่กำหนด แม้แต่ผู้ใช้รากของบัญชีก็ทำไม่ได้ มีสองโหมด ได้แก่ โหมด Governance (ผู้ใช้ที่มีสิทธิ์พิเศษสามารถแทนที่หรือนำการล็อกออกได้) และ โหมด Compliance (ไม่มีใคร แม้แต่ AWS ก็ไม่สามารถลบออบเจ็กต์ได้ในระหว่างระยะเวลาเก็บรักษา เป็นการป้องกันระดับสูงสุด) ต้องเปิดใช้ Object Lock ตั้งแต่ตอนสร้างบักเก็ต และต้องเปิดใช้การทำเวอร์ชันด้วย
# Apply a retention rule to an object
aws s3api put-object-retention \
--bucket my-compliance-bucket \
--key audit-log-2024.csv \
--version-id abc123 \
--retention '{"Mode":"COMPLIANCE","RetainUntilDate":"2027-01-01T00:00:00Z"}'การทำสำเนาข้ามภูมิภาคของ S3 (CRR)
Cross-Region Replication (CRR) ทำสำเนาออบเจ็กต์ใหม่และการอัปเดตจากบักเก็ตต้นทางใน Region หนึ่งไปยังบักเก็ตปลายทางในอีก Region หนึ่งโดยอัตโนมัติ กรณีการใช้งาน ได้แก่ การปฏิบัติตามข้อกำหนด (เก็บสำเนาข้อมูลไว้ในประเทศที่ระบุ), การกู้คืนจากภัยพิบัติ (ลด RPO สำหรับข้อมูลสำคัญโดยเก็บสำเนาไว้ใน Region ที่สอง) และ การลดเวลาแฝง (ให้บริการออบเจ็กต์จาก Region ที่ใกล้ผู้ใช้ที่สุด) CRR ต้องเปิดใช้การทำเวอร์ชันทั้งในบักเก็ตต้นทางและปลายทาง และต้องมีบทบาท IAM ที่มีสิทธิ์ที่จำเป็นสำหรับการทำสำเนา
# Apply a replication configuration
aws s3api put-bucket-replication \
--bucket source-bucket-us-east-1 \
--replication-configuration file://replication-config.json
# Config specifies Role ARN, destination bucket ARN, and filter rulesการทำสำเนาภายใน Region เดียวกัน (SRR)
Same-Region Replication (SRR) ทำสำเนาออบเจ็กต์ภายใน Region เดียวกัน กรณีการใช้งาน ได้แก่ การรวมบันทึก (ทำสำเนาบันทึกจากบักเก็ตต้นทางหลายแห่งมายังบักเก็ตศูนย์กลางแห่งเดียว), การซิงค์สภาพแวดล้อมทดสอบ (เก็บสำเนาข้อมูลระบบใช้งานจริงไว้ในบักเก็ตสำหรับการพัฒนาภายใน Region เดียวกัน) และ การปฏิบัติตามข้อกำหนดด้านอธิปไตยของข้อมูล ภายในประเทศเดียวที่มี AZ ของ AWS หลายแห่ง เช่นเดียวกับ CRR, SRR ต้องเปิดใช้การทำเวอร์ชันในบักเก็ตทั้งสองแห่งและต้องมีบทบาท IAM ระบบจะทำสำเนาเฉพาะออบเจ็กต์ใหม่ที่สร้างหลังเปิดใช้การทำสำเนาโดยอัตโนมัติ หากต้องการทำสำเนาออบเจ็กต์ที่มีอยู่แล้ว ให้ใช้ S3 Batch Replication
การทำสำเนา: สิ่งที่ทำสำเนาและไม่ทำสำเนา
การทำสำเนาของ S3 ทำสำเนาสิ่งต่อไปนี้: ออบเจ็กต์ใหม่ ข้อมูลเมตา แท็ก ACLs และสถานะการเข้ารหัส โดยค่าเริ่มต้น การทำสำเนาจะไม่ทำสำเนาสิ่งต่อไปนี้: ออบเจ็กต์ที่มีอยู่ก่อนเปิดใช้การทำสำเนา (ให้ใช้ S3 Batch Replication), เครื่องหมายการลบ (เว้นแต่คุณเปิดใช้ Delete Marker Replication), ออบเจ็กต์ใน Glacier (ไม่สามารถทำสำเนาได้ ต้องกู้คืนก่อน) และออบเจ็กต์ที่ทำสำเนาแล้ว (ไม่มีการทำสำเนาต่อเนื่องระหว่างบักเก็ตสามแห่ง) การเข้าใจขอบเขตเหล่านี้มีความสำคัญต่อการออกแบบกลยุทธ์ DR ที่ครบถ้วน ซึ่งข้อมูลในอดีตและเหตุการณ์การลบก็จำเป็นต้องทำสำเนาด้วย
การควบคุมเวลาการทำสำเนาของ S3 (RTC)
Replication Time Control (RTC) เป็นส่วนเสริมแบบเลือกใช้สำหรับ CRR ที่มอบข้อตกลงระดับบริการ: ทำสำเนาออบเจ็กต์ 99.99% ให้เสร็จภายใน15 นาที พร้อมตัวชี้วัดและการแจ้งเตือนเกี่ยวกับการทำสำเนาใน CloudWatch หากไม่มี RTC การทำสำเนาจะไม่มีการรับประกันเวลา ออบเจ็กต์ส่วนใหญ่จะถูกทำสำเนาอย่างรวดเร็ว แต่บางรายการอาจใช้เวลาหลายชั่วโมง RTC จำเป็นอย่างยิ่งเมื่อข้อกำหนดด้าน DR หรือการปฏิบัติตามข้อกำหนดของคุณระบุ Recovery Point Objective (RPO) สูงสุดสำหรับข้อมูลใน S3 โดยจะเพิ่มค่าบริการการทำสำเนาต่อ GB นอกเหนือจากค่าโอนข้อมูลสำหรับการทำสำเนาตามปกติ
การทำเวอร์ชันและผลกระทบต่อต้นทุนพื้นที่จัดเก็บ
การเปิดใช้การทำเวอร์ชันทำให้ต้นทุนพื้นที่จัดเก็บเพิ่มขึ้น เนื่องจาก S3 จะเก็บทุกเวอร์ชันของออบเจ็กต์ทุกชิ้นไว้จนกว่าจะมีการลบอย่างชัดเจน ไฟล์ขนาด 100 MB ที่ถูกเขียนทับ 10 ครั้งจะใช้พื้นที่จัดเก็บรวม 1,000 MB ในขณะนี้ คุณสามารถลดผลกระทบนี้ได้ด้วย กฎวงจรชีวิต ที่ทำให้เวอร์ชันที่ไม่ใช่เวอร์ชันปัจจุบันหมดอายุโดยอัตโนมัติหลังผ่านจำนวนวันที่กำหนด (เช่น ลบเวอร์ชันที่ไม่ใช่เวอร์ชันปัจจุบันซึ่งเก่ากว่า 30 วัน) หรือย้ายเวอร์ชันที่ไม่ใช่เวอร์ชันปัจจุบันไปยังคลาสพื้นที่จัดเก็บที่ถูกกว่า เช่น Glacier ควรใช้การทำเวอร์ชันควบคู่กับกฎวงจรชีวิตเสมอ เพื่อควบคุมต้นทุนพื้นที่จัดเก็บในระบบจริง
# Lifecycle rule to expire non-current versions after 30 days
aws s3api put-bucket-lifecycle-configuration \
--bucket my-important-bucket \
--lifecycle-configuration '{"Rules":[{"ID":"expire-old-versions","Status":"Enabled","NoncurrentVersionExpiration":{"NoncurrentDays":30}}]}'การป้องกันแรนซัมแวร์
การทำเวอร์ชันของ S3 ร่วมกับ Object Lock (โหมด Compliance) ให้การป้องกันแรนซัมแวร์ที่มีประสิทธิภาพ หากผู้โจมตีเข้ารหัสหรือลบออบเจ็กต์ของคุณ การทำเวอร์ชันจะทำให้เวอร์ชันก่อนหน้ายังคงอยู่ (เว้นแต่ผู้โจมตีจะลบเวอร์ชันเหล่านั้นอย่างถาวร ซึ่งเป็นเหตุผลที่ Object Lock ป้องกันการลบถาวรในช่วงเวลาการเก็บรักษา) เพื่อการป้องกันสูงสุด ให้เปิดใช้การทำเวอร์ชัน เปิดใช้ MFA Delete ใช้ Object Lock ในโหมด Compliance กับข้อมูลสำคัญ และจำลองข้อมูลไปยัง Region ที่สองด้วยข้อมูลประจำตัว IAM ที่แยกจากกัน เพื่อป้องกันไม่ให้การถูกโจมตีบัญชีเดียวทำลายสำเนาทั้งหมดได้
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความเข้าใจแนวคิด AWS Solutions Architect (SAA-C03) จากบทเรียนนี้
สรุปบทเรียน
ในบทเรียนนี้ คุณได้เรียนรู้ว่า การทำเวอร์ชันจะเก็บรักษาทุกเวอร์ชันของออบเจ็กต์ทุกชิ้นและป้องกันการลบโดยไม่ตั้งใจ MFA Delete และ Object Lock เพิ่มความไม่เปลี่ยนแปลงของข้อมูลสำหรับการปฏิบัติตามข้อกำหนดและการป้องกันแรนซัมแวร์ และ CRR กับ SRR จำลองออบเจ็กต์ไปยังบักเก็ตอื่นเพื่อให้เป็นไปตามข้อกำหนดด้าน DR และการปฏิบัติตามข้อกำหนด ต่อไปเราจะสำรวจคลาสพื้นที่จัดเก็บของ S3 และนโยบายวงจรชีวิตเพื่อเพิ่มประสิทธิภาพด้านต้นทุน
คำถามที่พบบ่อย
บทเรียน “การกำหนดเวอร์ชัน การลบด้วย MFA และการจำลองแบบ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การกำหนดเวอร์ชัน การลบด้วย MFA และการจำลองแบบ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cloud & IT Cert Prep ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การกำหนดเวอร์ชัน การลบด้วย MFA และการจำลองแบบ”
เปิดใช้การกำหนดเวอร์ชันเพื่อป้องกันการลบโดยไม่ตั้งใจ กำหนดค่าการจำลองข้ามรีเจียน และเพิ่มการลบด้วย MFA คุณปฏิบัติ Cloud & IT Cert Prep ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cloud & IT Cert Prep หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cloud & IT Cert Prep บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การกำหนดเวอร์ชัน การลบด้วย MFA และการจำลองแบบ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cloud & IT Cert Prep นี้ได้ไหม
ได้ บทเรียน Cloud & IT Cert Prep ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- บักเก็ต ออบเจ็กต์ และรีเจียน
- การควบคุมการเข้าถึง S3: นโยบายบักเก็ตและ ACL
- การกำหนดเวอร์ชัน การลบด้วย MFA และการจำลองแบบ
- คลาสพื้นที่จัดเก็บและนโยบายวงจรชีวิต