ในทีมเล็ก รหัสผ่านฐานข้อมูลโปรดักชันมักถูกใช้ร่วมกัน อยู่ในแชท หน้า wiki และในหัวของคนที่ตั้งค่าไว้ สะดวกจนกว่าจะมีคนลาออก query หนึ่งทำให้แอปช้า หรือค่าบางอย่างเปลี่ยนโดยไม่มีใครรู้ว่าทำไม คุณไม่ต้องมีโปรแกรมความปลอดภัยระดับองค์กรเพื่อปรับปรุงเรื่องนี้ ห้าแนวปฏิบัติครอบคลุมความเสี่ยงส่วนใหญ่
1. ให้สิทธิ์น้อยที่สุดที่ทำงานได้
คนส่วนใหญ่ที่แตะข้อมูลโปรดักชันแค่ต้องอ่าน แยกสิทธิ์ดูอย่างเดียวออกจากสิทธิ์แก้ไข และจำกัดสิทธิ์เปลี่ยนโครงสร้าง (เพิ่มหรือลบคอลัมน์ เปลี่ยนการเชื่อมต่อ) ให้คนกลุ่มเล็กมาก ถ้างานหนึ่งต้องใช้สิทธิ์สูงชั่วคราว ให้สิทธิ์สำหรับงานนั้นแล้วเอาคืน
2. ไม่แจกรหัสผ่านฐานข้อมูล
เมื่อทุกคนถือรหัสผ่านฐานข้อมูล คุณเพิกถอนคนเดียวไม่ได้โดยไม่เปลี่ยนให้ทุกคน และแยก query ของแต่ละคนไม่ออก ให้เก็บการเชื่อมต่อไว้ในเครื่องมือกลางที่เดียว เก็บรหัสผ่านที่นั่น และให้คนเข้าเครื่องมือตามบทบาท ถ้าทำได้ ให้สร้างผู้ใช้ฐานข้อมูลแบบอ่านอย่างเดียวสำหรับการเชื่อมต่อที่แค่ต้องอ่าน
3. บันทึกทุกการเปลี่ยนแปลง
บันทึกการแก้ไขข้อมูล การเปลี่ยนโครงสร้าง และการเปลี่ยนสิทธิ์ พร้อมผู้ทำ เวลา และค่าเดิมกับค่าใหม่ ทำให้คำถาม "ใครแก้อันนี้" เปลี่ยนจากการเถียงเป็นการค้นหา และเปลี่ยนพฤติกรรมด้วย เพราะคนจะระวังมากขึ้นเมื่อรู้ว่าการเปลี่ยนแปลงมองเห็นได้
4. ใช้การเข้าสู่ระบบขององค์กรเมื่อทีมโตขึ้น
Single sign-on ทำให้สิทธิ์ตามบัญชีของบริษัท เมื่อมีคนลาออกและบัญชีถูกปิด สิทธิ์เข้าถึงข้อมูลโปรดักชันสิ้นสุดพร้อมกัน โดยไม่ต้องมีใครจำไปลบจากรายชื่ออื่น และยังลดรหัสผ่านอีกชุดที่คนนำไปใช้ซ้ำที่อื่น
5. เข้ารหัสการเชื่อมต่อ
การรับส่งข้อมูลฐานข้อมูลผ่านอินเทอร์เน็ตหรือระหว่างสำนักงานควรใช้ TLS ถ้าฐานข้อมูลไม่เปิดสู่สาธารณะ SSH tunnel ผ่าน bastion host เป็นทางเลือกที่พบบ่อย ไม่ว่าแบบไหน หลีกเลี่ยงการเปิดพอร์ตฐานข้อมูลให้ทั้งอินเทอร์เน็ต
เช็กตัวเองอย่างเร็ว
- ปิดสิทธิ์คนเดียวได้ภายในหนึ่งนาทีโดยไม่กระทบคนอื่นหรือไม่
- ถ้าค่าหนึ่งเปลี่ยนเมื่อวาน หาได้หรือไม่ว่าใครเปลี่ยนและเดิมเป็นอะไร
- ผู้ใช้อ่านอย่างเดียวแก้ไม่ได้แม้โดยบังเอิญหรือไม่
- รหัสผ่านโปรดักชันไม่อยู่ในแชทและเอกสารใช่หรือไม่
- การเชื่อมต่อฐานข้อมูลเข้ารหัสหรือไม่
ใน Ruamhub
Ruamhub มีบทบาท Owner, Admin, Editor และ Viewer เก็บรหัสผ่านการเชื่อมต่อใน secrets vault รองรับการเชื่อมต่อแบบอ่านอย่างเดียว TLS และ SSH tunnel และบันทึกการเปลี่ยนแปลงใน audit log มี SSO แบบ OIDC ในแพ็กเกจที่รองรับ ดูรายละเอียดในหน้าความปลอดภัย