Введение
CloudTrail позволяет нам регистрировать все вызовы API в нашем облаке AWS. В этой статье мы рассмотрим, как создать CloudTrail, посмотреть, где хранятся журналы в S3, удалить журнал, дайджест файлов и выполнить проверку файлов журнала.
Создание CloudTrail
Найдите CloudTrail в консоли AWS и создайте его.
Ведро S3
Ведро должно быть автоматически создано и связано с CloudTrail. В ведре должна появиться папка с именем CloudTrail, в которую будут сохраняться все журналы облачного трейла.
Генерируем журналы
Теперь давайте выполним какое-либо действие и посмотрим, будет ли оно записано в журнал. Создайте лямбда-функцию с именем helloWorld и всеми остальными настройками по умолчанию. Вы можете выполнить любое другое действие в облаке AWS вместо создания функции.
Мы должны увидеть несколько файлов на S3 для этой активности.
Удаление файла журнала
Я удаляю один из файлов журнала.
Файлы журнала не должны быть изменены/удалены, так как они могут содержать важную аудиторскую информацию, поэтому сейчас нам нужно найти, были ли наши файлы журнала изменены или удалены (как в данном случае).
Попробуем проверить теперь из AWS CLI, он должен сказать, что файл дайджеста не выходит.
$ aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:ap-south-1:<accoount-id>:trail/management-events --start-time 2022-08-29
Validating log files for trail arn:aws:cloudtrail:ap-south-1:<account-id>:trail/management-events between 2022-08-29T00:00:00Z and 2022-08-29T06:26:38Z
Results requested for 2022-08-29T00:00:00Z to 2022-08-29T06:26:38Z
No digests found
Это происходит потому, что мы не включили проверку файлов журналов для облачной трассы.
Включить проверку файлов журнала
Мы можем включить проверку файлов журнала, отредактировав облачный след.
Дайджест
Поскольку проверка файлов журнала включена, мы должны увидеть новую папку CloudTrail-Digest в S3.
Файлы дайджеста должны добавляться каждый час.
Валидация
Поскольку мы включили проверку журнальных файлов, теперь мы можем проверить целостность журналов.
$ aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:ap-south-1:<account-id>:trail/management-events --start-time 2022-08-29
Validating log files for trail arn:aws:cloudtrail:ap-south-1:<account-id>:trail/management-events between 2022-08-29T00:00:00Z and 2022-08-29T07:00:20Z
Results requested for 2022-08-29T00:00:00Z to 2022-08-29T07:00:20Z
Results found for 2022-08-29T05:55:08Z to 2022-08-29T06:55:08Z:
1/1 digest files valid
Хотя мы удалили файл журнала ранее, он показывает, что дайджест действителен, поскольку мы не включили проверку файлов журнала.
Через час мы должны увидеть два файла дайджеста.
На данный момент проверка файла журнала кажется хорошей.
$ aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:ap-south-1:<account-id>:trail/management-events --start-time 2022-08-29
Validating log files for trail arn:aws:cloudtrail:ap-south-1:<account-id>:trail/management-events between 2022-08-29T00:00:00Z and 2022-08-29T08:17:57Z
Results requested for 2022-08-29T00:00:00Z to 2022-08-29T08:17:57Z
Results found for 2022-08-29T05:55:08Z to 2022-08-29T07:55:08Z:
2/2 digest files valid
10/10 log files valid
Удаление файла журнала с проверкой валидности
Мы можем попробовать удалить файл журнала, который был создан после включения проверки файла журнала.
Как и ожидалось, проверка файла журнала завершилась неудачей для одного файла. Однако дайджесты все еще действительны.
$ aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:ap-south-1:<account-id>:trail/management-events --start-time 2022-08-29
Validating log files for trail arn:aws:cloudtrail:ap-south-1:<account-id>:trail/management-events between 2022-08-29T00:00:00Z and 2022-08-29T08:22:42Z
Log file s3://aws-cloudtrail-logs-<account-id>-4a8dcb98/AWSLogs/<account-id>/CloudTrail/ap-south-1/2022/08/29/<account-id>_CloudTrail_ap-south-1_20220829T0755Z_7rDSVFC6Icgi9Z8V.json.gz INVALID: not found
Results requested for 2022-08-29T00:00:00Z to 2022-08-29T08:22:42Z
Results found for 2022-08-29T05:55:08Z to 2022-08-29T07:55:08Z:
2/2 digest files valid
9/10 log files valid, 1/10 log files INVALID
Здесь также ясно сказано, что проверка не прошла, потому что не удалось найти файл, который мы удалили.
Удалить дайджест
На этот раз мы можем попробовать удалить файл дайджеста.
Следовательно, проверка дайджеста также должна завершиться неудачей.
$ aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:ap-south-1:<account-id>:trail/management-events --start-time 2022-08-29
Validating log files for trail arn:aws:cloudtrail:ap-south-1:<account-id>:trail/management-events between 2022-08-29T00:00:00Z and 2022-08-29T10:09:35Z
Digest file s3://aws-cloudtrail-logs-<account-id>-4a8dcb98/AWSLogs/<account-id>/CloudTrail-Digest/ap-south-1/2022/08/29/<account-id>_CloudTrail-Digest_ap-south-1_management-events_ap-south-1_20220829T085508Z.json.gz INVALID: not found
Log file s3://aws-cloudtrail-logs-<account-id>-4a8dcb98/AWSLogs/<account-id>/CloudTrail/ap-south-1/2022/08/29/<account-id>_CloudTrail_ap-south-1_20220829T0755Z_7rDSVFC6Icgi9Z8V.json.gz INVALID: not found
Results requested for 2022-08-29T00:00:00Z to 2022-08-29T10:09:35Z
Results found for 2022-08-29T05:55:08Z to 2022-08-29T09:55:08Z:
3/4 digest files valid, 1/4 digest files INVALID
20/21 log files valid, 1/21 log files INVALID
Обратите внимание, что мы можем включить версионность на ведрах S3 для восстановления файлов.
Резюме
Итак, мы увидели, как функция проверки файлов журнала в CloudTrail помогает нам найти, были ли какие-либо ручные изменения в файлах журнала или дайджестах. Спасибо за прочтение!!!