Secrets Manager vs Parameter Store
เก็บรหัสผ่าน/ค่า config อย่างปลอดภัย เลือกตัวไหนดี
เหมือนเรามีตู้เก็บความลับ แทนที่จะจดรหัสผ่านแปะไว้ในโค้ดแบบโต้งๆ เราเอารหัสผ่านไปฝากไว้ในตู้ แล้วให้แอปมาเบิกจากตู้ไปใช้ตอนมันทำงาน
ทั้งสองบริการนี้ใช้เก็บค่าความลับ (Secrets) หรือการตั้งค่า (Config) แทนการใส่ (Hardcode) ไว้ในตัวโค้ด แต่มีจุดเด่นที่ต่างกัน
- Secrets Manager — ออกแบบมาเพื่อ "ความลับ" โดยเฉพาะ จุดเด่นสูงสุดคือความสามารถใน หมุนรหัสอัตโนมัติ (Automatic rotation) เช่น ให้มันไปเปลี่ยนรหัสผ่านฐานข้อมูล RDS ให้ทุกๆ 30 วันได้เองเลย (บริการนี้มีค่าใช้จ่ายต่อตัว secret)
- Parameter Store (อยู่ใน Systems Manager) — เก็บได้ทั้งค่าทั่วไปแบบไม่ลับ และค่าความลับ (แบบ SecureString ที่แอบเอาไปเข้ารหัสด้วย KMS ให้) · จุดเด่นคือ ระดับ Standard ใช้ฟรี แต่จะไม่มีระบบ rotation ในตัว
สรุป Key Takeaways
- Secrets Manager: เน้นความลับ + หมุนรหัสอัตโนมัติ (มีค่าใช้จ่าย)
- Parameter Store: เก็บ config/secret ได้ ระดับ Standard ฟรี แต่ไม่มี rotation
- ต้องการ auto-rotation รหัส DB → Secrets Manager
คำถามที่พบบ่อย
Secrets Manager กับ Parameter Store เลือกยังไง
จุดตัดที่ข้อสอบใช้: ต้องการ "หมุนรหัสอัตโนมัติ" (automatic rotation) โดยเฉพาะรหัสฐานข้อมูล = Secrets Manager (เสียเงิน) ส่วนเก็บ config/ค่าคงที่/secret ที่ไม่ต้องหมุน = Parameter Store (มี free tier, SecureString เข้ารหัสด้วย KMS ได้)
เก็บรหัสฐานข้อมูลใน environment variable ของ Lambda ได้ไหม
ทำได้แต่ไม่ใช่ best practice สำหรับของ sensitive — env var โผล่ในหน้า console/template ให้คนที่มีสิทธิ์อ่านเห็น แนวที่ถูกคือเก็บใน Secrets Manager/Parameter Store แล้วให้ Lambda ดึงตอนรันด้วยสิทธิ์จาก execution role
ลองทำ Quiz ท้ายบท
คำถามแนวข้อสอบของโมดูลนี้ 5 ข้อ · เฉลยทันที

