Аудит MCP

English · Русский

Опциональный append-only JSONL log использует HMAC-SHA256. Для включения нужны путь TEST_DATA_AGENT_AUDIT_LOG и ровно один источник ключа: TEST_DATA_AGENT_AUDIT_HMAC_KEY либо TEST_DATA_AGENT_AUDIT_HMAC_KEY_FILE.

На invocation записываются started и succeeded/failed. Запись содержит service, operation, time, invocation ID, status, sequence и previous MAC. Arguments, SQL, profile payload, rows, return values и error messages не логируются.

Настройка

Администратор создаёт приватный существующий parent directory и внедряет base64 key минимум из 32 случайных bytes через secret manager. Не публикуйте ключ в чат, shell transcript, CI или MCP client config. Symlink, hard links и group/world-writable log files отклоняются.

Key file ограничен 4096 bytes, читается no-follow, содержит только base64 key с допустимым завершающим newline. Одновременные env key и file key отклоняются. Некорректная включённая audit configuration блокирует tools.

Admission limit по умолчанию 64 MiB, TEST_DATA_AGENT_AUDIT_MAX_BYTES может задать до 1 GiB. Новая invocation допускается только при резерве started + maximum terminal record; уже принятые concurrent terminal events могут ограниченно превысить admission ceiling.

Проверка и rotation

Audit-verify читает log с тем же ключом и проверяет sequence, previous link и MAC. Одна физическая строка не превышает 4096 bytes с newline; превышение отклоняется до JSON/HMAC parsing.

Для rotation остановите writer, выполните audit-verify, сохраните проверенный файл и final MAC в retention storage, затем запустите worker с новым пустым путём. HMAC не защищает от владельца ключа; локальная chain не доказывает, что корректный хвост не был удалён. Для усиленной retention сохраняйте независимые immutable checkpoints.

Audit на реальном deployment в этом аудите не включался. Примеры provision/verify с локальными путями: English.