← Cloudflare Logs / logs / logpush / logpush-job
Часто задаваемые вопросы о проверке владения
Проверка владения представляет собой одноразовую проверку, которая подтверждает, что у вас есть доступ на чтение к целевому бакету, прежде чем Cloudflare начнёт отправлять в него журналы. Этот механизм не позволяет случайно настроить задание Logpush на отправку данных в бакет, который вам не принадлежит.
Как это работает
При создании задания Logpush для получателя типа хранилище Cloudflare требует подтвердить владение этим получателем:
- Запросите проверку владения для вашего
destination_conf. - Cloudflare записывает JWT в
ownership-challenge.txtв вашем бакете. - Считайте токен из бакета и передайте его вместе с запросом на создание задания.
- Cloudflare проверяет токен и создаёт задание.
Пошаговые инструкции см. в Управлять Logpush с помощью cURL.
От чего защищает проверка владения
Проверка владения защищает прежде всего от случайной неправильной настройки. Без неё можно по ошибке настроить задание на отправку данных не в тот бакет: например, в бакет, который на самом деле принадлежит кому-то другому.
Challenge также предотвращает вредоносные сценарии, при которых злоумышленник может:
- Направить задание Logpush в бакет другого клиента
- Отправить в этот бакет поддельные или вредоносные данные журналов
- Засорить или повредить хранилище журналов жертвы
Структура токена подтверждения
Проверка владения представляет собой токен JSON Web Token (JWT), содержащий утверждения (claims), которые привязывают его к определённому контексту. Токен включает:
- Тип объекта - Область действия задания: зона, аккаунт или тенант
- Object ID - Конкретный идентификатор зоны или аккаунта
- Конфигурация назначения - Полная конфигурационная строка получателя
- Отпечаток назначения - Хеш имени бакета и путей/префиксов
- Истечение срока действия - Срок действия токена истекает через 7 дней
Когда вы отправляете токен подтверждения, Cloudflare проверяет, что все утверждения (claims) в нём совпадают с вашим запросом на создание задания. Это не позволяет использовать один и тот же токен повторно для другого аккаунта, зоны или получателя.
Соображения по безопасности
Можно ли использовать скомпрометированный токен?
На практике атака с использованием скомпрометированного токена подтверждения владения крайне маловероятна. Злоумышленнику потребовалось бы:
- Доступ к вашему аккаунту Cloudflare (чтобы сопоставить его с идентификатором объекта в токене)
- Знание точного имени бакета и путей/префиксов (чтобы они совпадали с отпечатком назначения)
- Выполнить действие в течение 7 дней (до истечения срока действия проверочного запроса)
Основным уровнем защиты являются настройки IAM/контроля доступа вашего бакета и безопасность аккаунта Cloudflare, а не токен проверки владения.
Рекомендации
- Удалите файл проверки после создания задания - После создания задания Logpush вы можете безопасно удалить
ownership-challenge.txtиз вашего бакета. - Ограничьте разрешения бакета - Предоставьте доступ на запись только сервисным аккаунтам Cloudflare. Для AWS S3 предоставьте
PutObjectразрешение наarn:aws:iam::391854517948:user/cloudflare-logpush. Для GCS предоставьтеStorage Object Adminк[email protected]. - Мониторинг заданий Logpush - Используйте панели состояния Logpush для мониторинга состояния задания и обнаружения аномалий.
Для каких получателей требуется проверка владения?
| Назначение | Требуется проверка владения |
|---|---|
| AWS S3 | Да (или используйте access key/secret key) |
| Google Cloud Storage | Да |
| Azure Blob Storage | Да |
| Sumo Logic | Да |
| S3-совместимое хранилище | Нет |
| конечные точки HTTP | Нет |
| Datadog | Нет |
| Splunk | Нет |
| New Relic | Нет |
Для получателей, не требующих проверки владения, Cloudflare использует альтернативные методы аутентификации, такие как API-ключи или токены.