ข้ามไปเนื้อหาหลัก
คอนเทนเนอร์· ~12 นาที

Secret — เก็บข้อมูลลับ

รหัสผ่าน, token, cert แยกจาก config ทั่วไป

เปรียบเทียบให้เห็นภาพ

Secret เหมือนตู้เซฟเทียบกับป้ายตั้งค่า (ConfigMap) ที่แปะโล่ง ๆ · ใช้เก็บของที่ห้ามหลุด: รหัสผ่านฐานข้อมูล, API key, TLS cert

Secret หน้าตาคล้าย ConfigMap แต่ตั้งใจใช้กับข้อมูลลับ · ค่าถูกเก็บแบบ base64-encoded และ K8s ควบคุมการเข้าถึงเข้มกว่า

# สร้างจาก literal (K8s เข้ารหัส base64 ให้)
kubectl create secret generic db-cred \
  --from-literal=DB_PASSWORD='s3cr3t!'

# อ้างใน container:
#   env:
#     - name: DB_PASSWORD
#       valueFrom:
#         secretKeyRef: { name: db-cred, key: DB_PASSWORD }
สร้าง Secret แล้วใช้เป็น env

สรุป Key Takeaways

  • Secret = ที่เก็บข้อมูลลับ (รหัสผ่าน, token, cert) แยกจาก ConfigMap
  • ค่าเป็น base64 ซึ่งไม่ใช่การเข้ารหัส — ต้องเปิด encryption at rest + RBAC
  • อย่า commit Secret ดิบลง Git · งานจริงใช้ Vault/Sealed Secrets/External Secrets
อ่านจบแล้วอย่าลืมทำเครื่องหมาย