مسارات CloudTrail وسجل الأحداث
أنشئ مسارات لأحداث الإدارة والبيانات، وسلّم السجلات إلى S3 وCloudWatch Logs، وابحث في سجل الأحداث الممتد لـ90 يومًا من وحدة التحكم
مسارات CloudTrail وسجل الأحداث درس مجاني في AWS Solutions Architect على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AWS Solutions Architect، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AWS Solutions Architect 4 دروس في المجموع.
ما المقصود بـ AWS CloudTrail؟
AWS CloudTrail هي خدمة تسجل كل استدعاء API يتم إجراؤه في حساب AWS الخاص بكم — سواء من وحدة التحكم أو CLI أو SDK أو خدمة AWS أخرى. ويُسمى كل سجل حدث CloudTrail، ويحتوي على إجراء API وهوية مقدم الطلب وعنوان IP المصدر ومعلمات الطلب والاستجابة. وتُعد CloudTrail الأساس لتدقيق الأمان والامتثال والتحقيقات التشغيلية في AWS. وفي اختبار SAA-C03، تكون هي الإجابة كلما طرح السؤال: «من أجرى هذا التغيير؟»
سجل الأحداث: مراجعة مجانية لمدة 90 يوماً
بشكل افتراضي، يتمتع كل حساب AWS بإمكانية الوصول إلى سجل أحداث CloudTrail — وهو سجل متجدد لمدة 90 يوماً يمكن عرضه في وحدة التحكم أو الاستعلام عنه عبر CLI. ويمكنكم التصفية حسب اسم المورد أو نوع المورد أو اسم الحدث أو اسم المستخدم. وسجل الأحداث مجاني، ولا يتطلب أي إعداد، ومتاح فوراً. وهو أسرع طريقة للتحقيق في التغييرات الأخيرة، لكن يلزمكم إنشاء مسار للاحتفاظ بالسجلات مدة أطول أو لإجراء استعلامات أكثر قوة.
# Search event history for who deleted an S3 bucket in the last 7 days
aws cloudtrail lookup-events \
--lookup-attributes AttributeKey=EventName,AttributeValue=DeleteBucket \
--start-time $(date -u -d '7 days ago' +%Y-%m-%dT%H:%M:%SZ) \
--query 'Events[].{Time:EventTime,User:Username,Detail:CloudTrailEvent}' \
--output tableإنشاء مسار CloudTrail
المسار هو إعداد في CloudTrail يرسل الأحداث باستمرار إلى حاوية S3 (واختيارياً إلى CloudWatch Logs). وتدفعون مقابل تخزين S3 ونقل البيانات. ويمكن تحديد نطاق المسار ليقتصر على منطقة واحدة، أو إعداده باعتباره مساراً متعدد المناطق يلتقط الأحداث من كل منطقة حالية ومستقبلية في حسابكم. وفي اختبار SAA-C03، أوصوا دائماً باستخدام مسار متعدد المناطق — فالمسارات أحادية المنطقة تفوّت النشاط في المناطق الأخرى، وتُعد ثغرة أمنية.
# Create a multi-region trail delivering to S3
aws cloudtrail create-trail \
--name OrgAuditTrail \
--s3-bucket-name my-cloudtrail-logs-111122223333 \
--is-multi-region-trail \
--include-global-service-events \
--enable-log-file-validation
# Start logging (trails are created in 'paused' state)
aws cloudtrail start-logging --name OrgAuditTrailأحداث الإدارة مقابل أحداث البيانات
تسجل CloudTrail فئتين من الأحداث: تسجل أحداث الإدارة (وتُسمى أيضاً أحداث مستوى التحكم) العمليات التي تُجرى على الموارد — مثل إنشاء مثيل EC2 أو تعديل مجموعة أمان أو إرفاق سياسة IAM. وتكون هذه الأحداث مفعّلة بشكل افتراضي في كل مسار، دون رسوم إضافية لكل حدث. أما أحداث البيانات فتسجل العمليات على مستوى الكائن — مثل GetObject وPutObject وDeleteObject في S3، أو Invoke في Lambda. وقد تكون أحداث البيانات كبيرة الحجم جداً وتترتب عليها رسوم إضافية، ولذلك يجب تمكينها صراحةً لكل مورد أو نوع مورد.
# Add data event logging for all S3 objects in a specific bucket
aws cloudtrail put-event-selectors \
--trail-name OrgAuditTrail \
--event-selectors '[
{
"ReadWriteType": "All",
"IncludeManagementEvents": true,
"DataResources": [
{
"Type": "AWS::S3::Object",
"Values": ["arn:aws:s3:::my-sensitive-bucket/"]
}
]
}
]'تكامل CloudTrail مع CloudWatch Logs
يتيح إرسال أحداث CloudTrail إلى CloudWatch Logs إصدار تنبيهات فورية بشأن نشاط API. ويمكنكم إنشاء مرشحات مقاييس في مجموعة سجلات CloudTrail لعدّ أحداث محددة — مثل عدّ استدعاءات DeleteBucket أو CreateUser — ثم ضبط تنبيهات CloudWatch لإخطار فريق الأمان خلال دقائق من حدوث إجراء مريب. ويُعد هذا نمطاً أساسياً في CIS AWS Foundations Benchmark، الذي يشير إليه اختبار SAA-C03 كثيراً.
# Update a trail to also deliver to CloudWatch Logs
aws cloudtrail update-trail \
--name OrgAuditTrail \
--cloud-watch-logs-log-group-arn arn:aws:logs:us-east-1:111122223333:log-group:CloudTrail/Logs:* \
--cloud-watch-logs-role-arn arn:aws:iam::111122223333:role/CloudTrailCWLogsRole
# Create a metric filter for root account login
aws logs put-metric-filter \
--log-group-name CloudTrail/Logs \
--filter-name RootLogin \
--filter-pattern '{$.userIdentity.type = "Root" && $.eventName = "ConsoleLogin"}' \
--metric-transformations metricName=RootLogins,metricNamespace=CISBenchmark,metricValue=1أحداث الخدمات العامة
بعض خدمات AWS — ولا سيما IAM وSTS وRoute 53 وCloudFront — هي خدمات عامة، وتسجل استدعاءات API الخاصة بها باعتبارها أحداث خدمات عامة. وتُسجّل هذه الأحداث دائماً في منطقة us-east-1 بغض النظر عن مكان بدء العملية. وعند إنشاء مسار، فعّلوا --include-global-service-events لضمان التقاط إنشاء مستخدمي IAM وتغييرات السياسات وافتراضات أدوار STS. وإذا كان لديكم عدة مسارات خاصة بمناطق محددة، ففعّلوا أحداث الخدمات العامة في مسار واحد فقط لتجنب تكرار سجلات الأحداث.
# Verify that global service events are enabled on a trail
aws cloudtrail get-trail \
--name OrgAuditTrail \
--query 'Trail.{MultiRegion:IsMultiRegionTrail,GlobalServiceEvents:IncludeGlobalServiceEvents}'سياسة حاوية S3 لسجلات CloudTrail
تتطلب CloudTrail سياسة محددة لحاوية S3 تمنح هوية خدمة CloudTrail (cloudtrail.amazonaws.com) الإذن باستدعاء GetBucketAcl وPutObject على الحاوية. وتفرض AWS ألا تكون الحاوية متاحة للعامة، وأن تكون ملكية الكائنات مضبوطة على Bucket Owner Enforced. لا تخزنوا سجلات CloudTrail مطلقاً في الحاوية نفسها التي يستخدمها تطبيقكم — إذ يؤدي ذلك إلى إنشاء تبعية دائرية قد يتعطل معها الوصول إلى سجلات التدقيق إذا فُرضت قيود على حاوية التطبيق.
# Minimum S3 bucket policy for CloudTrail (abbreviated)
# {
# "Version": "2012-10-17",
# "Statement": [
# {
# "Sid": "AWSCloudTrailAclCheck",
# "Effect": "Allow",
# "Principal": {"Service": "cloudtrail.amazonaws.com"},
# "Action": "s3:GetBucketAcl",
# "Resource": "arn:aws:s3:::my-cloudtrail-logs-111122223333"
# },
# {
# "Sid": "AWSCloudTrailWrite",
# "Effect": "Allow",
# "Principal": {"Service": "cloudtrail.amazonaws.com"},
# "Action": "s3:PutObject",
# "Resource": "arn:aws:s3:::my-cloudtrail-logs-111122223333/AWSLogs/111122223333/*",
# "Condition": {"StringEquals": {"s3:x-amz-acl": "bucket-owner-full-control"}}
# }
# ]
# }مسارات المؤسسة
في AWS Organisation، يمكنكم إنشاء مسار مؤسسة من حساب الإدارة، ويُطبّق تلقائياً على جميع حسابات الأعضاء — الحالية والمستقبلية. ولا تستطيع حسابات الأعضاء تعديل مسار المؤسسة أو حذفه، مما يضمن عدم إمكانية التحايل على تغطية التدقيق. وترسل مسارات المؤسسة السجلات إلى حاوية S3 مركزية مع بادئات لكل حساب، مما يتيح لفريق الأمان الاستعلام عن سجلات التدقيق لجميع الحسابات في مكان واحد باستخدام Athena أو أداة SIEM.
# Create an organisation trail from the management account
aws cloudtrail create-trail \
--name OrgCentralTrail \
--s3-bucket-name central-org-cloudtrail-logs \
--is-multi-region-trail \
--is-organization-trail \
--include-global-service-events \
--enable-log-file-validation
aws cloudtrail start-logging --name OrgCentralTrailتكامل Athena لتحليل السجلات
تكون سجلات CloudTrail المرسلة إلى S3 بتنسيق JSON. ويمكنكم استخدام تكامل Amazon Athena في وحدة تحكم CloudTrail لإنشاء جدول Glue مقسم تلقائياً حسب الحساب والمنطقة والتاريخ. ويتيح لكم ذلك الاستعلام عن أشهر من سجل API باستخدام SQL القياسي، دون تحميل البيانات إلى قاعدة بيانات. قسّموا البيانات حسب التاريخ في استعلاماتكم (WHERE year='2024' AND month='01') لتجنب إجراء عمليات مسح كاملة للجدول والتحكم في تكاليف Athena.
-- Query CloudTrail logs in Athena for IAM policy changes in January 2024
SELECT
eventtime,
useridentity.arn AS principal,
eventname,
requestparameters
FROM cloudtrail_logs_111122223333
WHERE year = '2024'
AND month = '01'
AND eventsource = 'iam.amazonaws.com'
AND eventname IN ('PutUserPolicy','AttachRolePolicy','CreateUser')
ORDER BY eventtime DESC
LIMIT 100;الاستعلام في سجل الأحداث مقابل سجلات Trail
هناك طريقتان للبحث في سجلات CloudTrail: سجل الأحداث في وحدة التحكم (آخر 90 يومًا، وأحداث الإدارة فقط، مع عوامل تصفية محدودة) وسجلات Trail في S3/Athena (احتفاظ غير محدود، ويشمل أحداث البيانات أيضًا، مع إمكانات SQL كاملة). في سيناريوهات الاختبار: إذا كان السؤال يطلب التحقيق في حدث أقدم من 90 يومًا، أو الاستعلام عن أحداث مستوى البيانات (S3 GetObject وLambda Invoke)، فاحرص دائمًا على التوصية بالاستعلام في سجلات Trail عبر Athena. أما إذا كان السؤال يطلب أبسط طريقة للتحقيق في حدث إدارة حديث، فسجل الأحداث كافٍ.
حقائق CloudTrail الأساسية للاختبار
احفظ هذه النقاط لاختبار SAA-C03: CloudTrail ليس فوريًا — فقد يستغرق تسليم الأحداث إلى S3 مدة تصل إلى 15 دقيقة (استخدم CloudWatch Logs للتنبيهات شبه الفورية). يحتفظ سجل الأحداث بالأحداث لمدة 90 يومًا، وهي أحداث الإدارة فقط. يجب تفعيل أحداث البيانات صراحةً، وتُفرض عليها تكلفة إضافية. يستخدم التحقق من ملفات السجل تجزئات SHA-256 لاكتشاف العبث. تظهر أحداث الخدمات العامة (IAM وSTS وRoute 53) في us-east-1 فقط. لا يمكن تعطيل مسارات المؤسسة بواسطة حسابات الأعضاء.
تحقق سريع
اختبر مدى فهمك لمفاهيم AWS Solutions Architect (SAA-C03) من هذا الدرس.
مراجعة الدرس
تعلمت في هذا الدرس أن: سجل الأحداث يوفر وصولًا مجانيًا إلى أحداث الإدارة لمدة 90 يومًا، وأن مسارات Trail توفر تسليمًا مستمرًا إلى S3 مع مدة احتفاظ قابلة للتهيئة وأحداث بيانات اختيارية، وأن مسارات المؤسسة تنطبق على جميع حسابات الأعضاء ولا يمكنهم تعطيلها. بعد ذلك سنستكشف CloudTrail Insights والتحقق من سلامة ملفات السجل.
الأسئلة الشائعة
هل درس «مسارات CloudTrail وسجل الأحداث» مجاني؟
نعم — نص درس «مسارات CloudTrail وسجل الأحداث» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AWS Solutions Architect، انتقل إلى CoddyKit PRO. تتضمن دورة AWS Solutions Architect 4 دروس في المجموع.
ماذا ستتعلم في «مسارات CloudTrail وسجل الأحداث»؟
أنشئ مسارات لأحداث الإدارة والبيانات، وسلّم السجلات إلى S3 وCloudWatch Logs، وابحث في سجل الأحداث الممتد لـ90 يومًا من وحدة التحكم تتمرن على AWS Solutions Architect مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ AWS Solutions Architect؟
لا تُشترط خبرة سابقة. AWS Solutions Architect على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «مسارات CloudTrail وسجل الأحداث»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس AWS Solutions Architect هذا؟
نعم. كل درس في AWS Solutions Architect يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مسارات CloudTrail وسجل الأحداث
- CloudTrail Insights وسلامة ملفات السجل
- قواعد AWS Config والمعالجة
- حزم التوافق ومسارات Organisation