4 คะแนน โดย hahafree12 2024-06-01 | 2 ความคิดเห็น | แชร์ทาง WhatsApp

นี่คืออะไร?

  • ตรวจจับความพยายามเข้าสู่ระบบของ AWS (ไม่ว่าจะสำเร็จหรือล้มเหลว)
  • สามารถรับการแจ้งเตือนเมื่อมีการสร้างทรัพยากรภายใน AWS
    • (หากตั้งค่าแยกไว้) สามารถรับการแจ้งเตือนผ่านข้อความ Slack ได้ (ใช้ Webhook)
    • หากไม่ได้ตั้งค่า Slack notification แยกไว้ ก็สามารถรับการแจ้งเตือนทางอีเมลได้เช่นกัน (แต่หากใช้งาน Auto scaling อย่างหนัก ไม่แนะนำวิธีนี้)
  • หากตั้งค่าไว้แยกต่างหาก ระบบจะติดแท็ก 'User' ให้อัตโนมัติเพื่อให้ทราบว่าใครเป็นผู้สร้างทรัพยากร AWS

วิธีตั้งค่า

README.md 파일을 참고해 주세요!

  • ติดตั้งด้วย Terraform
  • ติดตั้งด้วย AWS SAM

จะรับการแจ้งเตือนได้อย่างไร?

(เลือกทำเพียงอย่างใดอย่างหนึ่งก็ได้)

  • ตั้งค่า Incoming Webhook ของ Slack แล้วกำหนด URL ของ webhook เป็น environment variable
  • ตั้งค่า AWS SNS Topic แล้วตั้งค่า subscription สำหรับ Topic นั้น

ทรัพยากร AWS ที่รองรับ

จะมีการแจ้งเตือนเมื่อมีกิจกรรมการเข้าสู่ระบบคอนโซลและเมื่อมีการสร้างทรัพยากรต่าง ๆ

  • การเข้าสู่ระบบคอนโซล
  • IAM (User, Group, Role, Policy, Instance Profile)
  • EC2 (Instance, Security Group)
  • RDS (Cluster, Instance)
  • S3 (Bucket)
  • ElastiCache (Redis, Memcached)
  • EMR (Cluster)
  • Lambda (Function)
  • Redshift (Cluster)
  • ECS (Cluster)
  • EKS (Cluster)
  • DocumentDB (Cluster, Instance)
  • MSK(Managed Streaming for Apache Kafka) (Cluster)
  • MWAA(Managed Workflow for Apache Airflow) (Environment)
  • DynamoDB (Table)
  • ELB (CLB, ALB, NLB, GLB)
  • CloudFront (Distribution)

2 ความคิดเห็น

 
yangeok 2024-06-05

ถ้าเปิด cloudtrail ไว้อยู่แล้ว แบบนี้ถ้าจะส่งการแจ้งเตือนด้วย lambda และอีเมลโนติ ก็ใช้แค่ sns เท่านั้นใช่ไหมครับ? แล้วค่าใช้จ่ายในการใช้งานก็ฟรีจนกว่าจะถึง 1 ล้านคอลแรกใช่ไหมครับ?

 
hahafree12 2024-06-06

สวัสดีครับ? ขอโทษที่ตอบกลับช้านะครับ

โดยพื้นฐานแล้ว ผมทำไว้โดยสมมติกรณีที่ยังไม่ได้ตั้งค่า CloudTrail จึงสมมติให้มีการเปิดใช้งาน CloudTrail + บันทึกลง S3 ครับ

หากเปิด CloudTrail ไว้อยู่แล้ว ผมจะลองปรับปรุงให้เชื่อมต่อเฉพาะฟังก์ชัน Lambda ได้ครับ

โดยพื้นฐานแล้ว จะใช้เพียง S3 สำหรับเก็บล็อก CloudTrail, ฟังก์ชัน Lambda สำหรับส่งการแจ้งเตือน และในกรณีส่งเมลแจ้งเตือนก็จะใช้ประมาณ SNS เท่านั้นครับ

ตามโครงสร้างนี้จะมีค่าใช้จ่ายของ CloudTrail, S3, Lambda และ SNS เกิดขึ้น แต่ถ้าเป็นบัญชีที่ใช้งานส่วนตัว โดยแทบจะไม่เกิดค่าใช้จ่ายเลยครับ (อย่างน้อยจากผลที่ผมลองรันในบัญชีส่วนตัวของตัวเองมานานกว่าหนึ่งปีล่าสุดก็เป็นแบบนั้น)

อย่างไรก็ตาม หากใช้งานกับโปรดักชันจริง จะมีการแจ้งเตือนการล็อกอินหรือการแจ้งเตือนเกี่ยวกับ Auto scaling เกิดขึ้นบ่อย ในกรณีนั้นอาจมีค่าใช้จ่ายเพิ่มขึ้นเล็กน้อยครับ

(สำหรับบัญชีโปรดักชัน ผมไม่แนะนำให้เปิดใช้งานการแจ้งเตือนทางอีเมลผ่านบริการ SNS)

ขอบคุณสำหรับคำถาม และผมจะนำไปใช้ในการปรับปรุงต่อไปครับ