IBCOURSES / СПРАВОЧНИК ИБ

Kubernetes: запрос на exec в контейнер

К ответу ↓

Аудит API показывает обращение к exec. Для вывода о выполнении команды нужны стадия, результат и дополнительные данные контейнера.

Например
Материалов с пояснениями: 94 · Записей реестров: 11 678

Уточнить поиск

События и журналы

Найдено: 84
Инструкция по проверке

Kubernetes: запрос на exec в контейнер

Аудит API показывает обращение к exec. Для вывода о выполнении команды нужны стадия, результат и дополнительные данные контейнера.

Условия и источник

Зафиксируйте кластер, версию API server, audit policy, backend и период. Здесь рассматривается запрос к pods/exec, а не полный журнал команд внутри контейнера. Уровень и стадии аудита определяют доступную форму записи. API audit.k8s.io/v1 — версия схемы, не выпуск кластера. Работайте с полученной копией, не открывая интерактивный exec для проверки наличия следов.

Как отобрать запись

Отберите objectRef.resource=pods и subresource=exec в audit JSONL. Сгруппируйте сохранённые стадии по auditID с учётом источника; одну стадию нельзя считать всей операцией. Для конкретного эпизода сохраните namespace/name, identity и requestURI при наличии. Не теряйте отказанные запросы при фильтрации только успешных HTTP-кодов: они отвечают на отдельный вопрос о попытке доступа.

Разбор примера

ResponseStarted в примере с Metadata показывает начало ответа для выбранного запроса. Иллюстративный 101 относится к смене протокола соединения и не является универсальным кодом всех exec. user.username указывает техническую identity API, а objectRef — целевой Pod. Показанное подмножество не содержит stdout, stderr, exit code или полного результата команды; эти данные нельзя достроить из факта установления канала.

Интерпретация и границы

Разделяйте разрешение API-запроса, установление потока и фактический процесс внутри контейнера. ServiceAccount или пользовательский токен не устанавливает человека без дополнительной цепочки. Имя Pod может переиспользоваться, поэтому сохраняйте UID, когда доступен, и время. Для запроса через другой транспорт/метод проверяйте фактический verb и URI, не требуя от всех событий точного совпадения с учебной иллюстрацией.

Следующая проверка

Сопоставьте эпизод с состоянием Pod, узлом, контейнером и доступными процессными данными runtime/хоста. Для оценки допуска проверьте действовавшие RBAC и основание работы, а для изменения файлов — отдельные свидетельства. Запишите, что именно установлено: запрос, канал или выполнение процесса. Не называйте выводом команды сообщение API и не объявляйте успех приложения по одному transport status.

Если записи нет

Проверьте, охватывала ли policy именно подресурс pods/exec, какие стадии исключались и куда сохранял backend. Затем уточните период, retention и потери доставки. Логи API audit и обычные Kubernetes Events — разные источники. Отсутствие exec в доступной копии не исключает процесс, запущенный иным способом, а отсутствие тела при Metadata является ограничением формата, не ошибкой аналитика.

Поля и область применения

Исходное полеСмысл и ограничения
auditIDID запроса
stageЭтап обработки
user.usernameАутентифицированная identity
objectRef.subresourceПодресурс exec
requestURIURI запроса; может содержать параметры
responseStatus.codeHTTP-результат

Примеры записей

Данные в примерах условные. Состав полей зависит от версии и настроек источника.

Пример фрагмента exec audit

Фрагмент журнала. Сокращённый пример по документированной структуре. Остальные поля опущены.

{
  "apiVersion": "audit.k8s.io/v1",
  "kind": "Event",
  "level": "Metadata",
  "auditID": "9d281109-1111-4444-8888-000000000001",
  "stage": "ResponseStarted",
  "verb": "create",
  "user": {
    "username": "demo.operator"
  },
  "objectRef": {
    "resource": "pods",
    "subresource": "exec",
    "namespace": "demo",
    "name": "worker-1"
  },
  "responseStatus": {
    "code": 101
  }
}

Команды и способы проверки

Укажите свой узел, путь к журналу и временной интервал. Требуемая среда указана рядом с командой.

jq, локальный audit JSONL

jq -c 'select(.objectRef.resource == "pods" and .objectRef.subresource == "exec")' audit.jsonl

Первоисточники

API audit не гарантирует стенограмму интерактивного сеанса или полную историю дочерних процессов.

Связанные материалы

Как пользоваться техническим справочником

Найдите порт, код ошибки, событие или источник журнала. Уточните протокол и систему, затем сверяйте значение, поля, примеры и первоисточники. Назначение порта не определяет фактическую службу, а одна запись не доказывает инцидент.

Материалы по разделам

События и журналы

Два ответа рядом

Сравнение источников

Сравнение показывает различия. События и поля разных систем не считаются эквивалентными.

Выберите службу

В списке — службы, доступные с текущими условиями. Число рядом — количество записей портов, а не программ на вашем узле.

Как искать в справочнике

Введите число, код, фрагмент сообщения или вопрос. Известный идентификатор поможет найти карточку; это не анализ самого инцидента.

  1. Введите номер, код, имя или фрагмент записи. Для портов можно использовать список: 80, 443, 8000–8010.
  2. Уточните поиск фильтрами. Все условия действуют одновременно. Числа в списках показывают, сколько материалов останется при выборе варианта.
  3. Службу выбирайте из каталога: поиск внутри списка помогает найти название, а кнопка «Выбрать» применяет его.
  4. Убирайте отдельные условия кнопкой × рядом с фильтром. «Сбросить фильтры» сохраняет текст поиска и текущий раздел.
  5. В карточке сверьте источник, версию и условия регистрации, затем откройте поля, примеры и первоисточник.

/ — перейти к поиску. Прямые ссылки открывают выбранную карточку в этом же справочнике.

Назначения портов и коды приведены по официальным реестрам. Версии, условия регистрации и ссылки на документацию указаны в карточках.

Избранное и недавние материалы хранятся в этом браузере. Запрос и фильтры сохраняются при возврате к выдаче и обновлении вкладки. Поиск работает локально.

Что есть в справочнике

От вопроса к свидетельствам: кто вошёл, что запустил, к каким данным обратился, что изменил и где искать следы.

Выберите область, чтобы посмотреть доступные источники и перейти к материалам.

Уточнить или исправить ответ

Скопируйте сообщение и отправьте его на mail@ibcourses.ru.