การคืนการตั้งค่า Secure Account: ขั้นตอนการปิดการใช้งาน Amazon Detective
สวัสดีครับ ท่านผู้อ่านทุกท่าน ผมกาญจน์ครับ เรามาพบกันอีกครั้งกับสาระดีๆเกี่ยวกับ Secure Account อีกครั้งครับ
ในบทความนี้ จะมาแนะนำขั้นตอนการปิดการใช้งานการตั้งค่าความปลอดภัยของ AWS Detective ที่เกิดขึ้นจากการเปิดใช้บริการ Secure Account ที่ Classmethod Members มอบให้ครับ
บทความนี้แปลมาจากบทความภาษาญี่ปุ่นชื่อ 【セキュアアカウント切り戻し手順】Amazon Detective無効化手順のご案内 โดยเจ้าของบทความนี้คือ คุณ 岩城 匠朗
Secure Account คืออะไร
ที่ Classmethod เรามีการให้บริการบัญชี AWS ที่มีการติดตั้งด้านความปลอดภัยอย่างครบถ้วนตามแนวทาง Best practice แก่ลูกค้าของเรา
คุณลูกค้าที่ใช้บริการบัญชี AWS ผ่าน Classmethod ทุกท่านสามารถใช้บริการนี้ได้ จึงอยากเชิญชวนให้มาใช้กันครับ
สถาปัตยกรรมของ Secure Account
Secure Account มีสถาปัตยกรรมและการตั้งค่าดังต่อไปนี้
สำหรับรายละเอียดของแต่ละการตั้งค่า สามารถอ้างอิงบทความข้างล่างหรือเอกสารในลิงค์นี้ได้ครับ
บริการที่เป็นเป้าหมายในการปิดการใช้งานครั้งนี้
ในครั้งนี้ จะขอแนะนำขั้นตอนการปิดการใช้งานการตั้งค่า Detective ที่เปิดใช้งานในทุก Region บน Secure Account
Amazon Detective คืออะไร
Detective เป็นบริการที่อยู่ในหมวด "การตอบสนอง (Respond)" จากทั้งหมด 5 หมวดที่กำหนดไว้ใน NIST Cyber Security Framework (CSF) ซึ่งประกอบไปด้วย
- Identify (ระบุ) - การระบุและจัดการความเสี่ยง
- Protect (ป้องกัน) - การป้องกันภัยคุกคาม
- Detect (ตรวจจับ) - การตรวจจับเหตุการณ์ด้านความปลอดภัย
- Respond (ตอบสนอง) - การตอบสนองต่อเหตุการณ์
- Recover (กู้คืน) - การกู้คืนระบบ
บริการนี้จะนำเข้าผลการตรวจจับจาก AWS Security Hub และ Amazon GuardDuty เพื่อทำการวิเคราะห์ สืบสวน และระบุสาเหตุหลักของผลการตรวจจับด้านความปลอดภัยและกิจกรรมที่น่าสงสัยอย่างรวดเร็ว
ดังนั้น การใช้งาน AWS Security Hub และ Amazon GuardDuty จึงเป็นข้อกำหนดเบื้องต้นครับ
นอกจากนี้ Detective ยังได้รับการอัปเดตฟีเจอร์อย่างต่อเนื่อง โดยเมื่อเร็วๆ นี้ได้มีการเพิ่มฟีเจอร์ Finding Group Visualization ที่ช่วยแสดงความสัมพันธ์ของผลการตรวจจับในรูปแบบภาพ
ภาพ: ตัวอย่างของ Finding Group Visualization (แหล่งที่มา)
ค่าบริการ
Detective มีค่าใช้จ่ายตามปริมาณล็อกที่รวบรวมจากแหล่งต่อไปนี้
- AWS CloudTrail
- VPC Flow Logs
- ล็อกการตรวจสอบของ Amazon EKS
- ผลการตรวจจับจาก AWS Security Hub
- ผลการตรวจจับจาก Amazon GuardDuty
กรณีที่มีการรวบรวม log 100GB/เดือน ในภูมิภาคสิงคโปร์ จะมีค่าใช้จ่ายประมาณ 310USD/เดือน
100(GB) × 3.10USD(สำหรับ 1,000 GB แรก/บัญชี/ภูมิภาค/เดือน) = 310USD/เดือน
สำหรับรายละเอียดเพิ่มเติม กรุณาตรวจสอบที่นี่
ข้อกำหนดเบื้องต้น
1. การปิดใช้งานบริการ (Opt-in) ผ่าน Classmethod Members Portal (CMP)
ในระบบ Secure Account เราจะต้องไปที่เว็บไซต์ Classmethod Members Portal (CMP) เพื่อทำการปิดการใช้งาน Opt-in
หากไม่ปิดการใช้งานในส่วนนี้ ในทุกๆวันเสาร์ Classmethod Members Portal จะทำการเปิดบริการดังกล่าวขึ้นมาใหม่โดยอัตโนมัติ แม้ว่าเราจะปิดการใช้งาน CloudTrail ใน Console ไปแล้วก็ตาม ฉะนั้น หากต้องการจะปิดการใช้บริการไหน เราต้องปิด Opt-in ในเว็บไซต์ Classmethod Members Portal ก่อนครับ
- อันดับแรก ให้มาที่เว็บไซต์ Classmethod Members Portal จากหัวข้อ "AWS Account" แล้วเลือก Account ID ที่เราต้องการครับ
- จากนั้นเลื่อนลงมาที่หัวข้อ "Security Settings" แล้วคลิกที่ Edit
- หลังจากนั้น ให้เลื่อนลงมาที่ "Secure Settings" แล้วติ๊ก "Amazon Detective" ออก
2. IAM permission ที่จำเป็นสำหรับดำเนินการปิดการใช้งาน
Policy ที่จำเป็นสำหรับดำเนินการเพื่อทำการปิดการใช้งานในครั้งนี้มีดังต่อไปนี้
- AWSCloudShellFullAccess
- AmazonGuardDutyFullAccess
- AmazonEC2ReadOnlyAccess

ขั้นตอนการปิดการใช้งาน
1. ตรวจสอบสถานะปัจจุบันของ Detective
เปิด CloudShell และรันคำสั่งต่อไปนี้ (สามารถดูการใช้ Cloudshell ได้ตามลิงค์นี้ครับ)
หลังจากตรวจสอบแล้ว จะสามารถปิดใช้งาน GuardDuty ได้ 2 วิธี คือ
- ใช้ CloudShell
- ใช้ Console
ซึ่งวิธี CloudShell จะสะดวกมากเวลาต้องการปิดการใช้งานหลาย Region พร้อมกันทีเดียวครับ เพราะถ้าใช้ Console เราต้องคอยเปลี่ยน Region เพื่อปิดการใช้งาน
Note: เนื่องจากปัจจุบัน บริการ Cloudshell จะยังไม่มีใน Thailand Region ครับ หากผู้อ่านจะใช้ Cloudshell จำเป็นต้องเปลี่ยนไปใช้ที่ Singapore Region ก่อนครับ
for REGION in $(aws ec2 describe-regions --query "sort(Regions[].RegionName)" --output text); do
DETECTIVE_ARN=$(aws detective list-graphs --region "${REGION}" --query "GraphList[].Arn" --output text 2>/dev/null)
if [ -n "$DETECTIVE_ARN" ]; then
DETECTIVE_STATUS=$(aws detective list-members --graph-arn "${DETECTIVE_ARN}" --query 'MemberDetails[].Status' --region "${REGION}" --output text 2>/dev/null)
if [ "$DETECTIVE_STATUS" == "ENABLED" ]; then
# แสดงสถานะที่กำลังเปิดใช้งาน
echo "${REGION}: Enabled: ${DETECTIVE_ARN}"
else
# แสดงสถานะในกรณีอื่นๆ ที่นอกเหนือจากที่กล่าวข้างต้น
echo "${REGION}: Unknown Status: ${DETECTIVE_ARN}"
fi
else
# แสดงสถานะที่กำลังปิดใช้งาน
echo "${REGION}: Disabled: -"
fi
done
หากเปิดใช้งาน Detective อยู่ จะแสดงผลลัพธ์ดังต่อไปนี้
ap-northeast-1: Enabled: arn:aws:detective:ap-northeast-1:XXXXXXXXXXXX:graph:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ap-northeast-2: Enabled: arn:aws:detective:ap-northeast-2:XXXXXXXXXXXX:graph:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ap-northeast-3: Disabled: -
ap-south-1: Enabled: arn:aws:detective:ap-south-1:XXXXXXXXXXXX:graph:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ap-southeast-1: Enabled: arn:aws:detective:ap-southeast-1:XXXXXXXXXXXX:graph:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ap-southeast-2: Enabled: arn:aws:detective:ap-southeast-2:XXXXXXXXXXXX:graph:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ca-central-1: Enabled: arn:aws:detective:ca-central-1:XXXXXXXXXXXX:graph:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
eu-central-1: Enabled: arn:aws:detective:eu-central-1:XXXXXXXXXXXX:graph:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
eu-north-1: Enabled: arn:aws:detective:eu-north-1:XXXXXXXXXXXX:graph:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
eu-west-1: Enabled: arn:aws:detective:eu-west-1:XXXXXXXXXXXX:graph:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
eu-west-2: Enabled: arn:aws:detective:eu-west-2:XXXXXXXXXXXX:graph:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
eu-west-3: Enabled: arn:aws:detective:eu-west-3:XXXXXXXXXXXX:graph:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
sa-east-1: Enabled: arn:aws:detective:sa-east-1:XXXXXXXXXXXX:graph:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
us-east-1: Enabled: arn:aws:detective:us-east-1:XXXXXXXXXXXX:graph:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
us-east-2: Enabled: arn:aws:detective:us-east-2:XXXXXXXXXXXX:graph:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
us-west-1: Enabled: arn:aws:detective:us-west-1:XXXXXXXXXXXX:graph:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
us-west-2: Enabled: arn:aws:detective:us-west-2:XXXXXXXXXXXX:graph:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2. วิธีปิดใช้งาน Detective
วิธี 1: กรณีใช้ CloudShell
- หากต้องการจัดการ Detective ในทุก Region พร้อมกัน แนะนำให้ใช้ CloudShell ครับ
for REGION in $(aws ec2 describe-regions --query "sort(Regions[].RegionName)" --output text); do
DETECTIVE_ARN=$(aws detective list-graphs --region "${REGION}" --query "GraphList[].Arn" --output text 2>/dev/null)
if [ -n "$DETECTIVE_ARN" ]; then
DETECTIVE_STATUS=$(aws detective list-members --graph-arn "${DETECTIVE_ARN}" --query 'MemberDetails[].Status' --region "${REGION}" --output text 2>/dev/null)
if [ "$DETECTIVE_STATUS" == "ENABLED" ]; then
# ปิดการใช้งาน Detective
aws detective delete-graph --graph-arn "${DETECTIVE_ARN}" --region "${REGION}"
echo "${REGION}: Disable Successful"
else
# แสดงสถานะในกรณีอื่นๆ ที่นอกเหนือจากที่กล่าวข้างต้น
echo "${REGION}: Unknown Status: ${DETECTIVE_ARN}"
fi
else
# แสดงสถานะที่กำลังปิดใช้งาน
echo "${REGION}: Disabled"
fi
done
- หากอยากยกเว้นเฉพาะบาง Region จากทั้งหมด เราสามารถเติมคำสั่งนี้ (โดยใส่ -e เพื่อเพิ่ม Region ที่จะยกเว้นได้)
| grep -v -e '<ชื่อ region1>' -e '<ชื่อ region2>' -e ...
โดยแทนที่ส่วน {ใส่โค้ดยกเว้น Region ตรงนี้} ด้วยคำสั่งยกเว้น Region ครับ
for REGION in $(aws ec2 describe-regions --query "sort(Regions[].RegionName)" --output text | {ใส่โค้ดยกเว้น Region ตรงนี้}; do
# ... โค้ดส่วนที่เหลือ
done
- ตัวอย่างข้างล่างเป็นการปิด Detective ในทุก Region ยกเว้น North Virginia กับ Singapore
for REGION in $(aws ec2 describe-regions --query "sort(Regions[].RegionName)" --output text | grep -v -e 'us-east-1' -e 'ap-southeast-1'); do
DETECTIVE_ARN=$(aws detective list-graphs --region "${REGION}" --query "GraphList[].Arn" --output text 2>/dev/null)
if [ -n "$DETECTIVE_ARN" ]; then
DETECTIVE_STATUS=$(aws detective list-members --graph-arn "${DETECTIVE_ARN}" --query 'MemberDetails[].Status' --region "${REGION}" --output text 2>/dev/null)
if [ "$DETECTIVE_STATUS" == "ENABLED" ]; then
# ปิดการใช้งาน Detective
aws detective delete-graph --graph-arn "${DETECTIVE_ARN}" --region "${REGION}"
echo "${REGION}: Disable Successful"
else
# แสดงสถานะในกรณีอื่นๆ ที่นอกเหนือจากที่กล่าวข้างต้น
echo "${REGION}: Unknown Status: ${DETECTIVE_ARN}"
fi
else
# แสดงสถานะที่กำลังปิดใช้งาน
echo "${REGION}: Disabled"
fi
done
วิธี 2: กรณีใช้ Console
- การใช้ Console ปิดการใช้ Detective จำเป็นต้องทำในแต่ละ Region ซึ่งจะใช้เวลานานมากถ้ามีหลาย Region ดังนั้น วิธีนี้จะเหมาะในกรณีต้องการปิดการใช้ Detective ไม่กี่ Region ครับ
- วิธีการปิด Detective ใน Region ที่ต้องการ สามารถดำเนินการตามในรูปด้านล่างได้เลยครับ


- จากนั้น ให้รันคำสั่งตรวจสอบสถานะปัจจุบัน เหมือนที่เราเคยใช้ไปแล้ว ตามนี้ครับ
Note: ถ้าอยู่ Thailand Region ให้เปลี่ยนไปใช้ Singapore Region ก่อนเพื่อใช้ Cloudshell ครับ
for REGION in $(aws ec2 describe-regions --query "sort(Regions[].RegionName)" --output text); do
DETECTIVE_ARN=$(aws detective list-graphs --region "${REGION}" --query "GraphList[].Arn" --output text 2>/dev/null)
if [ -n "$DETECTIVE_ARN" ]; then
DETECTIVE_STATUS=$(aws detective list-members --graph-arn "${DETECTIVE_ARN}" --query 'MemberDetails[].Status' --region "${REGION}" --output text 2>/dev/null)
if [ "$DETECTIVE_STATUS" == "ENABLED" ]; then
# แสดงสถานะที่กำลังเปิดใช้งาน
echo "${REGION}: Enabled: ${DETECTIVE_ARN}"
else
# แสดงสถานะในกรณีอื่นๆ ที่นอกเหนือจากที่กล่าวข้างต้น
echo "${REGION}: Unknown Status: ${DETECTIVE_ARN}"
fi
else
# แสดงสถานะที่กำลังปิดใช้งาน
echo "${REGION}: Disabled: -"
fi
done
- ถ้า Region ที่เราได้ปิดไปขึ้นสถานะ Disabled แสดงว่าเราปิดการใช้งานเสร็จสมบูรณ์ครับ
หากต้องการเปิดการใช้งานอีกครั้ง
- ให้มาที่เว็บไซต์ ClassMethod Portals (CMP) จากหัวข้อ "AWS Account" ให้เลือก Account ID ที่เราต้องการ
- จากนั้นเลื่อนลงมาที่หัวข้อ "Security Settings" แล้วคลิกที่ "Edit"
- ที่หัวข้อ "Secure Settings" ให้ติ๊กเปิดใช้งาน Amazon Detective อีกครั้ง
4. จากนั้นเลื่อนลงมาข้างล่างสุดแล้วกด "Save" เพื่อบันทึกการเปลี่ยนแปลงครับ

ทิ้งท้าย
จบไปแล้วครับกับบทความ "การคืนการตั้งค่า Secure Account: ขั้นตอนการปิดการใช้งาน Amazon Detective" หวังว่าผู้อ่านทุกท่านจะได้ประโยชน์และเข้าใจเกี่ยวกับการเปิดปิดการใช้ Detective ใน Secure Account มากขึ้นนะครับ
แล้วพบกันใหม่ในบทความหน้า สวัสดีครับ
บทความต้นฉบับ
【セキュアアカウント切り戻し手順】Amazon Detective無効化手順のご案内(บทความภาษาญี่ปุ่น)














