การคืนการตั้งค่า Secure Account: ขั้นตอนการคืนค่า AWS CloudTrail

การคืนการตั้งค่า Secure Account: ขั้นตอนการคืนค่า AWS CloudTrail

2025.11.05

สวัสดีครับ ท่านผู้อ่านทุกท่าน ผมกาญจน์ครับ เรามาพบกันอีกครั้งกับสาระดีๆเกี่ยวกับ Secure Account อีกครั้งครับ

ในบทความนี้ จะมาแนะนำขั้นตอนการปิดการใช้งานการตั้งค่าความปลอดภัยของ AWS CloudTrail (การตั้งค่าการเข้ารหัสไฟล์ log ด้วย SSE-KMS) ที่เกิดขึ้นจากการเปิดใช้บริการ Secure Account ที่ Classmethod Members มอบให้

บทความนี้แปลมาจากบทความภาษาญี่ปุ่นที่ชื่อว่า 【セキュアアカウント切り戻し手順】AWS CloudTrail セキュア設定切り戻し手順のご案内
โดยเจ้าของบทความนี้คือ คุณ べこみんครับ

Secure Account คืออะไร

ที่ Classmethod เรามีการให้บริการบัญชี AWS ที่มีการติดตั้งด้านความปลอดภัยอย่างครบถ้วนตามแนวทาง Best practice แก่ลูกค้าของเรา

คุณลูกค้าที่ใช้บริการบัญชี AWS ผ่าน Classmethod ทุกท่านสามารถใช้บริการนี้ได้ จึงอยากเชิญชวนให้มาใช้กันครับ

https://www.classmethod.co.th/th/services-secure-account

สถาปัตยกรรมของ Secure Account

Secure Account มีการตั้งค่าดังต่อไปนี้ครับ

Secure Account Service GuardDuty-1

สำหรับรายละเอียดของแต่ละการตั้งค่า สามารถอ้างอิงบทความข้างล่างหรือเอกสารในลิงค์นี้ได้ครับ

https://dev.classmethod.jp/articles/th-aws-how-to-use-secure-account/

บริการที่เป็นเป้าหมายในการปิดการใช้งานครั้งนี้

cloudfront01

ครั้งนี้เราจะแนะนำขั้นตอนการปิดการใช้งานการตั้งค่าการเข้ารหัสไฟล์ log ของ AWS CloudTrail ด้วย SSE-KMS (ส่วนที่อยู่ในกรอบสีแดงในภาพด้านบน) ใน Secure Account กันครับ

การเข้ารหัสไฟล์ log ของ AWS CloudTrail ด้วย SSE-KMS คืออะไร

ใน Trail ที่สร้างด้วย CloudTrail จะมีการเข้ารหัสไฟล์ log ที่ถูกบันทึกไว้

โดยค่าเริ่มต้นจะใช้การเข้ารหัสแบบ SSE-S3 ซึ่งเป็นการเข้ารหัสโดยใช้คีย์ที่จัดการโดย AWS S3 แต่สามารถเปิดใช้งานการเข้ารหัสแบบ SSE-KMS ซึ่งใช้ Customer Managed Key ที่ผู้ใช้จัดการเองได้เป็นตัวเลือกได้เช่นเดียวกันครับ

ใน Secure Account จะเป็นการเปิดใช้งาน SSE-KMS ที่ใช้ Customer Managed Key ครับ

ค่าใช้จ่าย

ค่าใช้จ่ายสำหรับการตั้งค่านี้มีดังนี้:

  • ค่าบริหารจัดการ Customer Managed Key (คีย์ที่จัดการโดยผู้ใช้)

    • $2/เดือน (ใน Secure Account การหมุนเวียนคีย์อัตโนมัติจะถูกเปิดใช้งาน)
  • ค่าใช้จ่ายในการเข้ารหัส/ถอดรหัสไฟล์ log โดยผู้ใช้

    • $0.03/10,000 คำขอ (ฟรี 20,000 คำขอต่อเดือน)
    • ไม่มีค่าใช้จ่ายเมื่อ CloudTrail ทำการเข้ารหัส/ถอดรหัส

ทั้งนี้ ค่าใช้จ่ายจะขึ้นอยู่กับขนาดของสภาพแวดล้อมและวิธีการดำเนินงานด้วยครับ แต่โดยทั่วไปค่าใช้จ่ายจะค่อนข้างน้อย เพียงไม่กี่ดอลลาร์ต่อเดือนเท่านั้นครับ

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับค่าบริการของ AWS KMS สามารถอ่านเอกสารเพิ่มเติมข้างล่างนี้ได้ครับ

https://aws.amazon.com/th/kms/pricing/?nc1=f_ls

1. ข้อกำหนดเบื้อง

ปิด Opt-in Classmethod Members Portal (CMP)

ในระบบ Secure Account เราจะต้องไปที่เว็บไซต์ Classmethod Members Portal (CMP) เพื่อทำการปิดการใช้งาน Opt-in ของ CloudTrail

หากไม่ปิดการใช้งานในส่วนนี้ ในทุกๆวันเสาร์ Classmethod Members Portal จะทำการเปิดบริการดังกล่าวขึ้นมาใหม่โดยอัตโนมัติ แม้ว่าเราจะปิดการใช้งาน CloudTrail ใน Console ไปแล้วก็ตาม ฉะนั้น หากต้องการจะปิดการใช้บริการไหน เราต้องปิด Opt-in ในเว็บไซต์ Classmethod Members Portal ก่อนครับ

  1. อันดับแรก ให้มาที่เว็บไซต์ Classmethod Members Portal จากหัวข้อ "AWS Account" แล้วเลือก Account ID ที่เราต้องการครับ

cloudfront02

  1. จากนั้นเลื่อนลงมาที่หัวข้อ "Security Settings" แล้วคลิกที่ Edit

cloudfront03

  1. หลังจากนั้น ให้เลื่อนลงมาที่ "Secure Settings (affects the existing operating system)" แล้วติ๊ก AWS CloudTrail (Secure Settings) ออก

cloudfront04


2. ขั้นตอนการคืนค่า CloudTrail

ในบทความนี้จะแนะนำการย้อน CloudTrail กลับด้วยกัน 2 วิธีครับ คือ การทำผ่าน Classmethod Members Portal (CMP) และการทำผ่าน CloudShell ครับ โดยจะอธิบายข้อดีข้อเสียและสถานการณ์ที่เหมาะสมของแต่ละวิธี เพื่อเป็นข้อมูลในการเลือกขั้นตอนที่เหมาะสมกับผู้อ่านครับ

วิธี 1: วิธีการคืนค่าผ่าน Classmethod Members Portal (CMP): ย้อนค่าได้ง่าย

  • วิธีนี้จะย้อนค่า Cloudtrail เป็นแบบ Basic โดยอัตโนมัติ
  • ไม่จำเป็นต้องตั้งค่า IAM Permission เพื่อย้อนค่า (Note: แต่ถ้าอยากใช้ Cloudshell เพื่อตรวจสอบสถานะปัจจุบันด้วย จำเป็นต้องใช้ IAM Permission)

วิธี 2: วิธีการคืนค่าผ่าน Cloudshell: สามารถ Customize ได้

  • สามารถเลือกบาง Region ให้ไม่ต้องย้อนกลับได้ (เช่น เว้นเฉพาะ Thailand Region ให้คงค่า Cloudtrail ไว้)
  • สามารถเพิ่ม custom resource exclusions (รายการยกเว้น Resource แบบกำหนดเอง) เพิ่มเติมที่ไม่ต้องการให้บันทึก Log ใน Cloudtrail แบบ Basic

a. IAM permission ที่จำเป็นสำหรับดำเนินการคืนค่า Cloudtrail

สิทธิ์การเข้าถึง (Access Permissions) ที่ผู้ปฏิบัติงานต้องมีเพื่อทำการย้อนกลับ (Rollback) ในครั้งนี้มีดังนี้

  • [สิทธิ์การอ่าน (Read)]

    • cloudtrail:DescribeTrails
    • s3:GetEncryptionConfiguration
  • [สิทธิ์การเขียน (Write)]

    • cloudtrail:UpdateTrail
    • s3:PutEncryptionConfiguration

นอกจากนี้ การใช้งาน CloudShell ต้องเพิ่ม IAM Policy ที่ชื่อว่า AWSCloudShellFullAccess

b. ตรวจสอบสถานะปัจจุบัน

ก่อนอื่นเราต้องตรวจสอบการตั้งค่าปัจจุบันก่อนครับ

เปิด CloudShell และรันคำสั่งต่อไปนี้ (สามารถดูการใช้ Cloudshell ได้ตามลิงค์นี้ครับ)

Note: เนื่องจากปัจจุบัน บริการ Cloudshell จะยังไม่มีใน Thailand Region ครับ หากผู้อ่านจะใช้ Cloudshell จำเป็นต้องเปลี่ยนไปที่ Singapore Region ก่อนครับ

for REGION in $(aws ec2 describe-regions --query "sort(Regions[].RegionName)" --output text); do
    ENCRYPTION=$(aws cloudtrail describe-trails --region "${REGION}" --trail-name-list Members --query 'trailList[].KmsKeyId' --output text 2>/dev/null)
    if [ -n "$ENCRYPTION" ]; then
        echo "${REGION}: Enabled"
    else
        echo "${REGION}: Disabled"
    fi
done

แม้ว่าการสร้าง CloudTrail จะทำใน Singapore Region แต่เพื่อความแน่ใจ เราจะแสดงข้อมูลจากทุก region

ap-northeast-1: Enabled
ap-northeast-2: Enabled
ap-northeast-3: Enabled
ap-south-1: Enabled
ap-southeast-1: Enabled
ap-southeast-2: Enabled
ca-central-1: Enabled
eu-central-1: Enabled
eu-north-1: Enabled
eu-west-1: Enabled
eu-west-2: Enabled
eu-west-3: Enabled
sa-east-1: Enabled
us-east-1: Enabled
us-east-2: Enabled
us-west-1: Enabled
us-west-2: Enabled

ผลลัพธ์คือ ทุกภูมิภาคแสดงสถานะ "Enabled"

c. วิธี 1: คืนค่า Cloudtrail ผ่าน Classmethod Members Portal (CMP)

วิธีนี้จะคล้ายๆกับการปิด Opt-in ที่ได้กล่าวไว้ข้างต้นครับ

  1. ให้ไปที่ CMP -> เลือก Account ที่ต้องการแก้ไข -> กด "Edit"

  2. เลื่อนลงมาจนถึง "Basic Settings" แล้วตรวจสอบว่า "AWS CloudTrail (Basic Settings)" เปิดอยู่ (หากปิดอยู่ ให้คลิกเปิดด้วย)
    cloudfront08

  3. จากนั้นให้เลื่อนลงมาจนถึง "Secure Settings (affects the existing operating system)" แล้วกดปิด "AWS CloudTrail (Secure Settings)
    cloudfront07

  4. พอมีการเปลี่ยนค่า ให้เลื่อนมากด "Save" ที่ขวาล่างสุดเพื่อบันทึกการเปลี่ยนแปลงด้วย

  5. พอทำสำเร็จ ในวันเสาร์ถัดมา การตั้งค่าของ CloudTrail เป็นการตั้งค่าแบบ Basic ตามมาตรฐาน Classmethod (ซึ่งเป็นการตั้งค่าเริ่มต้น ตอนที่ส่งมอบ Account ในครั้งแรก)

Note: สาเหตุที่แม้จะเปิด CloudTrail (Basic Settings) แล้วยังต้องปิด CloudTrail (Secure Settings) เพราะกรณีเปิดทั้ง 2 แบบ ระบบจะใช้ Secure Settings เป็นหลัก ทำให้ไม่คืนค่ากลับเป็น Basic Settings อย่างที่ต้องการ

d. วิธี 2: คืนค่า Cloudtrail ผ่าน CloudShell

ขั้นตอนการคืนค่า CloudTrail ด้วย CloudShell มีดังนี้:

  • ปิดการตั้งค่าการเข้ารหัสไฟล์ log ของ CloudTrail
  • เปลี่ยนการตั้งค่าการเข้ารหัสเริ่มต้นของ S3 Bucket เป็น SSE-S3
  1. ปิดการตั้งค่าการเข้ารหัสไฟล์ log ของ CloudTrail
    คำสั่งสำหรับปิดการตั้งค่าอยู่ด้านล่างนี้ รันใน CloudShell ครับ
aws cloudtrail update-trail --name Members --kms-key-id "" --region ap-northeast-1
  1. รันคำสั่งตรวจสอบอีกครั้งเหมือนที่ทำไปก่อนหน้านี้ครับ
for REGION in $(aws ec2 describe-regions --query "sort(Regions[].RegionName)" --output text); do
    ENCRYPTION=$(aws cloudtrail describe-trails --region "${REGION}" --trail-name-list Members --query 'trailList[].KmsKeyId' --output text 2>/dev/null)
    if [ -n "$ENCRYPTION" ]; then
        echo "${REGION}: Enabled"
    else
        echo "${REGION}: Disabled"
    fi
done

ผลลัพธ์ที่ได้เป็นดังนี้ครับ

ap-northeast-1: Disabled
ap-northeast-2: Disabled
ap-northeast-3: Disabled
ap-south-1: Disabled
ap-southeast-1: Disabled
ap-southeast-2: Disabled
ca-central-1: Disabled
eu-central-1: Disabled
eu-north-1: Disabled
eu-west-1: Disabled
eu-west-2: Disabled
eu-west-3: Disabled
sa-east-1: Disabled
us-east-1: Disabled
us-east-2: Disabled
us-west-1: Disabled
us-west-2: Disabled

ต่อไปเราจะเปลี่ยนการตั้งค่าของ S3 Bucket

เปลี่ยนการตั้งค่าการเข้ารหัสเริ่มต้นของ S3 Bucket เป็น SSE-S3
การตั้งค่าการเข้ารหัสเริ่มต้นของ S3 Bucket ก็ใช้ SSE-KMS ที่ใช้คีย์ที่จัดการโดยผู้ใช้เหมือนกันกับ CloudTrail

เพื่อยืนยันชื่อของ Bucket ที่ต้องการเปลี่ยนแปลง รันคำสั่งต่อไปนี้

aws cloudtrail describe-trails --trail-name-list Members --query 'trailList[].S3BucketName' --output text

ก่อนอื่นให้ตรวจสอบสถานะปัจจุบัน รันคำสั่งตรวจสอบด้านล่างนี้

Note: cloudtrail-xxxxxxxxxxxx: ส่วนนี้ให้ใส่เลข ID จริงของเราลงไป

ENCRYPTION_TYPE=$(aws s3api get-bucket-encryption \
    --bucket cm-members-cloudtrail-xxxxxxxxxxxx \  
    --region ap-northeast-1 --query 'ServerSideEncryptionConfiguration.Rules[].ApplyServerSideEncryptionByDefault.SSEAlgorithm' --output text)
if [ ${ENCRYPTION_TYPE} == "aws:kms" ]; then
    echo "SSE-KMS is enabled"
elif [ ${ENCRYPTION_TYPE} == "AES256" ]; then
    echo "SSE-S3 is enabled"
else
    echo "Default encryption is not set"
fi
SSE-KMS is enabled

หากแสดงผลตามที่กล่าวไว้ ให้รันคำสั่งเปลี่ยนการตั้งค่าต่อไปนี้ คำสั่งนี้จะไม่แสดงผลลัพธ์ใดๆ

Note: cloudtrail-xxxxxxxxxxxx: ส่วนนี้ให้ใส่เลข ID จริงของเราลงไป

aws s3api put-bucket-encryption \
    --bucket cm-members-cloudtrail-xxxxxxxxxxxx \
    --server-side-encryption-configuration '{"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]}' --region ap-northeast-1

สุดท้าย ให้ตรวจสอบสถานะการเข้ารหัสเริ่มต้นอีกครั้ง รันคำสั่งตรวจสอบที่ได้ทำไปก่อนหน้านี้อีกครั้ง

SSE-S3 is enabled

หากแสดงผลตามที่กล่าวไว้ การดำเนินการก็เสร็จสมบูรณ์

【ข้อควรระวัง】เกี่ยวกับการลบคีย์ที่จัดการโดยผู้ใช้ (Customer Managed Key)

ตามที่อธิบายไว้ในส่วนของค่าบริการ การจัดการคีย์ที่จัดการโดยผู้ใช้ (Customer Managed Key) จะมีค่าใช้จ่าย $2 ต่อเดือน

อย่างไรก็ตาม หากคุณลบคีย์ที่จัดการโดยผู้ใช้นี้ คุณจะไม่สามารถเข้าถึง (ถอดรหัส) ไฟล์ log ที่ได้รับการบันทึกไว้ในปัจจุบันได้

นอกจากนี้ คีย์ที่จัดการโดยผู้ใช้นี้ยังถูกใช้ในการเข้ารหัสไฟล์ log ของ AWS Config ด้วย

※ใน Bucket ที่จัดเก็บไฟล์ log ของ CloudTrail จะมีการตั้งค่า Lifecycle Rule ให้ลบไฟล์หลังจากเก็บไว้เป็นเวลา 3 ปี

สำหรับวิธีการลบ สามารถดูรายละเอียดได้ที่เอกสารข้างล่างนี้ครับ

https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html

3. หากต้องการเปิดการใช้งานอีกครั้ง

  1. ให้มาที่เว็บไซต์ Classmethod Members Portal จากหัวข้อ "AWS Account" ให้เลือก Account ID ที่เราต้องการ

cloudfront02

  1. จากนั้นเลื่อนลงมาที่หัวข้อ "Security Settings" แล้วคลิกที่ "Edit"

cloudfront03

  1. ที่หัวข้อ "Secure Settings (affects the existing operating system)" ให้ติ๊กเปิด ของ "AWS CloudTrail (Secure Settings)" อีกครั้ง

cloudfront05

  1. พอเสร็จแล้ว ก็ให้กด "Save" ที่ขวาล่างสุดเพื่อบันทึกการเปลี่ยนแปลงด้วยครับ

ทิ้งท้าย

จบไปแล้วครับกับบทความ "ขั้นตอนการปิดใช้งานบริการบางส่วนสำหรับ Secure Account: ขั้นตอนการคืนค่า AWS CloudTrail" หวังว่าผู้อ่านทุกท่านจะได้ประโยชน์และเข้าใจเกี่ยวกับการเปิดปิดการใช้ CloudTrail ใน Secure Account มากขึ้นนะครับ

แล้วพบกันใหม่ในบทความหน้า สวัสดีครับ

บทความต้นฉบับ

この記事をシェアする

FacebookHatena blogX

関連記事