AWS Cloudtrail — это услуга для аудита событий AWS Accounts и включена по умолчанию.
Это сохраняет все действия, которые были выполнены пользователем, IAM -роли или сервисом AWS через консоль AWS, AWS CLI или AWS SDK.
CloudTrail будет писать информацию о каждом вызове API, войти в систему, события служб и является незаменимым инструментом для безопасности учетной записи AWS.
Такие события будут храниться в течение 90 дней, но вы можете настроить тропа , это будет хранить выбранные события в ведро AWS S3 и может отправить их в AWS CloudWatch, а в CloudWatch мы можем настроить тревоги для получения уведомлений.
Эти трассы могут быть двух типов: глобальный, применяемый ко всем регионам AWS, и местный только для одного выбранного региона. Смотрите Как Cloudtrail ведут себя регионально и глобально?
Таким образом, в этом посте мы подробнее рассмотрим AWS Cloudtrail и его функции, настроем экспорт в CloudWatch и создадим тревогу и уведомления для Slack через OpsGenie.
- AWS Cloudtrail Events
- События управления
- Данные события
- Insights события
- Cloudtrail Trail
- Создать трассу Cloudtrail
- Интеграция CloudTrail и CloudWatch
- Создайте пользовательскую метрику AWS CloudWatch
- Опсгена и AWS Simple уведомлений
- Создайте тревогу AWS CloudWatch
- Opsgenie и пользовательские поля от AWS SNS
AWS Cloudtrail Events
Смотрите Что такое события Cloudtrail? и Мероприятия по управлению регистрацией для трасс .
А Событие В CloudTrail является записью любой деятельности в учетной записи AWS. События могут быть три типа: Управление событием , Данное событие , Insight Event Анкет
События управления
События управления — это что -то об операциях, которые выполняются в ресурсах AWS, а также называются Операции плоскости управления, Например:
- Операции безопасности (например, вызов API ATATERROLEPOLICY
Создание новых ресурсов (например, вызов API
- CreateFaultVpc
Обновления конфигурации сети (например, вызов API CreateSubnet
-
Изменения конфигурации журнала (например, вызов API
CreateTret -
Кроме того, он включает в себя вызовы без AAPI, такие как вход в консоль управления AWS, см. События без AAPI, захваченные Cloudtrail Анкет
Кроме того, эти события могут быть о читать или написать API вызывает. Операции чтения — это операции, которые запрашивают только информацию о ресурсах AWS (например, descriptionSubnets
) и записать — любые запросы на модификацию (например, urlinateinstances
), см. Читать и написать события Анкет
Данные события
Смотрите Данные события Анкет
Это информация об операциях с или внутри конкретного ресурса AWS, также называемой Операции плоскости данных , Например:
- С3 операции ведра, такие как
GetObject
,DeleteObject
иPutObject
- AWS Lambda функциональные вызовы
- Amazon Dynamodb Operations, такие как Putitem, Deleteitem и UpdateItem
Они не регистрируются по умолчанию и должны быть включены при создании тропы.
Insights события
Cloudtrail Insights будет следить за аномалиями и будет создавать событие Cloudtrail, если найдет.
Такие аномалии могут быть необычным количеством вызовов API DELETE в ведро AWS S3 или слишком высокие (или слишком низкие) вызовы, такие как AuthorizeSecurityGroupingRessress
Анкет
Cloudtrail Trail
Как упомянуто выше, а тропа Может храниться события в течение 90 дней и может быть интегрирована с CloudTrail и CloudWatch. Кроме того, он может собирать данные из всех регионов, в то время как Dashboard CloudTrail отображает информацию только о текущем регионе.
Создать трассу Cloudtrail
Перейти к Тропы , нажмите на Создать след кнопка:
Установите свое название, выбрал Создайте новое ведро S3 Укажите его название и сейчас отключите шифрование данных:
Чтобы настроить оповещения, включите отправку событий в журналы AWS CloudWatch:
Оставить События управления и включить Insights Анкет
Для События управления Включить и читать, и написать, для Insights события Включить API -ставка вызова :
Проверьте данные в журналах CloudWatch:
Теперь мы можем создавать метрики CloudWatch из этих событий и настроить тревогу.
Интеграция CloudTrail и CloudWatch
Далее, давайте создадим новую метрику CloudWatch, основанную на событиях CloudTrail, а затем настроем тревогу, которая отправит уведомление в AWS Simple Notification Service (SNS), которая, в свою очередь, переведет их в OpsGenie, и оттуда мы будем получать сообщения в слабые.
Есть вопрос, какие события нам действительно нужно смотреть. Это может быть поглощено запросом » Cloudtrail Security Alerts «, который даст два интересных материала — Охота на угрозу с Cloudtrail и Guardduty в Splunk и Ключевые события CloudTrail для мониторинга за безопасностью в AWS , или просто проверьте примеры в Повторная тревога Cloudwatch с помощью шаблона AWS CloudFormation Анкет
Для использования мы будем использовать следующее:
- Войдите в консоль AWS за пределами нашего офиса (как пример офиса IP здесь — 8.8.8.8):
{) && ($ .sourceipaddress)}
- root пользователя входит в систему в консоли AWS:
{) &&)}
- Войдите с ошибками в консоли AWS:
{) &&)}
- Несанкционированные операции:
{)
- )}
Уведомления о раскрущении огромных экземпляров EC2, например, самый большой тип, используемый нашей командой, C5.4xlarge:
- {) && (($ .requestParameters.instancetype = \*. 8xlarge)
($ .requestparameters.instancetype = \*. 4xlarge))}
Смотрите Синтаксис фильтра и рисунка Анкет
Сначала давайте создадим простое предупреждение о любом входе в консоли AWS
Для начала посмотрите, как будет выглядеть вход в событие: войдите в свою учетную запись, подождите 10–15 минут, сделайте фильтр у Имя события == Консолелогин
:
Создайте пользовательскую метрику AWS CloudWatch
Вернитесь в группу журнала «Создать выше», на Метрические фильтры Вкладка Нажмите Создать метрический фильтр Анкет
В Паттерн фильтра Используйте {)}
:
Заполните его поля:
Проверьте показатели на графиках:
Опсгена и AWS Simple уведомлений
Перейдите в AWS SNS, создайте новую тему SNS с Стандарт тип:
В Opsginie Список интеграции Найти Входящий Amazon SNS :
Сохраните интеграцию, сохраните ключ API:
Вернитесь к SNS, нажмите на Создать подписку , выбрал Https , установите URL и ключ API, предоставленные OpsGenie:
Получите уведомление о том, что подписка была подтверждена:
Создайте тревогу AWS CloudWatch
Перейти к Тревога , нажмите на Создать тревогу :
Выбрал метрику:
Опишите условия оповещения: — больше или равное 1 событие (предупреждение о каждом входе в систему):
Настройка отправки уведомлений на тему SNS, созданную выше:
Установите имя оповещения и сохраните его:
Через пару минут проверьте его статус: вместо Недостаточные данные это станет Ок (или В тревоге Если есть логины):
Войдите в консоли AWS и подождите 10–15 минут для события CloudTrail, и вы получите тревогу::
И предупреждение в слабых:
Opsgenie и пользовательские поля от AWS SNS
Что я хотел бы сделать еще, это фильтровать текст сообщения Slack, чтобы отображать только пользовательские поля.
Это можно сделать Строковые функции opsgenie Анкет
Перейти к Входящий SNS Интеграция, нажмите Передовой :
В Описание поле добавить Message.extract ()
вызов:
{{Message.extract(/AlarmDescription":"(.+)","AWSAccountId"/)}} AWS account ID: {{Message.extract(/AWSAccountId":"(.+)","NewStateValue"/)}} AWS region: {{Message.extract(/Region":"(.+)","AlarmArn"/)}}
Теперь, когда OpsGenie получит сообщение в JSON от AWS SNS, оттуда займет всего три поля — AlarmDescription
, Awsaccountid
и Регион
и в результате мы увидим в сообщении Slack Alarm в следующей форме:
Готово.
Первоначально опубликовано в RTFM: Linux, DevOps и системное администрирование Анкет
Оригинал: «https://dev.to/setevoy/aws-cloudtrail-overview-and-integration-with-cloudwatch-and-opsgenie-l6c»