Создание таблиц на основе данных CloudTrail
Определите схему, которая позволит напрямую запрашивать события аудита.
«Создание таблиц на основе данных CloudTrail» — бесплатный урок AWS Security Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AWS Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AWS Security Academy содержит 4 уроков всего.
Зачем нужна таблица
Athena не может выполнять запросы к необработанным файлам S3, пока вы не укажете, как их читать. Таблица сопоставляет JSON-файлы CloudTrail в вашей корзине S3 с именованными столбцами и их типами. После создания таблицы богатая структура событий CloudTrail становится доступной для обычного SQL.
Структура журналов CloudTrail
CloudTrail передает события в формате JSON; каждая запись описывает один вызов API и содержит вложенные поля, такие как userIdentity, eventName, sourceIPAddress и requestParameters. Схема таблицы должна отражать эту вложенность, включая типы struct для объектов, чтобы запросы могли обращаться к таким полям, как userIdentity.arn.
Использование DDL, предоставляемого AWS
Вам не нужно писать схему вручную. AWS публикует стандартную инструкцию CREATE TABLE для CloudTrail, а консоль CloudTrail и Athena могут создать ее за вас. Использование предоставленного DDL гарантирует правильное сопоставление каждого поля, включая глубоко вложенные поля, поэтому запросы не пропустят данные.
SerDe
SerDe (сериализатор/десериализатор) сообщает Athena, как разбирать каждый файл. Таблицы CloudTrail используют SerDe, разработанный для структуры JSON CloudTrail: он понимает массив записей и вложенные структуры. Очень важно выбрать правильный SerDe: неправильный вариант приводит к ошибкам разбора или столбцам со значениями NULL.
ROW FORMAT SERDE
'com.amazon.emr.hive.serde.CloudTrailSerde'
STORED AS INPUTFORMAT
'com.amazon.emr.cloudtrail.CloudTrailInputFormat'Указание расположения в S3
Предложение LOCATION таблицы указывает на префикс S3, где CloudTrail хранит журналы, обычно это путь с ID учётной записи и регионом. Важно правильно указать этот префикс: слишком широкий заставит сканировать ненужные данные, а слишком узкий приведёт к пропуску событий, которые Вы хотели запросить.
Запрос вложенных полей
После создания таблицы Вы можете обращаться к вложенным полям с помощью точечной нотации, например userIdentity.arn или requestParameters.bucketName. Функции SQL помогают распаковывать массивы и строки JSON. Здесь особенно заметны преимущества Athena для расследований: Вы можете точно фильтровать события по имени события, субъекту и параметрам любого вызова API.
Сканеры Glue как альтернатива
Вместо ручного DDL сканер AWS Glue может просканировать данные в S3 и автоматически вывести схему в Каталог данных. Для хорошо известных форматов, таких как CloudTrail, предоставленный DDL обычно получается более аккуратным, но сканеры полезны для пользовательских или изменяющихся форматов журналов, когда Вам не хочется описывать схему вручную.
Особенности JSON
В JSON CloudTrail есть поля, которые сами являются строками JSON, например requestParameters, когда значения зависят от сервиса. Часто Вы разбираете их во время выполнения запроса с помощью функций JSON. Если понимать, что некоторые столбцы являются строками для разбора, а не заранее структурированными столбцами, будет проще избежать путаницы, когда поле ведёт себя не как обычный столбец.
Таблицы журналов организации
Для трека организации журналы всех учётных записей попадают в одно хранилище с префиксами для отдельных учётных записей. Вы можете создать одну таблицу для всего префикса и одновременно запрашивать все учётные записи либо создать отдельные таблицы для изоляции. Единая таблица особенно полезна для поиска угроз во всей организации одним запросом.
Проверка таблицы
После создания таблицы выполните быстрый запрос SELECT с небольшим значением LIMIT, чтобы убедиться, что строки возвращаются, а столбцы заполняются ожидаемым образом. Если столбцы содержат значения NULL, вероятно, неправильно указаны SerDe, расположение или схема. Такая проверка здравого смысла избавит Вас от построения расследований на незаметно неисправной таблице.
От таблицы к расследованию
Когда таблица CloudTrail настроена правильно, у Вас появляется доступный для запросов журнал аудита за всю записанную историю. Каждый вход через консоль, вызов API и ошибка теперь представлены строкой, по которой можно фильтровать и выполнять агрегирование. Эта таблица станет основой для запросов расследования, которые Вы напишете далее.
Быстрая проверка
Проверьте свои знания о создании таблиц.
Повторение
Чтобы запрашивать CloudTrail в Athena, создайте таблицу, сопоставляющую файлы JSON со столбцами, используя предоставленный AWS DDL для CREATE TABLE, правильный SerDe и нужное расположение S3 в LOCATION. Запрашивайте вложенные поля с помощью точечной нотации, разбирайте столбцы со строками JSON во время выполнения запроса и проверяйте результат с небольшим запросом SELECT. Для трека организации можно использовать одну таблицу для поиска угроз во всей организации.
Часто задаваемые вопросы
Урок «Создание таблиц на основе данных CloudTrail» бесплатный?
Да — полный текст урока «Создание таблиц на основе данных CloudTrail» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AWS Security Academy, подпишись на CoddyKit PRO. Курс AWS Security Academy содержит 4 уроков всего.
Чему я научусь в уроке «Создание таблиц на основе данных CloudTrail»?
Определите схему, которая позволит напрямую запрашивать события аудита. Ты практикуешь AWS Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AWS Security Academy?
Предыдущий опыт не требуется. AWS Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Создание таблиц на основе данных CloudTrail»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AWS Security Academy?
Да. Каждый урок AWS Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Запрос журналов S3 с помощью Athena
- Создание таблиц на основе данных CloudTrail
- Расследование инцидентов с помощью запросов SQL
- Секционирование журналов для ускорения и снижения стоимости