Корзина 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, сейчас я читаю документы о различиях в аутентификации, но любая помощь будет приветствоваться!

0 ответов

Другие вопросы по тегам