0Pricing
Cloud & IT Cert Prep · Урок

Трассы CloudTrail и история событий

Создавайте трассы событий управления и данных, передавайте журналы в S3 и CloudWatch Logs и ищите события за последние 90 дней в консоли.

«Трассы CloudTrail и история событий» — бесплатный урок Cloud & IT Cert Prep на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cloud & IT Cert Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cloud & IT Cert Prep содержит 4 уроков всего.

Что такое AWS CloudTrail?

AWS CloudTrail записывает каждый вызов API, выполненный в Вашем аккаунте AWS, независимо от того, был ли он сделан через Console, CLI, SDK или другой сервис AWS. Каждая такая запись называется событием CloudTrail и содержит действие API, сведения о личности отправителя запроса, исходный IP-адрес, параметры запроса и ответ. CloudTrail является основой аудита безопасности AWS, обеспечения соответствия требованиям и расследования операционных проблем. На экзамене SAA-C03 это правильный ответ, когда в вопросе спрашивается: «Кто внёс это изменение?»

История событий: бесплатный просмотр за 90 дней

По умолчанию каждый аккаунт AWS имеет доступ к истории событий CloudTrail — скользящей записи событий управления за 90 дней, которую можно просматривать в Console или запрашивать через CLI. Вы можете фильтровать события по имени ресурса, типу ресурса, имени события или имени пользователя. История событий бесплатна, не требует настройки и доступна сразу. Это самый быстрый способ расследовать недавние изменения, но для более длительного хранения или более мощных запросов необходимо создать Trail.

# 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

Создание Trail CloudTrail

Trail — это конфигурация CloudTrail, которая непрерывно доставляет события в корзину S3 (и, при необходимости, в CloudWatch Logs). Вы платите за хранение в S3 и передачу данных. Trail можно ограничить одним регионом или настроить как мультирегиональный Trail, который собирает события из всех текущих и будущих регионов Вашего аккаунта. На экзамене SAA-C03 всегда рекомендуется мультирегиональный Trail: Trail одного региона не фиксирует активность в других регионах и считается пробелом в безопасности.

# 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. Они включены по умолчанию в каждом Trail без дополнительной платы за отдельное событие. События данных фиксируют операции на уровне объектов — S3 GetObject, PutObject, DeleteObject или 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, независимо от того, где была инициирована операция. При создании Trail включите параметр --include-global-service-events, чтобы фиксировать создание пользователей IAM, изменения политик и принятие ролей STS. Если у Вас несколько Trail для отдельных регионов, включите события глобальных сервисов только в одном из них, чтобы избежать дублирования записей журналов.

# 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"}}
#     }
#   ]
# }

Trails организации

В AWS Organisation Вы можете создать Trail организации из управляющего аккаунта, и он автоматически будет применяться ко всем аккаунтам-участникам — текущим и будущим. Аккаунты-участники не могут изменять или удалять Trail организации, поэтому избежать аудита невозможно. Trails организации доставляют журналы в централизованную корзину 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 в Console 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;

Запросы к истории событий и журналам трейла

Есть два способа искать записи CloudTrail: История событий в консоли (последние 90 дней, только управленческие события, ограниченный набор фильтров) и журналы трейла в S3/Athena (неограниченное хранение, включая события данных, и полноценные возможности SQL). В заданиях экзамена: если требуется расследовать событие старше 90 дней или выполнить запрос к событиям плоскости данных (S3 GetObject, Lambda Invoke), всегда рекомендуйте запрашивать журналы трейла через 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 дней, трейлы обеспечивают непрерывную доставку в S3 с настраиваемым сроком хранения и дополнительными событиями данных, а организационные трейлы применяются ко всем учетным записям участников и не могут быть отключены ими. Далее мы рассмотрим CloudTrail Insights и проверку целостности файлов журналов.

Часто задаваемые вопросы

Урок «Трассы CloudTrail и история событий» бесплатный?

Да — полный текст урока «Трассы CloudTrail и история событий» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cloud & IT Cert Prep, подпишись на CoddyKit PRO. Курс Cloud & IT Cert Prep содержит 4 уроков всего.

Чему я научусь в уроке «Трассы CloudTrail и история событий»?

Создавайте трассы событий управления и данных, передавайте журналы в S3 и CloudWatch Logs и ищите события за последние 90 дней в консоли. Ты практикуешь Cloud & IT Cert Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cloud & IT Cert Prep?

Предыдущий опыт не требуется. Cloud & IT Cert Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Трассы CloudTrail и история событий»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cloud & IT Cert Prep?

Да. Каждый урок Cloud & IT Cert Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Трассы CloudTrail и история событий
  2. CloudTrail Insights и целостность файлов журналов
  3. Правила AWS Config и устранение нарушений
  4. Пакеты соответствия и трассы организации
← Назад к Cloud & IT Cert Prep