Skip to content

Instantly share code, notes, and snippets.

@GodSpeedXI
Last active July 21, 2021 04:45
Show Gist options
  • Save GodSpeedXI/95e2907ace7f7449d5f5ff23d26b17c7 to your computer and use it in GitHub Desktop.
Save GodSpeedXI/95e2907ace7f7449d5f5ff23d26b17c7 to your computer and use it in GitHub Desktop.
Security Checklist

Security Checklist

Kube Security

  • 1. อย่า Run Docker โดย root user
  • 2. ควรจะใช้ package docker file ที่เราจะใช้เท่านั้น
  • 3. Node ควรจะ allow port สำหรับที่จะใช้เท่านั้น
  • 4. ควรกำหนด Network policy ให้ Pod สามารถคุยกันได้เฉพาะ ที่จะใช้เท่านั้น
  • 5. set policy agent pod ให้ Deployment deploy only namespace ที่ pod สามารถ deploy ได้เท่านั้น
  • 6. service account pod ควร สิทธิ์ เฉพาะที่ pod นั้นใช้เท่านั้น
  • 7. Image ควรใช้ Private Registry
  • 8. Pod ตัวไหน ที่ไม่ได้ใช้ API ของ Cloud ไม่ควร access API ของ Cloud ได้ (Metadata consealing)
  • 9. ห้ามเก็บ Password ที่อยู่ใน App ควรอยู่ใน Secret manager
  • 10. Scan image ที่เรา Build เป็นประจำ
  • 11. แบ่งสิทธิ์ ในการใช้ Kubectl ให้ access only namespace
  • 12. worker node ไม่ควรเปิด SSH ให้ผ่าน Kubectl เท่านั้น
  • 13. Kube cluster ควรอยู่ใน Private network เท่านั้น ให้ set ผ่าน LB เท่านั้น

Api Security

  • 1. ทุก Api ควรมี AccessKeys
  • 2. Api ควร enable oauth2
  • 3. ไม่ควรนำข้อมูล เกี่ยวกับ User Profile ส่วนตัวไว้ใน JWT
  • 4. Api ทุกตัว ควร Enable HSTS
  • 5. Api ใช้ port ไหน allow port นั้น
  • 6. ให้ทุก API ผ่าน LB เท่านั้น เพราะ LB ใส่ firewall ได้ แล้ว ไม่ควรใช้ Port เดี่ยวกับ port API
  • 7. Api แยก ENV ชัดเจน ไม่ควร test บน Production เช่น Dev, SIT, UAT, PROD, PROD Support, Perf Test, Perf Test on cloud
  • 8. User ที่เข้ามาใช้งาน API ควรมี สิทธิ์ไม่เท่ากัน กำหนด By Route
  • 9. เช็คสิทธิ์ Api ทุกเส้น ว่า user นั้นมี สิทธิ์เข้าถึงไหม
  • 10. JWT ควร Encode ด้วย RSA(Asymmetric key) ทำ Secret
  • 11. Refresh token ควรเก็บไว้ใน DB หรือใน Redis ด้วย เพื่อที่จะสามารถ Revoke ได้
  • 12. Logout ออกจากระบบ ควรลบ Refresh token และ Token ออกจาก DB ด้วย
  • 13. Set X-Forwarded-for ที่ LB เพื่อเก็บ Log User IP ไว้ด้วย เมื่อ login
  • 14. ปิด Debug mode
  • 15. ไม่ควรใช้ Phpmyadmin
  • 16. ทุก API ที่ต่อ Database ควร close session ด้วย
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment