403 Forbidden на HeadObject объяснялся не кредами и не отсутствием объекта — и то и другое я проверил, они в порядке. Дело в схеме файла. Движок читает /vault/secrets/processing-s3 с ключами host/bucket/verify, а под задачи разбирает свой файл моделью S3AccountModel с ключами endpoint/bucket_name/access_key_id/secret_access_key/use_ssl. Совпадают только два имени из пяти. Коварство в том, что pydantic на формате движка НЕ падает: access_key_id и secret_access_key подходят по имени, а endpoint и bucket_name молча берут значения по умолчанию. Поэтому вместо понятной ошибки конфигурации задача шла в чужое хранилище и получала 403 — креды при этом верные. endpoint пишется без схемы, протокол задаёт use_ssl; у нас MinIO внутри кластера по http. |
||
|---|---|---|
| .. | ||
| defaults | ||
| handlers | ||
| tasks | ||
| templates | ||