Last active
July 21, 2021 04:45
-
-
Save GodSpeedXI/95e2907ace7f7449d5f5ff23d26b17c7 to your computer and use it in GitHub Desktop.
Security Checklist
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Security Checklist | |
| Kube Security | |
| 1. อย่า Run Docker โดย root user | |
| 2. ควรจะใช้ package docker file ที่เราจะใช้เท่านั้น | |
| 3. 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