Кратко
ValidatingAdmissionPolicyBindingсвязывает политику, предполагаемую область, необязательные параметры и заявленные действия; это не квитанция о судьбе отдельного API-запроса.- Kubernetes отдельно описывает сопоставление, разрешение параметров, вычисление выражения, обработку ошибок, выбор действия и ответ запросу.
- Проверяемая практика хранит наблюдаемую конфигурацию и результат запроса как разные записи с собственным происхождением.
Привязка политики удобно выглядит как уже совершившееся принуждение. В ней видны имя политики, условия области ресурсов и слова Deny, Warn или Audit. Из этого легко вывести фразу «кластер блокирует такую операцию». Но сама привязка сначала сообщает о настройке будущего применения: она соединяет логику политики с областью и, возможно, параметрами. В ней нет имени запроса, времени, идентичности инициатора, пути совпадения и ответа API-сервера.
Справочник Kubernetes проводит первую границу через правила сопоставления. ValidatingAdmissionPolicyBinding связывает ValidatingAdmissionPolicy с параметризованными ресурсами. Её matchResources пересекаются с matchConstraints политики; запрос должен сначала соответствовать политике, и только затем привязка может выбрать его далее. Это описание возможной проверки, а не свидетельство о том, что определённый объект оказался в пересечении. Подходящего запроса могло не быть; запрос мог не совпасть; его мог изменить или отклонить другой контроллер на следующем этапе.
Параметры добавляют ещё одну неустранимую неопределённость. Привязка может ссылаться на ресурс параметров, но документация различает существующую и отсутствующую ссылку. Отсутствующий параметр способен сделать привязку неверно настроенной и привести к применению политики обработки ошибок. Политика, привязка, ресурс параметров и настройка ошибок — отдельные поверхности конфигурации. Их наличие полезно фиксировать, но оно не доказывает, что рабочая нагрузка была разрешена, отклонена или защищена.
Нельзя также отождествлять failurePolicy с реакцией на выражение, вернувшее false. Kubernetes относит эту политику к ошибкам разбора, проверки типов, выполнения и конфигурации. Реакцию на ложную валидацию определяют validationActions привязки. Deny означает отказ запроса при такой ошибке валидации; Warn сообщает предупреждение клиенту; Audit помещает сведения о сбое в событие аудита запроса. Это не три названия одного результата «защищено». Они относятся к разным вещам: ошибке, результату выражения, объявленному действию и наблюдаемому эффекту.
Положение допуска в обработке запроса ещё сильнее ограничивает вывод. Kubernetes помещает admission control после аутентификации и авторизации, но до сохранения. Мутирующая и валидирующая фазы различны; отказ в любой из них прекращает запрос. По привязке нельзя узнать, разрешила ли операцию предшествующая авторизация, изменил ли объект мутирующий этап, отказал ли другой механизм или был ли объект сохранён. Операции чтения вообще обходят слой допуска. Поэтому перечень привязок не является историей того, что кластер принял, изменил или сохранил.
Более узкое доказательство может быть сильнее. Kubernetes документирует audit-аннотацию сбоя валидации, относящуюся к конкретному API-запросу и называющую политику, привязку, выражение и действия. Она поддерживает ограниченное утверждение об этом запросе. Без дополнительных сведений она не подтверждает такой же исход для другой нагрузки, другого времени или всего кластера. Именно ограничение делает утверждение проверяемым.
Практически полезно вести две связанные, но несмешиваемые записи. В конфигурационной записи остаются идентичность и наблюдаемая версия политики и привязки, область, ссылка на параметр, политика ошибок, действия и время наблюдения. В записи результата — идентичность и время запроса, совпадение или исключение, состояние параметра, вычисление, действие, ответ и признак сохранения либо отказа. Kubernetes не требует такого журнала. Он нужен, чтобы ясное объявление не получило полномочий доказанного события, которого оно не наблюдало.
Источники
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
