AWS Thai Blog

แนะนำการตั้งค่าความปลอดภัยตาม Best Practics ให้กับบัญชี AWS

การรักษาความปลอดภัยในระบบคลาวด์ (Security) เป็นสิ่งที่ AWS ให้ความสำคัญมากที่สุด สำหรับหลาย ๆ องค์กรที่เริ่มต้นใช้งาน AWS ควรคำนึงถึงความสำคัญเกี่ยวกับการรักษาความปลอดภัยบัญชี AWS และให้ความสำคัญสูงสุดด้วยเช่นกัน ซึ่งจะช่วยป้องกันความเสียหายที่อาจจะตามมาภายหลังได้

ความปลอดภัยและการปฏิบัติตามข้อกำหนด (Security and compliance) เป็นความรับผิดชอบร่วมกันระหว่าง AWS และลูกค้า ในโมเดลความรับผิดชอบร่วมกัน (Shared responsibility model) ได้อธิบายถึงความรับผิดชอบของ AWS ที่ต้องดูแลรักษาความปลอดภัยของระบบคลาวด์ (เช่น การดูแลและปกป้องโครงสร้างพื้นฐานที่ใช้ในการให้บริการคลาวด์) และความรับผิดชอบของลูกค้าที่ต้องดูแลรักษาความปลอดภัยในระบบคลาวด์ (เช่น การตั้งค่าความปลอดภัยในการดูแลรักษาข้อมูลที่อยู่ในระบบคลาวด์) ซึ่งท่านสามารถเรียนรู้เพิ่มเติมเกี่ยวกับโมเดลความรับผิดชอบร่วมกันได้ที่นี่

AWS มีเครื่องมือที่หลากหลายในการช่วยรักษาความปลอดภัยให้กับบัญชีของท่านได้ แต่อย่างไรก็ตาม เครื่องมือเหล่านั้นอาจจะไม่ได้เปิดใช้งานเป็นค่าเริ่มต้น ซึ่งในบทความนี้ จะพาทุกท่านมาเรียนรู้ขั้นตอนในการตั้งค่าความปลอดภัยพื้นฐานตาม AWS Best Practics เพื่อช่วยให้บัญชี AWS ของท่านมีความปลอดภัยมากยิ่งขึ้น โดยท่านสามารถทำตามขั้นตอนในบทความนี้ได้เลย

1. ตั้งค่าอีเมลที่ใช้ในการติดต่อของบัญชี AWS ให้เป็นปัจจุบัน

เพื่อให้แน่ใจว่า AWS สามารถติดต่อท่านได้ โปรดตรวจสอบว่าอีเมลที่ท่านตั้งค่าเป็นอีเมลสำหรับติดต่อของบัญชี AWS เป็นอีเมลปัจจุบัน และยังสามารถใช้งานได้

ขั้นตอนการเปลี่ยนอีเมลของบัญชี AWS

  1. เลือกชื่อบัญชีมุมบนขวาของ AWS Console แล้วเลือก Account
  2. จากนั้นเลือก Edit ในหัวข้อ Account Settings ซึ่งท่านจะสามารถเปลี่ยนอีเมลของบัญชีหลัก AWS ได้ที่หน้าถัดไป
  3. หลังจากนั้นให้เปลี่ยนอีเมลที่ใช้ติดต่อให้เป็นปัจจุบัน แล้วเลือก Done เพื่อบันทึก

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

ท่านสามารถดูวิธีการตั้งค่าอีเมลสำหรับการติดต่อของบัญชี AWS ได้ที่ลิ้งค์นี้

2. ปกป้องรหัสผ่านและคีย์การเข้าถึง (Access Key)

Credential ที่เราใช้ในการเข้าถึงบัญชี AWS มี 2 รูปแบบหลัก ๆ คือ แบบใช้รหัสผ่าน และแบบใช้คีย์ในการเข้าถึง (Access Key) ซึ่งสามารถใช้รหัสผ่านและคีย์การเข้าถึง การเข้าถึงบัญชี AWS ทั้งแบบที่ใช้รหัสผ่านและแบบ Access Key หากท่านสงสัยว่ารหัสผ่านหรือคีย์การเข้าถึง (Access Key) หลุดออกไป ให้ทำตามขั้นตอนดังต่อไปนี้
  1. Rotate Access Key Pairs ทั้งหมด (บทความภาษาไทย)
  2. เปลี่ยนรหัสผ่านของ root user
  3. ทำตามคำแนะนำในบทความ ข้อควรปฏิบัติหากสังเกตเห็นกิจกรรมที่ไม่ได้รับอนุญาตในบัญชี AWS

3. เปิดใช้งาน AWS MFA

AWS Multi Factor Authentication (MFA) เป็นอีกเครื่องมือที่จะช่วยรักษาความปลอดภัยให้กับบัญชีได้ ซึ่งจะกำหนดให้ผู้ใช้งานป้อน Authentication Code เพิ่มเติมนอกเหนือจากชื่อผู้ใช้และรหัสผ่าน ซึ่งจะช่วยเพิ่มความปลอดภัยอีกชั้นในการเข้าสู่ระบบเพื่อใช้งานบัญชีบน AWS ได้ในกรณีที่รหัสผ่านอาจจะหลุดออกไป

โดยท่านสามารถเปิดใช้งาน MFA รูปแบบ Virtual ได้ทั้งสำหรับ IAM User และ AWS account root user

การเปิดใช้งาน MFA ของ Root user จะมีผลเฉพาะ root user นั้นเท่านั้น สำหรับ IAM Users จะแยก credentials ออกมา ซึ่งต้องไปตั้งค่า MFA แยกออกไปตามแต่ละ IAM User

ขั้นตอนการเปิด AWS Multi Factor Authentication (MFA) ให้กับ IAM User

  1. เข้าสู่ระบบ AWS Management Console และเปิด IAM Console ที่ https://console.aws.amazon.com/iam
  2. ในแถบเมนู เลือก Users
  3. หน้าเว็บจะแสดงรายการ Users ที่มีทั้งหมด ให้เลือก User ที่ต้องการจะเปิดใช้งาน MFA
  4. เลือกแท็บ Security credentials แล้วให้เลือก Manage ที่หัวข้อ Assigned MFA device หลังจากนั้นหน้าเว็บจะแสดงหน้าต่าง Manage MFA device
  5. เลือก Virtual MFA device แล้วคลิก Continue เพื่อไปหน้าถัดไป
  6. คลิก Show QR Code ในหัวข้อ Use your virtual MFA app and your device’s camera to scan the QR code
  7. สแกน QR Code ด้วยแอปพลิเคชัน Virtual MFA device (ซึ่งท่านสามารถดูรายการแอปพลิเคชันที่รองรับการใช้งานได้ที่ https://go.aws/3B527Lo) หลังจากนั้นแอปพลิเคชัน MFA จะแสดงรหัส Token 6 หลัก เพื่อใช้เป็น Token ในการเข้าสู่ระบบ และจะเปลี่ยนอัตโนมัติทุก ๆ 30 วินาที
  8. กรอกรหัส Token ที่ได้จากแอปพลิเคชัน Virtual MFA ในช่อง MFA Code 1 แล้วรอ 30 วินาทีเพื่อให้แอปพลิเคชั่น MFA เปลี่ยนรหัส Token ใหม่อีกรอบ แล้วกรอกรหัส Token ใหม่ที่ได้จากแอปพลิเคชัน MFA ลงในช่อง MFA Code 2
  9. คลิก Assign MFA เพื่อเปิดใช้งาน MFA ให้กับ IAM User นั้น ๆ

ท่านสามารถเรียนรู้วิธีการเปิดใช้ MFA Devices สำหรับ Users บน AWS เพิ่มเติมได้ที่ลิ้งค์นี้

4. จำกัดการเข้าถึง Resources ของ Root user

Credential ของ root user account (รหัสผ่านบัญชี Root หรือรหัสการเข้าถึง (Access Key) ของ Root) นั้น สามารถมอบสิทธิ์ในการเข้าถึงบัญชี AWS และ Resource ทั้งหมดได้ เพื่อทำตามแนวปฏิบัติ (Best Practics) ของ AWS ในการรักษาความปลอดภัยและลดสิทธิ์ในการเข้าถึง Resource ของ User แนะนำให้ปฏิบัติตามเทคนิคต่อไปนี้:

  • ใช้ IAM User ในการเข้าใช้งาน AWS สำหรับงานทั่วไปที่ทำเป็นประจำอยู่ทุกวันแทนการเข้าใช้งานด้วย Root user
  • ไม่ใช้งาน/ลบคีย์การเข้าถึง (Access Key) ของ Root user และให้เปลี่ยนไปใช้คีย์การเข้าถึง (Access Key) ของ IAM แทน รวมไปถึงลบคีย์การเข้าถึง (Access Key) ที่ไม่ได้ใช้งานออก
  • เปิดใช้งาน MFA device สำหรับ Root user ของบัญชีของท่าน

5. ตรวจสอบผู้ใช้ IAM User และ Policy ที่ใช้งานอย่างสม่ำเสมอ

ท่านสามารถปฏิบัติตามแนวทางของ AWS ได้เมื่อมีการใช้งาน IAM User

ท่านสามารถใช้ visual editor บน IAM console เพื่อช่วยให้ระบุ Policy ได้ง่ายและสะดวกมากยิ่งขึ้นได้

6. สร้าง Amazon EBS snapshots, Amazon RDS snapshots, และ Amazon S3 object versions

อีกหนึ่งสิ่งสำคัญที่จะเป็นการช่วยป้องกันข้อมูลคือการสำรองข้อมูล โดยท่านสามารถดูรายละเอียดเพิ่มเติมได้ที่รายการด้านล่างนี้ได้เลย

7. ใช้งาน AWS Git projects เพื่อป้องกันการใช้งานที่ไม่ได้รับอนุญาต

AWS มี Git Project ที่ท่านสามารถนำไปติดตั้งเพื่อช่วยปกป้องบัญชี AWS ของท่านได้:

  • Git Secrets สามารถช่วยสแกน merges, commits และ commit messages เพื่อหาข้อมูลที่เป็นความลับได้ (Access Key) หาก Git Secrets สแกนเจอข้อมูลเหล่านั้น ก็จะช่วยปฏิเสธการ Commit เหล่านั้นไม่ให้โพสไปยัง Git สาธารณะได้
  • ใช้ AWS Step Functions และ AWS Lambda เข้ามาช่วยสร้าง Amazon CloudWatch Events จาก AWS Health หรือ AWS Trusted Advisor ซึ่งหากมีการตรวจพบว่าคีย์การเข้าถึง (Access Key) หลุดออกไป ก็จะช่วยให้ท่านสามารถตรวจหา บันทึก และบรรเทาเหตุการณ์ได้โดยอัตโนมัติ

8. ตรวจสอบบัญชีและ Resources ที่ใช้งานอย่างสม่ำเสมอ

แนวทางการปฏิบัติที่ดีที่สุด (Best Practics) คือการตรวจสอบบัญชีและ Resources ของท่านอย่างสม่ำเสมอ เพื่อตรวจหากิจกรรมหรือการเข้าถึงบัญชีที่ผิดปกติ ซึ่งท่านสามารถปฏิบัติตามข้อแนะนำเหล่านี้ได้

  • สร้างการแจ้งเตือนค่าใช้จ่ายของบัญชี AWS (Billing Alarms) โดยท่านจะได้รับแจ้งเตือนเมื่อบัญชี AWS ของท่านมีค่าใช้จ่ายถึงที่กำหนดไว้ โดยท่านสามารถดูรายละเอียดเพิ่มเติมได้ที่ Amazon CloudWatch FAQs
  • เปิดใช้งาน AWS CloudTrails เพื่อใช้ในการตรวจสอบประวัติการเรียกใช้ API โดยจะสามารถระบุ Credentials ที่ใช้งานได้ ซึ่งท่านสามารถดูรายละเอียดเพิ่มเติมเกี่ยวกับการตรวจสอบประวัติการใช้งานที่ไม่ได้รับอนุญาตได้ที่ Security best practices in AWS CloudTrail
  • ใช้ CloudTrail และ CloudWatch ร่วมกัน เพื่อช่วยติดตามการใช้งานคีย์การเข้าถึง (Access Key) และรับแจ้งเตือนสำหรับการเรียกใช้ API ที่ผิดปกติ
  • เปิดใช้งานการเก็บ Log ในระดับ Resource (ตัวอย่างเช่น เก็บ Log ที่ระดับ Instance หรือระดับ OS) และเปิดใช้การเข้ารหัส  Amazon S3 default bucket
  • เปิดใช้งาน Amazon GuardDuty ในบัญชี AWS ของท่านในทุก ๆ AWS Regions เมื่อเปิดใช้งานแล้ว GuardDuty จะเริ่มวิเคราะห์ข้อมูลจาก AWS CloudTrail, Amazon S3 data events, Amazon VPC Flow Logs และ DNS Logs เพื่อช่วยปกป้องบัญชี AWS ของท่าน โดยที่ GuardDuty จะช่วยตรวจตรวจการบุกรุกบัญชี AWS การบุกรุก Instance และการบุกรุกอื่น ๆ ที่เป็นอันตราย สำหรับข้อมูลเพิ่มเติม ท่านสามารถดูได้ที่ Amazon GuardDuty FAQs

เพิ่มเติม: แนะนำให้เปิดการเก็บ Log ในทุก AWS Regions ไม่ใช่แค่เปิดการเก็บ Log เฉพาะ AWS Regions ที่ใช้งานเท่านั้น

บทสรุป

หลังจากทำตามทุกขั้นตอนในการตั้งค่าความปลอดภัยพื้นฐาน (Security Baseline) บนบัญชี AWS แล้ว หวังว่าบทความนี้จะช่วยให้ทุกท่านสามารถปฏิบัติตามข้อกำหนดพื้นฐานในการตั้งค่าความปลอดภัยของ AWS (AWS Security Best Practics) ได้ และช่วยให้บัญชี AWS ของท่านมีความปลอดภัยมากยิ่งขึ้น