Корзина S3 обратного прокси через Haproxy
Я пытаюсь настроить обратный прокси-сервер для своего ведра S3 (я использую DigitalOcean Spaces) с помощью Haproxy (в частности, Haproxy Ingress).
После некоторых проб и ошибок я кое-что нашел с прокси, но он пока не работает.
Запрос GET работает нормально, однако запрос PUT (например, putObject) не работает, потому что я получаю сообщение об ошибке «403 - SignatureDoesNotMatch». К сожалению, я не могу понять, почему это так, и я искал повсюду.
Мой бэкэнд на данный момент выглядит следующим образом:
backend s3-reverse-proxy_443
mode http
balance roundrobin
acl https-request ssl_fc
http-request redirect scheme https if !https-request
http-request set-header Host <bucket>.ams3.digitaloceanspaces.com
http-request set-header X-Original-Forwarded-For %[hdr(x-forwarded-for)] if { hdr(x-forwarded-for) -m found }
http-request del-header x-forwarded-for
option forwardfor
http-response set-header Strict-Transport-Security "max-age=15768000"
server srv001 5.101.110.225:443 weight 1 proto h2 alpn h2 ssl no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets verify none check inter 2s
Пытался переопределить сервер, просто используя ".ams3.digitaloceanspaces.com", но это не сработало.
Я думаю, что это как-то связано с заголовками, но я пробовал добавлять заголовки «Авторизация» и «Соединение», но ни один из них, похоже, не работает.
Я также использую бэкэнд-протокол "h2-ssl", потому что без него он не работал бы прокси.
Заранее спасибо!
Достигнут некоторый прогресс, версия подписи v4 не работает, но v2 работает.
Однако, если я прав, реестр докеров использует v4, и я хочу, чтобы он был совместим с новейшими стандартами.
Я мало что знаю о S3, сейчас я читаю документы о различиях в аутентификации, но любая помощь будет приветствоваться!