Рубрики
Uncategorized

AWS: Обзор Cloudtrail и интеграция с CloudWatch и OpsGenie

AWS Cloudtrail — это услуга для аудита событий AWS Accounts и включена по умолчанию. Это спасает … Tagged с AWS, DevOps, сегодня.

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

Смотрите Что такое события 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»