Подключите Microsoft Sentinel к Amazon Web Services для приема данных журналов AWS EKS

Используйте соединитель Elastic Kubernetes Service (EKS) на основе Amazon Web Services (AWS) S3 для приема журналов аудита AWS EKS, собранных в контейнерах AWS S3, для Microsoft Sentinel. Журналы аудита AWS EKS — это подробные записи запросов сервера API, решений проверки подлинности и действий кластера в кластерах Kubernetes. Эти записи содержат такие сведения, как время получения запроса, особенности запроса, пользователь, выполняющие запрос, и выполненные действия. Этот анализ журналов необходим для обеспечения безопасности и соответствия контейнерных приложений, работающих в кластерах EKS.

Этот соединитель содержит скрипт подключения на основе AWS CloudFormation, упрощающий создание ресурсов AWS, используемых соединителем.

Важно!

Обзор

Соединитель данных EKS Amazon Web Services S3 обслуживает следующие варианты использования:

  • Мониторинг безопасности Kubernetes и обнаружение угроз: Анализируйте журналы аудита AWS EKS, чтобы помочь выявлять и реагировать на угрозы безопасности, такие как несанкционированный доступ, повышение привилегий и подозрительные вызовы API внутри ваших кластеров Kubernetes. Загружая эти журналы в Microsoft Sentinel, вы можете использовать его расширенные средства аналитики и данные аналитики угроз для обнаружения и расследования вредоносной активности, нацеленной на ваши контейнеризованные рабочие нагрузки.

  • Соответствие требованиям и аудит для контейнеризированных сред: Журналы аудита AWS EKS содержат подробные записи всех взаимодействий между серверами API, что имеет решающее значение для целей отчётности и аудита в контейнерных средах. Соединитель гарантирует, что эти журналы аудита доступны в Microsoft Sentinel для простого доступа и анализа, что помогает соответствовать нормативным требованиям к безопасности контейнеров.

  • DevSecOps и управление кластерами: Отслеживайте действия разработчиков, паттерны доступа к ресурсам и изменения конфигурации в ваших кластерах EKS, чтобы обеспечить правильное управление и безопасность в рабочих процессах DevSecOps.

В этой статье объясняется, как настроить соединитель EKS Amazon Web Services S3. Процесс его настройки состоит из двух частей: на стороне AWS и на стороне Microsoft Sentinel. Процесс каждой стороны создает информацию, используемую другой стороной. Обмен конфигурационными данными между AWS и Microsoft Sentinel создаёт безопасную коммуникацию.

Предварительные условия

  • Необходимо иметь разрешение на запись в рабочей области Microsoft Sentinel.

  • Установите решение Amazon Web Services из Центра содержимого в Microsoft Sentinel. Если вы уже установили более раннюю версию решения, обновите решение в центре содержимого, чтобы обеспечить наличие последней версии, включающей этот соединитель. Дополнительные сведения см. в статье Поиск и управление готовым содержимым Microsoft Sentinel.

  • У вас должен быть существующий кластер AWS EKS с включенным ведением журнала аудита или возможностью включения ведения журнала аудита в кластере EKS во время настройки.

  • Необходимо иметь соответствующие разрешения AWS IAM, чтобы:

    • Создание ролей и политик IAM
    • Создание контейнеров S3 и настройка политик контейнеров
    • Создание очередей SQS и настройка политик очередей
    • Создание стеков CloudFormation
    • Настройка параметров ведения журнала кластера EKS
    • Создайте потоки доставки Kinesis Data Firehose
    • Создание лямбда-функций

Включение и настройка соединителя Amazon Web Services S3 EKS

Чтобы включить и настроить соединитель, выполните следующие задачи:

  • В среде AWS:

    Страница соединителя Amazon Web Services S3 EKS в Microsoft Sentinel предоставляет загружаемые шаблоны стека AWS CloudFormation, которые автоматизируют следующие задачи AWS:

    • Настройте кластер AWS EKS для отправки журналов аудита в CloudWatch Logs.

    • Создайте поток доставки Kinesis Data Firehose для преобразования и доставки журналов из CloudWatch в S3.

    • Создайте контейнер S3 для хранения обработанных журналов аудита.

    • Создайте очередь службы простых очередей (SQS) для предоставления уведомлений при создании новых файлов журналов в S3.

    • Создайте поставщик веб-удостоверений для проверки подлинности пользователей в AWS с помощью OpenID Connect (OIDC).

    • Создайте предполагаемую роль , чтобы предоставить пользователям, прошедшим проверку подлинности с помощью поставщика веб-удостоверений OIDC, на доступ к ресурсам AWS.

    • Прикрепите соответствующие политики разрешений IAM, чтобы предоставить используемой роли доступ к соответствующим ресурсам (бакет S3, SQS).

    • Создайте лямбда-функцию для преобразования журналов аудита EKS в формат, ожидаемый Microsoft Sentinel.

  • В Microsoft Sentinel:

    • Настройте соединитель Amazon Web Services S3 EKS в портале Microsoft Sentinel, добавив сборщики журналов, которые опрашивают очередь SQS и извлекают данные журналов из контейнера S3. Дополнительные сведения см. в разделе "Добавление сборщиков журналов".

Настройка среды AWS

Чтобы упростить процесс подключения, страница соединителя Amazon Web Services S3 EKS в Microsoft Sentinel предоставляет загружаемые шаблоны для использования со службой AWS CloudFormation. Служба CloudFormation использует эти шаблоны для автоматического создания стеков ресурсов в AWS. Эти стеки включают ресурсы, описанные в этой статье, а также учетные данные, разрешения и политики.

Примечание.

Используйте процесс автоматической настройки. Для особых случаев см. инструкции по настройке вручную.

Подготовка файлов шаблонов

Чтобы запустить скрипт, который настраивает среду AWS, выполните следующие действия.

  1. В портале Azure в меню навигации Microsoft Sentinel разверните Конфигурация, и выберите Соединители данных.

    На портале Defender в меню быстрого запуска разверните раздел Конфигурация Microsoft Sentinel > и выберите Соединители данных.

  2. Выберите Amazon Web Services S3 EKS в списке соединителей данных.

    Если соединитель не отображается, установите решение Amazon Web Services из центра содержимого в разделе Управление содержимым в Microsoft Sentinel или обновите решение до последней версии.

  3. В области сведений для соединителя выберите Открыть страницу соединителя.

    Снимок экрана: коллекция соединителей данных, на которой показан соединитель AWS S3 EKS.

  4. В разделе Конфигурация под 1. Развертывание AWS CloudFormation выберите ссылку AWS CloudFormation Stacks . Это действие открывает консоль AWS в новой вкладке браузера.

  5. Вернитесь на вкладку портала, где Microsoft Sentinel открыто. Выберите Скачать в разделе Шаблон 1. Развертывание проверки подлинности OpenID Connect , чтобы скачать шаблон, который создает поставщик веб-удостоверений OIDC. Шаблон загружается в виде JSON-файла в назначенную папку загрузок.

    Примечание.

    Если у вас уже есть поставщик веб-идентификации OIDC из предыдущей настройки коннектора AWS, пропустите этот шаг.

  6. Выберите Скачать в разделе Шаблон 2. Развертывание ресурсов AWS EKS , чтобы скачать шаблон, который создает другие ресурсы AWS. Шаблон загружается в виде JSON-файла в назначенную папку загрузок.

    Снимок экрана: страница конфигурации соединителя AWS S3 EKS.

Создание стеков AWS CloudFormation

Вернитесь на вкладку браузера консоли AWS, которая открыта на странице AWS CloudFormation для создания стека.

Если вы еще не вошли в AWS, выполните вход сейчас. Вы будете перенаправлены на страницу AWS CloudFormation.

Создание поставщика веб-удостоверений OIDC

Важно!

Если у вас уже есть провайдер веб-идентификации OIDC из предыдущей настройки коннектора AWS, пропустите этот шаг и перейдите к Создание оставшихся ресурсов AWS.
Если у вас уже есть поставщик OIDC Connect для Microsoft Defender для облака, добавьте Microsoft Sentinel в качестве аудитории к существующему поставщику (коммерческие: api://1462b192-27f7-4cb9-8523-0f4ecb54b47e, для государственных организаций:api://d4230588-5f84-4281-a9c7-2c15194b28f7). Не пытайтесь создать новый поставщик OIDC для Microsoft Sentinel.

Следуйте инструкциям на странице консоли AWS, чтобы создать новый стек.

  1. Укажите шаблон и отправьте файл шаблона.

  2. Выберите Выбрать файл и найдите шаблон 1: OpenID connect authentication deployment.json скачанный файл.

  3. Выберите имя стека.

  4. Перейдите к остальной части процесса и создайте стек.

Создание оставшихся ресурсов AWS

  1. Вернитесь на страницу стеков AWS CloudFormation и создайте новый стек.

  2. Выберите Выбрать файл и найдите файл Шаблон 2: развертывание ресурсов AWS EKS.json, который вы скачали.

  3. Выберите имя стека.

  4. При появлении запроса введите следующие параметры:

    • EKSClusterName: введите имя существующего кластера EKS.
    • Идентификатор рабочей области Microsoft Sentinel: Чтобы найти идентификатор рабочей области:
      • В портал Azure в меню навигации Microsoft Sentinel разверните узел Конфигурация и выберите Параметры. Выберите вкладку настроек Workspace и найдите ID Workspace на странице Log Analytics.
      • На портале Defender в меню быстрого запуска разверните узел Система и выберите Параметры. Выберите Microsoft Sentinel, а затем выберите Параметры Log Analytics в разделе Параметры для [WORKSPACE_NAME]. Найдите идентификатор рабочей области на странице рабочей области Log Analytics, которая откроется на новой вкладке браузера.
    • BucketName. Введите уникальное имя для контейнера S3, в котором хранятся журналы аудита EKS.
    • SentinelSQSQueueName: введите имя очереди SQS (по умолчанию: MicrosoftSentinelEKSSqs).
    • AwsRoleName: введите имя роли IAM (должно начинаться с "OIDC_", по умолчанию — OIDC_MicrosoftSentinelRoleEKS).
  5. Перейдите к остальной части процесса и создайте стек.

  6. После создания стека перейдите к разделу Выходные данные стека CloudFormation и обратите внимание на следующие значения:

    • SentinelRoleArn: ARN роли IAM, созданной для доступа к Microsoft Sentinel.
    • SentinelSQSQueueURL: URL-адрес очереди SQS.
    • Шаг1EnableEKSAuditLogging: команда AWS CLI для включения ведения журнала аудита EKS.
    • Шаг 2СоздатьSubscriptionFilter: команда AWS CLI для создания фильтра подписки CloudWatch Logs.

Включение ведения журнала аудита EKS и настройка потоковой передачи журналов

После создания стеков CloudFormation включите ведение журнала аудита в кластере EKS и настройте потоковую передачу журналов:

  1. Если ведение журнала аудита еще не включено в кластере EKS, выполните команду, указанную в выходных данных Step1EnableEKSAuditLogging из стека CloudFormation.

  2. Подождите около пяти минут, пока журналы аудита начнут отображаться в журналах CloudWatch.

  3. Выполните команду, указанную в выходных данных Step2CreateSubscriptionFilter , чтобы создать фильтр подписки, который передает журналы аудита из CloudWatch в поток доставки Kinesis Data Firehose.

  4. Функция Lambda автоматически преобразует журналы аудита EKS в формат, ожидаемый Microsoft Sentinel, и отправляет их в S3, где они запускают уведомления SQS для приема данных.

Добавить сборщики журналов

При создании стеков ресурсов и настройке ведения журнала аудита EKS вернитесь на вкладку браузера, открытую на страницу соединителя данных в Microsoft Sentinel, и начните вторую часть процесса настройки.

  1. В разделе Конфигурация в разделе 2. Подключите новые сборщики, выберите Добавить новый сборщик.

    Снимок экрана: вторая часть конфигурации соединителя AWS EKS.

  2. Введите ARN роли IAM, которую вы создали. Используйте значение из выходных данных SentinelRoleArn стека CloudFormation (например, arn:aws:iam::{AWS_ACCOUNT_ID}:role/OIDC_MicrosoftSentinelRoleEKS).

  3. Введите СОЗДАННЫЙ URL-адрес очереди SQS. Используйте значение из выходного параметра SentinelSQSQueueURL стека CloudFormation (например, https://sqs.{AWS_REGION}.amazonaws.com/{AWS_ACCOUNT_ID}/MicrosoftSentinelEKSSqs).

  4. Выберите Connect, чтобы добавить сборщик. Это действие создает правило сбора данных для агента Azure Monitor, чтобы он мог собирать журналы и загружать их в специальную таблицу AWSEKSLogs_CL в вашей рабочей области Log Analytics.

    Снимок экрана добавления нового сборщика для логов EKS.

Проверка приема данных

Выполните следующие шаги, чтобы убедиться, что данные журнала аудита EKS поступают в ваше рабочее пространство Microsoft Sentinel.

  1. После настройки соединителя перейдите на страницу Журналы (или на страницу Расширенный поиск на портале Defender) и выполните следующий запрос. Если вы получите какие-либо результаты, соединитель работает правильно.

    AWSEKSLogs_CL
    | take 10
    
  2. Вы также можете выполнять более конкретные запросы для изучения данных аудита EKS.

    // View recent EKS audit events by verb (API action)
    AWSEKSLogs_CL
    | where TimeGenerated > ago(1h)
    | summarize count() by Verb
    | order by count_ desc
    
    // Monitor authentication decisions
    AWSEKSLogs_CL
    | where TimeGenerated > ago(24h)
    | where AuthDecision != ""
    | summarize count() by AuthDecision, User
    | order by count_ desc
    
    // Track failed requests (non-200 response codes)
    AWSEKSLogs_CL
    | where TimeGenerated > ago(24h)
    | where ResponseCode != 200
    | project TimeGenerated, User, Verb, ObjectRef, ResponseCode, SourceIPs
    | order by TimeGenerated desc
    

Справочник схемы

Журналы аудита EKS попадают в таблицу AWSEKSLogs_CL со следующей схемой:

Столбец Тип Описание
TimeGenerated дата и время Время создания события аудита
AwsAccountId строка Идентификатор учетной записи AWS, в которой расположен кластер EKS
Регион строка Регион AWS, в котором расположен кластер EKS
Имя_кластера строка Имя кластера EKS
Глагол строка Команда HTTP, связанная с запросом API (GET, POST, PUT, DELETE и т. д.)
Пользователь строка Сведения о пользователе, выполняющего запрос
Исходные ip-адреса Динамический Массив исходных IP-адресов, с которых был получен запрос
UserAgent строка Строка user-agent клиента, выполняющего запрос
ObjectRef строка Ссылка на объект Kubernetes, к которого осуществляется доступ
Код ответа int Код ответа HTTP для запроса API
Этап строка Этап обработки запроса (RequestReceived, ResponseStarted, ResponseComplete, Panic)
Решение об аутентификации строка Решение об авторизации, принятое сервером API
RawEvent Динамический Завершение необработанных данных о событиях аудита для расширенного анализа

Устранение неполадок

Распространенные проблемы и решения

Следующие распространённые проблемы и решения помогут вам устранить проблемы с настройкой разъёмов.

  • Данные не отображаются в таблице AWSEKSLogs_CL:

    • Убедитесь, что ведение журнала аудита EKS включено в кластере.
    • Убедитесь, что фильтр подписки CloudWatch Logs настроен правильно.
    • Убедитесь, что лямбда-функция обрабатывает журналы без ошибок. Проверьте журналы функции Lambda в CloudWatch Logs.
    • Убедитесь, что уведомления контейнера S3 настроены правильно для активации сообщений SQS.
  • Сбой создания стека CloudFormation:

    • Убедитесь, что у вас достаточно разрешений IAM для создания всех необходимых ресурсов.
    • Убедитесь, что указанное имя кластера EKS существует в вашей учетной записи.
    • Убедитесь, что имя контейнера S3 глобально уникально.
  • Ошибки проверки подлинности:

    • Убедитесь, что поставщик веб-идентификации OIDC настроен корректно.
    • Убедитесь, что разрешений роли IAM достаточно для доступа к ресурсам S3 и SQS.
    • Убедитесь, что идентификатор рабочей области, используемый в шаблоне CloudFormation, соответствует рабочей области Microsoft Sentinel.

Расширенный мониторинг

Если вы еще не сделали этого, реализуйте мониторинг работоспособности соединителя данных, чтобы узнать, когда соединители не получают данные или возникают другие проблемы. Дополнительные сведения см. в разделе Мониторинг работоспособности соединителей данных.