เจาะลึกสคริปต์ PowerShell หมุนเวียน AWS IAM Access Keys แบบอัตโนมัติ
แนวทางการใช้สคริปต์ PowerShell และ AWS CLI เพื่อจัดการสร้างและลบ IAM Access Keys พร้อมข้อควรระวังด้านความปลอดภัยในระบบจริง

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- บทความนี้จัดทำขึ้นเพื่อการศึกษาโดย AWS แนะนำให้ใช้ IAM Identity Center
- สคริปต์อัตโนมัติช่วยแก้ปัญหา Token หมดอายุระหว่างพัฒนาโปรแกรมบนเครื่อง
- การทำงานแบ่งเป็นกรณีมีกุญแจ 1 ดอกหรือมีครบ 2 ดอกแล้วลบตัวเก่าทิ้ง
- ต้องติดตั้ง AWS CLI และตั้งค่าสิทธิ์ผู้ใช้งานให้เรียบร้อยก่อนใช้งาน
ในฝั่งของการพัฒนาซอฟต์แวร์ การจัดการกับความปลอดภัยของระบบคลาวด์ถือเป็นเรื่องสำคัญอันดับต้นๆ โดยเฉพาะการจัดการ AWS IAM Access Keys ที่มักจะต้องมีการหมุนเวียนหรือเปลี่ยนชุดกุญแจอยู่เป็นประจำเพื่อความปลอดภัย แต่กระบวนการเดิมๆ นั้นค่อนข้างน่าเบื่อและต้องทำด้วยมือผ่านหน้าจอคอนโซลเป็นหลัก จึงเป็นที่มาของการเขียนสคริปต์เพื่อทุ่นแรงในจุดนี้
บทความต้นฉบับได้นำเสนอแนวทางและสคริปต์ภาษา PowerShell สำหรับอำนวยความสะดวกในการสร้างคีย์ใหม่และอัปเดตไฟล์ .aws/credentials โดยอัตโนมัติ โดยอ้างอิงจากปัญหาที่พบว่าชุดคีย์เดิมถูกกำหนดให้หมดอายุภายใน 12 ชั่วโมง ทำให้เกิดข้อผิดพลาด Token expired บ่อยครั้งขณะกำลังพัฒนาโค้ดอยู่ในเครื่องของตัวเอง

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
สำหรับขั้นตอนการทำงานของสคริปต์ตัวนี้จะแยกออกเป็นเงื่อนไขหลักตามจำนวนคีย์ที่มีอยู่:
- ตรวจสอบรายชื่อ Access Keys ทั้งหมดของผู้ใช้งานผ่านคำสั่ง AWS CLI
- ถ้าระบบพบว่ามีคีย์อยู่แล้ว 2 ดอก สคริปต์จะทำการคัดแยกตามวันที่สร้าง (CreateDate) และลบดอกที่เก่าที่สุดทิ้งทันที
- ทำการสร้าง Access Key ชุดใหม่ขึ้นมาผ่านคำสั่งของ AWS CLI
- เขียนทับข้อมูลชุดคีย์ใหม่ลงในไฟล์คอนฟิกูเรชัน .aws/credentials ที่พาธผู้ใช้งาน
การทำ Key Rotation หรือการหมุนเวียนกุญแจความปลอดภัยเป็นแนวปฏิบัติสากลที่ช่วยลดความเสี่ยงจากการรั่วไหลของข้อมูลรับรอง (Credentials) อย่างไรก็ตาม ผู้เขียนต้นฉบับและทาง AWS ได้เตือนสติว่าสคริปต์ดั้งเดิมนี้เป็นแนวทางยุคเก่า (Legacy Approach) และตัวสคริปต์เดิมยังมีการลบคีย์เก่าทิ้งทันทีก่อนที่จะตรวจสอบว่าคีย์ใหม่ใช้งานได้จริงหรือไม่ รวมถึงการเขียนทับโปรไฟล์ค่าเริ่มต้น (Default Profile) โดยตรง ซึ่งอาจส่งผลกระทบต่อระบบ Production จริงได้ แนวทางที่ปลอดภัยกว่าคือสร้างคีย์ใหม่ ทดสอบให้แน่ใจ ปิดการใช้งานคีย์เก่า ตรวจสอบว่าไม่มีแอปพลิเคชันใดเรียกใช้แล้ว จึงค่อยลบทิ้งในขั้นตอนสุดท้าย
เงื่อนไขเบื้องต้นก่อนเริ่มต้นใช้งานสคริปต์ชุดนี้ประกอบด้วย:
- ต้องมีการติดตั้งเครื่องมือ AWS CLI เอาไว้ในเครื่องเรียบร้อยแล้ว
- สร้างบัญชีผู้ใช้งาน AWS IAM User ขึ้นมาล่วงหน้า
- บัญชีดังกล่าวต้องมีสิทธิ์เพียงพอในการเรียกดู สร้าง ปิดการใช้งาน และลบ Access Keys
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น