การหมุนเวียนรหัสผ่าน MySQL: การใช้ผู้ใช้คนเดียวเพื่อเปลี่ยนรหัสผ่านผู้ใช้อื่น

Aug 16 2020

ฉันกำลังดำเนินการตั้งค่ากลยุทธ์การหมุนเวียนรหัสผ่านสำหรับแอปพลิเคชันที่ใช้ AWS Aurora / MySQL

แผนของฉันคือใช้กลยุทธ์แบบนี้ ...

  • ชื่อผู้ใช้ / รหัสผ่านของแอปพลิเคชันที่เก็บไว้ในพารามิเตอร์ที่เข้ารหัส AWS SSM
  • แอ็พพลิเคชันเซิร์ฟเวอร์สามารถเข้าถึงเพื่อดึงเฉพาะข้อมูลประจำตัวจาก SSM ถูก จำกัด โดยสภาพแวดล้อม (การจัดเตรียมการผลิต ฯลฯ )
  • Lambda กำหนดค่าให้ทำงานเป็นระยะเพื่อเปลี่ยนรหัสผ่านใน MySQL และเก็บค่าใหม่ใน SSM Lambda เพื่อพิสูจน์ตัวตนกับฐานข้อมูลโดยใช้บทบาท AWS IAM แทนที่จะใช้รหัสผ่าน

บิตสุดท้ายคือบิตที่ฉันไม่แน่ใจ การกำหนดค่านี้ต้องการให้บทบาทแลมบ์ดา / ผู้ใช้มีสิทธิ์ในการเปลี่ยนรหัสผ่านสำหรับผู้ใช้แอปพลิเคชันอื่น ๆ ทั้งหมด

วิธีนี้เป็นวิธีที่สมเหตุสมผลจากมุมมองด้านความปลอดภัยหรือไม่? เนื่องจากผู้ใช้ lambda mysql จะใช้บทบาท IAM แทนรหัสผ่านจึงควร จำกัด ให้ใช้เฉพาะบทบาทที่ได้รับอนุญาตเท่านั้น

อีกทางเลือกหนึ่งคือไม่มีผู้ใช้ฐานข้อมูลพิเศษสำหรับแลมบ์ดาเพื่อเข้าสู่ระบบ แต่ต้องการให้ฟังก์ชันแลมบ์ดาดึงข้อมูลประจำตัวของผู้ใช้แต่ละคนจาก SSM จากนั้นเข้าสู่ระบบในฐานะผู้ใช้แต่ละคนเพื่อเปลี่ยนรหัสผ่าน

ไม่ว่าจะด้วยวิธีใดแลมด้าจะต้องมีการเข้าถึงผู้ใช้แต่ละคน

สมมติว่าฉันสามารถดึงการเข้าถึง "lambda_user" ใน MySQL ได้อย่างระมัดระวังมีปัญหาอื่น ๆ ที่ทำให้ผู้ใช้มีอำนาจในการเปลี่ยนรหัสผ่านของผู้ใช้รายอื่นหรือไม่

นอกจากนี้เพื่อชี้แจงว่าเป็นผู้ใช้แอปพลิเคชันไม่ใช่ผู้ใช้ประเภทมนุษย์ทั่วไปที่จะใช้ข้อมูลรับรองเหล่านี้

คำตอบ

1 ConorMancone Aug 16 2020 at 17:39

นี่เป็นวิธีปฏิบัติที่ดีที่สุดด้วยเหตุผลที่คุณร่างไว้ การให้แลมด้าใช้บทบาทในการตรวจสอบสิทธิ์แทนข้อมูลรับรองคุณจะลดจำนวนความลับที่คุณเก็บไว้ให้เหลือน้อยที่สุดซึ่งเป็นสิ่งที่ดีอย่างแน่นอน มีเพียง 2 สิ่งที่ควรชี้ให้เห็น:

  1. ตอนนี้คุณสามารถใช้ CloudFormation เพื่อจัดเตรียมและปรับใช้แลมบ์ดาเพื่อวัตถุประสงค์พิเศษโดยอัตโนมัติได้แล้ว ด้วยเหตุนี้คุณสามารถทำได้อย่างง่ายดาย ฉันไม่ได้เป็นแฟนตัวยงของ CloudFormation เป็นการส่วนตัว แต่ฉันจะใช้ที่นี่ต่อไป

  2. การเปลี่ยนไปใช้ปลายทางข้อมูลเมตา V2 สามารถให้ความปลอดภัยเพิ่มเติมบางอย่างจาก SSRF ที่พบในโครงสร้างพื้นฐานของคุณรวมถึงการแตกในรูปแบบอื่น ๆ แม้ว่าจะไม่เกี่ยวข้องมากนักในกรณีการใช้งานนี้