AWS Secrets Manager และ Parameter Store

การใช้งาน Data Stores บน AWS

Dunieski Otano

AWS Solutions Architect

หายนะจากการฝังรหัสผ่านในโค้ด

  • นักพัฒนาฝังรหัสผ่านฐานข้อมูลไว้ในโค้ดโดยตรง
  • โค้ดถูก push ขึ้น GitHub แบบสาธารณะ
  • ผู้โจมตีพบรหัสผ่านภายใน 12 นาที
  • ฐานข้อมูลถูกลบ และมีการเรียกค่าไถ่

การโจมตี

การใช้งาน Data Stores บน AWS

ทำไมถึงไม่ควรฝัง secret ในโค้ด

  • ความผิดพลาดที่พบบ่อย
    • ฝังไว้ในโค้ดโดยตรง
    • เก็บเป็น plain text ในไฟล์ config
    • commit ขึ้น version control
  • ผลที่ตามมา
    • เปิดเผยใน public repository
    • เปลี่ยน credential ได้ยาก
    • ไม่มี audit trail

ห้ามทำ

การใช้งาน Data Stores บน AWS

ภาพรวม AWS Secrets Manager

  • วัตถุประสงค์
    • จัดเก็บและหมุนเวียน credential โดยอัตโนมัติ
  • สิ่งที่ควรเก็บ
    • รหัสผ่านฐานข้อมูล, API key, OAuth token
  • ฟีเจอร์หลัก
    • หมุนเวียนอัตโนมัติ, เข้ารหัสด้วย KMS, บันทึก audit log

sm

การใช้งาน Data Stores บน AWS

การหมุนเวียนอัตโนมัติของ Secrets Manager

  • กระบวนการหมุนเวียน
    • Lambda function อัปเดต credential
  • ช่วงเวลาหมุนเวียน
    • กำหนดได้ด้วย rate หรือ cron
  • ไม่มี downtime
    • รหัสผ่านเก่าและใหม่ใช้งานได้พร้อมกันระหว่างการหมุนเวียน

การหมุนเวียน

การใช้งาน Data Stores บน AWS

การเก็บ secret ในรูปแบบ JSON

  • Secret แบบมีโครงสร้าง
    • เก็บหลายค่าในหนึ่ง secret
  • รูปแบบ JSON
    • {"username": "admin", "password": "...", "host": "db.example.com"}
  • ดึงและแยกค่า
    • ใช้ GetSecretValue API

ดึงข้อมูล

การใช้งาน Data Stores บน AWS

ภาพรวม Parameter Store

  • ส่วนหนึ่งของ AWS Systems Manager
  • วัตถุประสงค์
    • จัดเก็บค่า configuration และ static secret
  • การจัดระเบียบแบบลำดับชั้น
    • /app/prod/db/password
    • /app/dev/api-key
  • Free tier
    • รองรับสูงสุด 10,000 standard parameter (ขนาดสูงสุด 4 KB)
    • Advanced parameter (ขนาดสูงสุด 8 KB) มีค่าใช้จ่าย

ps

การใช้งาน Data Stores บน AWS

ประเภท parameter ใน Parameter Store

  • String
    • ค่า configuration แบบ plain text (feature flag, endpoint)
  • StringList
    • ค่าที่คั่นด้วยจุลภาค (IP address)
  • SecureString
    • เข้ารหัสด้วย KMS (รหัสผ่าน, API key)

ประเภท

การใช้งาน Data Stores บน AWS

คู่มือเลือกใช้ Secrets Manager หรือ Parameter Store

  • ใช้ Secrets Manager เมื่อ
    • ต้องการหมุนเวียนอัตโนมัติ
    • จัดเก็บ credential ของฐานข้อมูล
  • ใช้ Parameter Store เมื่อ
    • ค่า configuration ที่ไม่เปลี่ยนแปลง
    • ต้องการประหยัดค่าใช้จ่าย (free tier)
  • ใช้ร่วมกันทั้งสอง
    • รูปแบบที่พบบ่อยในระบบ production

advanced

การใช้งาน Data Stores บน AWS

มาฝึกกันเถอะ!

การใช้งาน Data Stores บน AWS

Preparing Video For Download...