0Pricing
AWS Security Academy · บทเรียน

การบล็อกการเข้าถึงแบบสาธารณะและนโยบายบักเก็ต

ป้องกันไม่ให้ออบเจ็กต์ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การบล็อกการเข้าถึงแบบสาธารณะและนโยบายบักเก็ต
  2. จุดเข้าถึงและความเป็นเจ้าของออบเจ็กต์
  3. การค้นหาข้อมูลละเอียดอ่อนด้วย Amazon Macie
  4. วงจรชีวิตข้อมูลและการลบอย่างปลอดภัย
← กลับไปที่ AWS Security Academy