ข้ามไปเนื้อหาหลัก
ความปลอดภัย· ~6 นาที· อัปเดตล่าสุด

การเข้ารหัสข้อมูล: KMS, ACM และ Secrets Manager

Encryption at rest / in transit, บริการจัดการกุญแจและใบรับรอง

ตู้เซฟ โซ่ล็อก และร้านทำกุญแจ

ข้อมูลใน S3 ที่เข้ารหัสเหมือนเอกสารในตู้เซฟ (at rest) — ต่อให้ขโมยยกตู้ไปก็เปิดไม่ได้ · ข้อมูลที่ส่งผ่าน HTTPS เหมือนใส่รถหุ้มเกราะระหว่างขนส่ง (in transit) · KMS คือร้านกุญแจกลางที่ผลิต เก็บ และจดบันทึกทุกครั้งที่มีคนเบิกกุญแจ

สามบริการที่ต้องจับคู่ให้ถูก

  • AWS KMS (Key Management Service) — สร้าง/จัดการกุญแจเข้ารหัส ใช้เปิด encryption at rest ให้ S3, EBS, RDS ฯลฯ ทุกการใช้กุญแจถูกบันทึกใน CloudTrail
  • AWS Certificate Manager (ACM) — ออกและต่ออายุ TLS/SSL certificate ให้ฟรีสำหรับใช้กับบริการ AWS (เช่น Load Balancer, CloudFront) เพื่อเปิด HTTPS
  • AWS Secrets Manager — เก็บความลับของแอป (รหัสผ่าน DB, API key) แบบเข้ารหัส พร้อมหมุนเวียน (rotate) อัตโนมัติ

แนวคิดที่ข้อสอบวัดจริงๆ คือ defense in depth — ความปลอดภัยหลายชั้นซ้อนกัน: จำกัดสิทธิ์ด้วย IAM (ใครเข้าถึงได้), เข้ารหัสข้อมูลทั้งตอนเก็บและตอนส่ง (ต่อให้หลุดก็อ่านไม่ออก), และเก็บ log ตรวจสอบย้อนหลัง (รู้ว่าใครทำอะไร) — สามชั้นนี้ประกอบกันเป็นคำตอบของโจทย์ security ระดับ Practitioner เกือบทั้งหมด

สรุป Key Takeaways

  • At rest = ข้อมูลนอนในดิสก์ (KMS) · In transit = ข้อมูลวิ่งบนสาย (TLS ผ่าน ACM)
  • KMS = ศูนย์จัดการกุญแจเข้ารหัส ผูกกับบริการ AWS แทบทุกตัว
  • Secrets Manager = เก็บ+หมุนเวียนรหัสผ่าน/API key แทนการ hardcode ในโค้ด

คำถามที่พบบ่อย

Encryption at rest กับ in transit ต่างกันอย่างไร

At rest = เข้ารหัสข้อมูล "ตอนนอนอยู่" ในดิสก์/S3/ฐานข้อมูล (ใช้ KMS จัดการกุญแจ) · In transit = เข้ารหัสข้อมูล "ตอนวิ่ง" ระหว่างเครื่อง ผ่าน TLS/HTTPS (ใช้ certificate จาก ACM) — โจทย์บอกสถานะข้อมูลมา ให้เลือกคู่ที่ถูก

KMS คืออะไร ระดับ CLF ต้องรู้แค่ไหน

AWS Key Management Service — บริการสร้างและจัดการกุญแจเข้ารหัสแบบรวมศูนย์ ผูกกับบริการอื่นทั่ว AWS (S3, EBS, RDS เปิดเข้ารหัสด้วยกุญแจ KMS ได้ในคลิกเดียว) ระดับ CLF จำว่า "จัดการกุญแจเข้ารหัส = KMS" และการใช้กุญแจถูกบันทึกตรวจสอบได้

Secrets Manager ต่างจากการเก็บรหัสผ่านในโค้ดอย่างไร

เก็บ "ความลับ" (รหัสผ่านฐานข้อมูล, API key) ไว้ในบริการกลางที่เข้ารหัส ควบคุมสิทธิ์ด้วย IAM และหมุนเวียนรหัสอัตโนมัติได้ — แอปดึงความลับตอน runtime แทนการ hardcode ซึ่งเสี่ยงรั่วเมื่อโค้ดถูกแชร์

อ่านจบแล้วอย่าลืมทำเครื่องหมาย