การบล็อกการเข้าถึงแบบสาธารณะและนโยบายบักเก็ต
ป้องกันไม่ให้ออบเจ็กต์ S3 ของคุณถูกเปิดเผยต่อสาธารณะโดยไม่ตั้งใจ
การบล็อกการเข้าถึงแบบสาธารณะและนโยบายบักเก็ต เป็นบทเรียน AWS Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AWS Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AWS Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
การรั่วไหลที่พบบ่อยที่สุด
ข้อมูลที่รั่วไหลจากบักเก็ตS3 (บริการจัดเก็บข้อมูลแบบง่าย) ที่กำหนดค่าผิดพลาด เป็นหนึ่งในเหตุการณ์ข้อมูลรั่วไหลบนคลาวด์ที่พบบ่อยที่สุด การตั้งค่าผิดเพียงจุดเดียวอาจเปิดเผยออบเจ็กต์หลายล้านรายการให้ทั้งอินเทอร์เน็ตเข้าถึงได้
โดยค่าเริ่มต้น S3 จะเป็นส่วนตัว แต่ชั้นสิทธิ์หลายชั้นอาจเปิดการเข้าถึงโดยไม่ตั้งใจ การเข้าใจชั้นเหล่านี้เป็นความรู้ด้านความปลอดภัยที่จำเป็น
ชั้นการเข้าถึง S3
การเข้าถึงออบเจ็กต์ S3 อาจได้รับอนุญาตผ่านกลไกหลายอย่าง:
- นโยบาย IAM ที่กำหนดให้ผู้ใช้และบทบาท
- นโยบายบักเก็ต ที่แนบกับบักเก็ต
- ACL (รายการควบคุมการเข้าถึง) ของบักเก็ตและออบเจ็กต์
- การตั้งค่าบล็อกการเข้าถึงสาธารณะที่มีผลเหนือการตั้งค่าอื่น
การเปิดเผยต่อสาธารณะมักเกิดจากนโยบายบักเก็ตหรือ ACL ที่กำหนดผิดพลาด
บล็อกการเข้าถึงสาธารณะ
การบล็อกการเข้าถึงสาธารณะของ S3 (BPA) คือสวิตช์ความปลอดภัยหลัก เมื่อเปิดใช้งาน จะมีผลเหนือกว่านโยบายบักเก็ตหรือ ACL ใด ๆ ที่อนุญาตการเข้าถึงสาธารณะ ไม่ว่านโยบายเหล่านั้นจะระบุไว้อย่างไร
ปัจจุบัน AWS เปิดใช้ BPA เป็นค่าเริ่มต้นสำหรับบักเก็ตใหม่ ให้เปิดใช้งานไว้ในระดับบัญชี เพื่อไม่ให้นโยบายที่กำหนดผิดเพียงรายการเดียวทำให้ข้อมูลรั่วไหลสู่สาธารณะ
BPA ทำงานอย่างไร
BPA มีการตั้งค่าอิสระสี่รายการ ได้แก่ บล็อก ACL สาธารณะ เพิกเฉยต่อ ACL สาธารณะที่มีอยู่ บล็อกนโยบายบักเก็ตสาธารณะ และจำกัดการเข้าถึงสาธารณะผ่านจุดเชื่อมต่อใด ๆ
เมื่อนำมารวมกัน การตั้งค่าเหล่านี้จะเป็นเพดานที่เข้มงวด แม้มีผู้เขียนนโยบายอนุญาตการอ่านแบบสาธารณะ BPA ก็จะปฏิเสธ นี่คือแนวป้องกันที่แข็งแกร่งที่สุดของคุณต่อการเปิดเผยข้อมูลโดยไม่ตั้งใจ
นโยบายบักเก็ต
นโยบายบักเก็ตคือนโยบาย JSON แบบอิงทรัพยากรที่แนบกับบักเก็ต โดยกำหนดว่าใคร (ตัวการ) สามารถดำเนินการใดกับออบเจ็กต์ใดได้ และภายใต้เงื่อนไขใด
นโยบายบักเก็ตมีประสิทธิภาพมากสำหรับการเข้าถึงข้ามบัญชีและการควบคุมแบบละเอียด แต่การกำหนด Principal เป็น "*" โดยไม่ระมัดระวังจะเปิดให้คนทั้งโลกเข้าถึงได้ โปรดตรวจสอบอย่างรอบคอบ
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*"
}ไวลด์การ์ดอันตราย
ส่วนย่อยที่คุณเพิ่งเห็นคือภาพของข้อมูลรั่วไหลอย่างชัดเจน: Principal "*" พร้อม s3:GetObject จะให้ผู้ใช้ที่ไม่ระบุตัวตนทุกคนอ่านออบเจ็กต์ทั้งหมดได้
หากคุณไม่ได้ตั้งใจให้บริการเนื้อหาสาธารณะ นี่คือการกำหนดค่าที่ผิดพลาด การบล็อกการเข้าถึงสาธารณะจะมีผลเหนือการตั้งค่านี้ ซึ่งเป็นเหตุผลที่ BPA ทำหน้าที่เป็นตาข่ายนิรภัย
บังคับใช้การเข้ารหัสด้วยนโยบาย
นโยบายบักเก็ตไม่ได้มีไว้เพียงอนุญาตการเข้าถึง แต่ยังสามารถกำหนดให้ต้องมีเงื่อนไขด้านความปลอดภัยได้ รูปแบบที่ใช้กันทั่วไปคือปฏิเสธการอัปโหลดใด ๆ ที่ไม่ได้เข้ารหัสหรือไม่ได้ส่งผ่าน TLS
การใช้ Deny พร้อมเงื่อนไขบน aws:SecureTransport หรือ s3:x-amz-server-side-encryption จะบังคับให้จัดการข้อมูลอย่างปลอดภัยกับการเขียนข้อมูลทุกครั้ง
จำกัดตามเงื่อนไข
เงื่อนไขช่วยจำกัดนโยบายให้สอดคล้องกับบริบท โดยอนุญาตการเข้าถึงเฉพาะจากจุดเชื่อมต่อ VPC ช่วง IP ที่ทราบแน่ชัด หรือองค์กรที่มี aws:PrincipalOrgID
คีย์เงื่อนไขเหล่านี้ช่วยให้คุณอนุญาตสิทธิ์เท่าที่เวิร์กโหลดต้องการและไม่มากกว่านั้น ลดขอบเขตความเสียหายหากมีการนำข้อมูลรับรองไปใช้ในทางที่ผิด
ตรวจสอบการเปิดเผยข้อมูลของคุณ
เครื่องมือช่วยให้คุณค้นหาความเสี่ยงได้ก่อนผู้โจมตี IAM Access Analyzer จะแจ้งเตือนบัคเก็ตที่แชร์อยู่นอกบัญชีของคุณ และคอนโซล S3 จะแสดงตัวบ่งชี้ว่าแต่ละบัคเก็ตเป็นสาธารณะหรือไม่
กฎของ AWS Config และ Security Hub สามารถตรวจสอบอย่างต่อเนื่องว่า Block Public Access ยังคงเปิดใช้งานอยู่ในทุกบัคเก็ต
การบังคับใช้ระดับบัญชี
ใช้ Block Public Access ในระดับบัญชี ไม่ใช่เฉพาะแต่ละบัคเก็ต เพื่อให้ครอบคลุมบัคเก็ตที่มีอยู่และบัคเก็ตที่จะสร้างขึ้นใหม่โดยอัตโนมัติ
การบังคับใช้ทั่วทั้งบัญชีจะปิดช่องโหว่ที่บัคเก็ตซึ่งสร้างขึ้นใหม่อาจหลุดรอดการควบคุมได้ ใช้ AWS Config และ SCP เพื่อรับรองว่าไม่มีใครปิดการตั้งค่านี้ได้ ทำให้ไม่สามารถเปิดเผยข้อมูลต่อสาธารณะได้ในเชิงโครงสร้าง
การป้องกันหลายชั้น
การควบคุมเพียงอย่างเดียวไม่เพียงพอ ให้ใช้ Block Public Access ระดับบัญชี นโยบายบัคเก็ตตามสิทธิ์น้อยที่สุด การเข้ารหัสเริ่มต้น และการตรวจสอบอย่างต่อเนื่องร่วมกัน
หากชั้นใดชั้นหนึ่งตั้งค่าผิดพลาด ชั้นอื่น ๆ ก็ยังคงปกป้องข้อมูลของคุณ การวางระบบป้องกันหลายชั้นทำให้ S3 เปลี่ยนจากแหล่งที่มาของการรั่วไหลที่เกิดขึ้นบ่อยครั้ง เป็นพื้นที่จัดเก็บข้อมูลส่วนตัวที่เชื่อถือได้
ตรวจสอบอย่างรวดเร็ว
ค้นหามาตรการป้องกันที่แข็งแกร่งที่สุด
สรุปทบทวน
การตั้งค่า S3 ผิดพลาดเป็นสาเหตุสำคัญของการรั่วไหล การควบคุมการเข้าถึงมีหลายชั้น ได้แก่ IAM นโยบายบัคเก็ต ACL และสวิตช์หลัก Block Public Access ซึ่งจะมีผลเหนือการอนุญาตให้เข้าถึงแบบสาธารณะ และควรเปิดใช้งานไว้ทั่วทั้งบัญชี นโยบายที่มี Principal "*" ทำให้ข้อมูลรั่วไหล ให้ใช้เงื่อนไขเพื่อบังคับใช้ TLS การเข้ารหัส และการเข้าถึงที่จำกัดขอบเขตแทน ตรวจสอบอย่างต่อเนื่องด้วย Access Analyzer, Config และ Security Hub และใช้การป้องกันหลายชั้น เพื่อไม่ให้ความผิดพลาดเพียงครั้งเดียวเปิดเผยอ็อบเจ็กต์ของคุณ
คำถามที่พบบ่อย
บทเรียน “การบล็อกการเข้าถึงแบบสาธารณะและนโยบายบักเก็ต” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การบล็อกการเข้าถึงแบบสาธารณะและนโยบายบักเก็ต” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AWS Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AWS Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การบล็อกการเข้าถึงแบบสาธารณะและนโยบายบักเก็ต”
ป้องกันไม่ให้ออบเจ็กต์ S3 ของคุณถูกเปิดเผยต่อสาธารณะโดยไม่ตั้งใจ คุณปฏิบัติ AWS Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AWS Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AWS Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การบล็อกการเข้าถึงแบบสาธารณะและนโยบายบักเก็ต” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AWS Security Academy นี้ได้ไหม
ได้ บทเรียน AWS Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การบล็อกการเข้าถึงแบบสาธารณะและนโยบายบักเก็ต
- จุดเข้าถึงและความเป็นเจ้าของออบเจ็กต์
- การค้นหาข้อมูลละเอียดอ่อนด้วย Amazon Macie
- วงจรชีวิตข้อมูลและการลบอย่างปลอดภัย